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动作el表达式获取session中的值
    语法格式:<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,s
ession,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>
1public class User {
2
3private String userName;
4
5private String password;
6
7public User() {
8
9    }
10
11public String getUserName() {
12return userName;
13    }
14
15public void setUserName(String userName) {
16this.userName = userName;
17    }
18
19public String getPassword() {
20return password;
21    }
22
23public void setPassword(String password) {
24this.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⽅法中。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。