JSP三大指令元素,七大动作元素,三大脚本元素

一、三大指令元素:

  指令是一种JSP句法元素,提示JSP容器应该将某个JSP页面转换为Servlet的命令,这博客介绍其中三个指令元素。

  1. page指令:

    语法格式:<%@page attribute1="value1" attribute2="value2"...%>

    page指令可以出现多次,不过除import属性外其余属性必须保持一致。

    @和page之间的空格是可选的,attribute1等是page指令的属性,有如下属性:

    (1) import:指定要导入的一种或多种Java类,供本页的的Java代码所用,当导入多种类时,用逗号隔开,其中servlet的相关类为隐式导入。

    (2) session:值为true时,表示页面参与session管理,false则相反,默认为true。

    (3) buffer:指定隐式对象out的缓冲区大小,单位为千字节,后缀为kb,也可以用none来表示不使用缓存。

    (4) autoFlush:值为true时,表示当缓冲区满时,被缓存的输出应该自动刷新,默认为true。

    (5) isThreadSafe:值为true时,表示页面中实现的线程安全级别,不建议使用。

    (6) info:指定所生成的Servlet的getServletInfo方法返回值。

    (7) errorPage:值为一个页面,表示负责处理该页面可能出现的错误的页面。

    (8) isErrorPage:表明这个页面是否负责处理错误。

    (9) contentType:指定该页面隐式对象response的内容类型,默认值为text/html

    (10) pageEncoding:支付该页面的字符编码,默认值为ISO-8859-1,应该改成支持国际化标准的UTF-8。

    (11) isELIgonred:表面是否忽略EL表达式。

    (12) laguage:指定该页面使用的脚本语言,默认值为java

  2. include指令

    语法格式:<%@ include file="url"%>

    利用include可以将另外一个文件的内容放在当前的JSP页面中,可以使用多个include指令,并且可以在任意位置,用于多个页面相同元素做成一个文件,再用include指令在其他页面有使用它的位置使用,节约大量代码量。

    文件可以是JSP页面,HTML页面,Java代码等,url可以使用绝对路径与相对路径,用‘/’隔开。

    注意:不要使用在file里使用标签,或与使用它的页面定义相同的变量等,以避免两者相互冲突。

  3. taglib指令

    语法格式:<%@ taglib (uri="tagLibraryURI" | tagdir="tagDir") prefix="tagPrefix" %>

    uri属性用于对自定义标签进行命名,可以是相对路径或绝对路径,prefix指定了标签的前缀。

二、七大动作元素:

  动作元素被编译成执行某个操作的Java代码,除了标准动作元素之外,还可使用自定义的标签。

  1. forward动作

    语法格式:<jsp:forward page="url">

            <jsp: param name="" value=""/>

         </jsp:forward>

    forward动作式从当前页面跳转到另一个不同的资源,跳转方式为请求转发,也可包含请求转发的传递参数。

  2. include动作

    语法格式:<jsp:include page="url"/>

    include动作用于动态地包含另外一个资源,可以包含JSP页面,HTML页面。

    注意与指令元素include的区别:

    第一:使用include指令时,这种包含是发生在页面转换的时候,例如JSP容器将页面转换成一个生成Servlet的时候,而使用include动作时,这种包含则是发生在请求的时候,当前页面和被包含的资源是两个独立的个体,因此可以使用include动作传递参数,而指令不行。

    第二:在使用include指令时,被包含的文件的类型可以为任意,而使用include动作时,则扩展名必须为jsp,否则将其当成静态页面处理。

  3. param动作

    语法格式:<jsp:param name="" value=""/>

    用于设定参数值,这个指令和include,forward,plugin配合使用。

  4. plugin动作

    用于下载服务器端的javabean或applet到客户端,插入通过Java插件运行applet所需的元素。

  5. useBean动作

    语法格式:<jsp:useBean id="" class="" scope=""/>

    用于装载一个在JSP页面使用的JavaBean,即在JSP页面创建一个实例,常和getProperty,setProperty配合使用。JSP2.0有EL表达式后这种方式就很少使用了。

    id为要创建的实例的名称,class为要实例化的类名,scope为bean的生存范围,page,request,session,application,默认值为page。

  6. setProperty动作

    语法格式:<jsp:setProperty name="" property="" value=""/>

    用来给已经实例化的Bean对象的属性赋值。值得注意的是,当和useBean配合使用时,有两种方式,一种是放在useBean动作后,表示对已经存在的实例化对象进行赋值,另外一种是放在useBean内,这就意味着只有在新建Bean实例时才会执行给属性赋值。

    name:实例化的Bean对象名,property:是要赋值的对象属性名,还有一种为’*‘的,这个表示所有Bean的属性名都将被传递的参数赋值。

    value:是要赋的具体值,与param的使用二选一。

    当property使用“*”时,那么value和param都不能使用,这种方法与表单元素相关联,就是将表单中所有元素与JavaBean属性进行对应,如果元素名与属性名相同,则将表单元素的值赋给对应的属性。

    

 1     <form action="dologin.jsp" method="post">  
 2         <label for="userName">用户名:</label>  
 3         <input type="text" name="userName" id="userName" value="" />  
 4         <br/>  
 5           
 6         <label for="password">密码:</label>  
 7         <input type="password" name="password" id="password" value="" />  
 8         <br/>  
 9           
10         <input type="submit" value="登录" />  
11     </form>  
 1 public class User {  
 2   
 3     private String userName;  
 4       
 5     private String password;  
 6       
 7     public User() {  
 8           
 9     }  
10   
11     public String getUserName() {  
12         return userName;  
13     }  
14   
15     public void setUserName(String userName) {  
16         this.userName = userName;  
17     }  
18   
19     public String getPassword() {  
20         return password;  
21     }  
22   
23     public void setPassword(String password) {  
24         this.password = password;  
25     }  
26 }  
<jsp:useBean id="user" class="entity.User" scope="page"></jsp:useBean>  
<hr/>  
<jsp:setProperty property="*" name="user"/>  
用户名:<jsp:getProperty property="userName" name="user"/><br/>  
密码:<jsp:getProperty property="password" name="user"/>  

  7. getProperty动作

    语法格式:<jsp:getProperty name="" property=""/>

    用于提取指定Bean的属性的值,返回字符串,上述例子已说明。

三、三大脚本元素:

  脚本元素将Java代码合并成一个JSP页面。JSP2.0增加了一个EL表达式脚本元素并且渐渐成为主流,而不是在JSP中写大量的Java代码,见上一博客。

  1. 声明

    语法格式:<%! declarations %> 

    声明在JSP页面中使用的变量和方法,用‘;’隔开,可以多个,任意位置,也可以用声明覆盖实现类中的init和destroy方法。

  2. 脚本

    语法格式:<% scriptlet %> 

    scriptlet是Java代码块。

  3. 表达式

     语法格式:<%= expression %>

    表达式的运算结果会被填入隐式对象out的print方法中。

猜你喜欢

转载自www.cnblogs.com/chenloveslife/p/8955831.html