Java Web学习(16):JSP动作元素(一)

        一JSP动作元素概述

       (1)JSP动作元素简介

       与JSP指令元素不同的是,JSP动作元素在请求处理阶段起作用。JSP动作元素是用XML语法写成的。利用JSP动作

可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。

       JSP动作元素(action elements),动作元素为请求处理阶段提供信息。动作元素遵循XML元素的语法,有一个包

含元素名的开始标签,可以有属性、可选的内容、与开始标签匹配的结束标签。

       动作元素只有一种语法,它符合XML标准:

 attribute="value" />

       动作元素基本上都是预定义的函数,JSP规范定义了一系列的标准动作,它用JSP作为前缀,可用的标准动作元素

如下:

       Java Web学习(16):JSP动作元素(一)_第1张图片

       (2)JSP动作元素常见的属性

       所有的动作要素都有两个属性:id属性和scope属性。

       1)id属性

       id属性是动作元素的唯一标识,可以在JSP页面中引用。动作元素创建的id值可以通过PageContext对象来调

用。这些我们会在下面的实例中进行演示。

       2)scope属性

       scope属性用于识别动作元素的生命周期。 id属性和scope属性有直接关系,scope属性定义了相关联id对象的

寿命。 scope属性有四个可能的值:page、request、session和application,这是JSP的四个作用域。

      (3)JSP动作元素分类

      JSP动作元素包含五类:

      第一类是与JavaBean有关的,包括3个动作元素:

    

      第二类是JSP1.2就开始有的基本元素,包括6个动作元素:

          

      第三类是JSP2.0新增加的元素,主要与JSP Document有关,包括6个动作元素:

         

      第四类是JSP2.0新增加的元素,主要是用来动态生成XML元素标签的值,包括3个动作元素:

      

      第五类是JSP2.0新增加的元素,主要使用在Tag Filter中,包括2个动作元素:

  

       二JavaBean

       (1)JavaBean简介

       JavaBean就是符合某种特定的规范的Java类。使用JavaBean的好处是解决代码重复编写,减少代码冗余,功能

区分明显,提高了代码的可维护性。

       (2)JavaBean设计原则

       先使用图示来说明JavaBean的四个设计原则:

       Java Web学习(16):JSP动作元素(一)_第2张图片

       1)公有类

       JavaBean其实就是Java程序,只不过需要在JSP页面中应用,不定义成public类型的,当不是在同一个包下时(项

目里一般会把JavaBean放在单独的文件夹下,所有不可能在同一包下了)不可以访问。

        2)属性私有

        定义成私有变量实际上是出于安全性的考虑,把变量封装起来,所以需要public的getter和setter方法访问这些

私有属性。

        3)无参的公有构造方法

        一般不显式的写出构造方法,那么类都会默认的创建一个无参的公有构造方法,这是为了方便创建类的实例对

象。

        4)getter和setter方法

        对类的私有属性进行重构,得到这些私有属性的getter和setter方法,为的是获取属性值和设置属性值。

        实例:设计一个符合JavaBean设计原则的类

package com.entity;


/**
 * 用户实体类的访问属性是public
 * @author Administrator
 * @date 2016年7月11日
 */
public class Users {
	//私有属性
	private String username;
	private String password;
	
	//无参构造器
	public Users(){
		
	}


	//通过重构得到setter和getter方法
	public String getUsername() {
		return username;
	}


	public void setUsername(String username) {
		this.username = username;
	}


	public String getPassword() {
		return password;
	}


	public void setPassword(String password) {
		this.password = password;
	}


}

        三JSP页面中使用JavaBean

        (1)像使用普通Java类一样,创建JavaBean类实例

        实例:在JavaBean项目下的Java Resources目录下创建一个JavaBean类Users,在WebContent目录下创建

index.jsp页面。

        JavaBean类Users的代码为如上个例子中创建的Users类。

        index.jsp页面源代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ page import="com.entity.Users" %>




JavaBean实例


      

使用普通方式创建JavaBean的实例

     
      <%         Users user = new Users(); //创建JavaBean类的实例user         user.setUsername("admin");  //设置用户名         user.setPassword("123456");  //设置密码       %>       用户名:<%=user.getUsername() %>
      密码:<%=user.getPassword() %>

        运行结果:

        Java Web学习(16):JSP动作元素(一)_第3张图片

        (2)在JSP页面中通常使用JSP动作元素使用JavaBean类

        1)动作元素

        作用:在JSP页面中实例化或者在指定范围内使用JavaBean。<jsp:useBean>动作元素用来加载一个将在JSP页

