1 JSP的脚本元素
1.1 声明:<%! int counter = 0 %>
注意:声明的可以是成员变量,方法或内部类。不要用成员变量去做统计,因为如果 Servlet 实例是否被销毁是由服务器控制的,如果需要统计,则应该把统计的信息存储到数据库或是文件当中。会原封不动的放在 service() 方法体之外
1.2 表达式:<%= new java.util.Date() %>
表达式将被添加到_jspService()方法体内,并被转换为: out.print( new java.util.Date() );
1.3 代码块:<% if(isLogin){…} %>
(1)本质上是一个 java 代码块,里面的注释方式跟 java 代码一样
(2)该代码块会原封不动的放在 servlet 的_jspService()方法中,放置的位置会影响结
果,必须保证变量先声明后使用。
2 指令(directive)
2.1 page 指令:<%@ page … %>
(1) <%@ page import =””%> 导入需要用到的类(可导入多个包,用“,”分割)
(2) <%@ page isErrorPage =”true”%> 本页面是异常后跳转的页面
(3) <%@ page errorPage=””%> 本页面错误之后,转向的错误页面
(4) <%@ page contentType = "text/html;charset=GB2312"%> 设置文件格式和编码方式
(5) <%@ page pageEncoding =””%> 设置页面显示的字符集 contentType 和 pageEncoding 的差异
(6) <%@ page language =””%> 本页面使用的 scriting语言,默认是 java ,通常不写
(7) <%@ page extends =””%> 本页面生成的 servlet 所继承的类
(8) <%@ page buffer =””%> 本页面的输出是否支持缓冲
(9) <%@ page autoFlush =””%> 缓冲区是否自动刷新
(10) <%@ page info =””%> 返回本页面的描述信息
(11) <%@ page isELIgnored=””%> 本页面是否支持 EL 表达式
2.2 包含指令:<%@ include … %>
<%@ include file =”relativeURLspec”%>
静态包含,也称为翻译时包含,在 JSP 翻译时插入一个包含文本或代码的文件,这个包含的过程是静态的,然后再将JSP翻译成 Servlet 程序。
注意: file 所指的路径必须是相对于此 JSP网页的路径。 而包含的文件可以是 JSP 网页、HTML 网页、文本文件,或是一段 Java 程序。
2.3 标签库指令:<%@ taglib … %>
<%@taglib prefix=“tt” uri=“/WEB-INF/jspdev.tld”%> 用于导入标签库。
3 常用的动作(action)
3.1 包含动作<jsp:include page=“ ” />
<jsp:include page =””/>
动态包含,也称为运行时包含,将页面执行完的结果,加载进来。它对应于 Servlet 中 RequestDispatcher 类的 include(ServletRequest request, ServletResponse response)方法。
它还可以进行参数的传递,例如:
<jsp:include page =””>
<jsp: param name=”user” value=”admin”>
</jsp:include>
被包含的页面可以通过使用 request.getParameter(“user”)来得到 admin。
3.2 转发动作 <jsp:forward page=“ ” />
转发:<jsp: forward page=“ ”/>
把控制页面转到下一个页面(转移控制权),可以通过使用 request 来传送数据。
重定向:response.sendRedirect();
不能通过使用 request 来传送数据,可以考虑使用 session 来传送数据。
两种转向赋值的方式: <jsp: forward page=”hello.jsp”> // 转发
<jsp: forward > // 重定向
<jsp:attribute name=”page”>hello.jsp</jsp:attribute>
</jsp:forward>
注意
a: <%response.sendRedirect("/jsp-app/implication/view.jsp")%>
b: <jsp:forward page="/implication/view.jsp" />
区别:
a: 产生新的请求,重定向会放弃这个请求,并向服务器发送一个新的请求。
b: 请求对象不变。 forward 和 include 是同一个请求,sendRedirect 会产生新的请求。
3.3 JavaBean 相关动作(暂没总结,后续会加)
4 JSP中的注释
JSP注释:<%-- … --%>,翻译阶段消失。
JAVA注释://、 /**/、 /***/,编译阶段消失。
HTML 注释:<!-- … -->, 不会消失。