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小时内删除。
发表评论