面中使用的JavaBean。这个功能非常有用,因为它使得我们可以发挥JavaBean组件复用的优势。

        最简单的语法为:

>
         在JavaBean类载入后,我们既可以通过动作元素和动作元素来修改和检索Bean的属性。 以下是useBean动作元素相关的属性列表:

        Java Web学习(16):JSP动作元素(一)_第4张图片

        在给出具体实例前,让我们先来看下动作元素和动作元素。

        2)<jsp:setProperty>动作元素

        <jsp:setProperty>动作元素用来设置已经实例化的Bean对象的属性,有两种用法。首先,你可以在<jsp:setProperty>动作元素的外面(后面)使用<jsp:setProperty>动作元素,如下所示:

 id="myName" ... >
...
 name="myName" property="someProperty" .../>

        此时,不管<jsp:setProperty>动作元素是找到了一个现有的Bean类,还是新创建了一个Bean类例,<jsp:setProperty>动作元素都会执行。第二种用法是把<jsp:setProperty>动作元素放入<jsp:useBean>动作元素的内部,如下所示:

 id="myName" ... >
   ...
    name="myName" property="someProperty" .../>

        此时,<jsp:setProperty>动作元素只有在新建Bean类实例时才会执行,如果是使用现有实例则不执行<jsp:setProperty>动作元素。

        <jsp:setProperty>动作元素有下面四个属性,如下表:

        Java Web学习(16):JSP动作元素(一)_第5张图片

        3)<jsp:getProperty>动作元素

        <jsp:getProperty>动作元素提取指定Bean类属性的值,转换成字符串,然后输出。

        语法格式如下:

 id="myName" ... />
...
 name="myName" property="someProperty" .../>

        下表是与getProperty相关联的属性:

        

        实例

        依然使用上面例子中的JavaBean类Users类。

        新建的useBean.jsp页面源代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




JavaBean实例


      

使用useBean方式创建JavaBean的实例

     
                        
     
                   用户名:<%=myUsers.getUsername() %>
      密码:<%=myUsers.getPassword() %>
            
            用户名:
      密码:

        运行结果:

        Java Web学习(16):JSP动作元素(一)_第6张图片

        (3)对于动作元素的延伸

     动作元素作用:给已经实例化的JavaBean对象的属性赋值,一共有四种形式:

//跟表单关联  

// 跟表单关联  

//手工设置属性值  

//跟request参数关联  

              实例:

        照常使用JavaBean类Users类。

        login.jsp页面源代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




登录页面


     

登录表单

     
     
                                                                                                                                                                                                 
用户名:
密码:
     

       dologin.jsp页面源代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




登录页面


      <%
        //防止中文乱码
        request.setCharacterEncoding("utf-8"); 
       %>
      

setProperty动作元素的使用

     
                                用户名:<%=request.getParameter("username") %>
      密码:<%=request.getParameter("password") %>
            
                  用户名:<%=myUsers.getUsername() %>
      密码:<%=myUsers.getPassword() %>
            
                        用户名:<%=myUsers.getUsername() %>
      密码:<%=myUsers.getPassword() %>
            
                        用户名:<%=myUsers.getUsername() %>
      密码:<%=myUsers.getPassword() %>
      

       运行结果:

       Java Web学习(16):JSP动作元素(一)_第7张图片

       Java Web学习(16):JSP动作元素(一)_第8张图片

       对于最后一种我们这样修改:

       在login.jsp中的表单中做出如下修改:

   Java Web学习(16):JSP动作元素(一)_第9张图片

       在dologin.jsp页面全部注释掉上述代码,重新写入下述代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




登录页面


      <%
            //防止中文乱码
            request.setCharacterEncoding("utf-8"); 
       %>
      

setProperty动作元素的使用

     
                  
                        用户名:<%=myUsers.getUsername() %>
      密码:<%=myUsers.getPassword() %>
      

       运行后我们输入用户名:李四,密码:123456,最后的结果是:

       Java Web学习(16):JSP动作元素(一)_第10张图片

    



你可能感兴趣的:(JavaWeb,Java,Web学习之路)