1、 JSP工作原理
JSP是一种servlet,但工作方式不一样。HttpServlet是先由源代码编译为class文件后部署到服务器下的,先编译后部署。而JSP则是先部署源代码后编译为class文件的,现部署后编译。
JSP在客户端第一次请求的时候JSP文件会被编译为HttpJspPage类(接口Servlet的一个子类)。该类会被服务器临时存放在服务器工作目录里面。(tomcat\work\Catalina\localhost\jsp\org\apache\jsp)。
2、 JSP生命周期
与servlet的生命周期一样,但还有自己的初始化方法_jspInit()和销毁方法jspDestory()
3、 JSP语法
jsp脚本:<% %>
jsp输出:<%= %>
jsp注释:// /* */ <%-- --%>
条件语句与java一样,if else,while,for,return,break
4、 JSP指令
page指令
http://www.cnblogs.com/elleniou/archive/2012/09/09/2678101.html
<% page trimDeiectiveWhitespaces=”true|false”%>取消输出指令的前后的空白字符
include指令
<%@ include file=”relativeRUL”%>,先包含后编译
另一种包含文件的行为
taglib指令
指明JSP页面内使用的JSP标签库,有两个属性,uri为类库地址,prefix为标签前缀。
<%@ taglib prefix="c"uri="http://java.sun.com/jsp/jstl/core" %>
5、 JSP行为
标准的JSP行为格式
使用request.getRequestDispatcher(“relativeURI”).forwaard(request,response)来执行被包含的文件。
使用Java Bean(POJO)
useBean在JSP页面中定义一个JavaBean
对应servlet中的request.getRequestDispatcher(“relativeURI”).forwaard(request,response),对其方法的一种封装
相当于jsp指令
6、 JSP隐藏对象
out输出流对象
request请求对象
response响应对象
config配置对象:配置在web.xml中初始化JSP的参数
session会话对象
application应用程序对象
page页面对象,代表当前JSP页面,是当前JSP编译后的Servlet类的对象。相当于普通Java类的this
pageContext页面上下文对象,代表当前JSP页面编译后的内容,通过pageContext能够获取到JSP中的资源。
exception异常对象
要使用exception隐藏对象,需要设置<%@page isErrorPage=”true” %>,经常失败,不推荐使用。
7、 JSP配置
来自:http://janwer.iteye.com/blog/150217/
1.
2.
3.
4.
5.
6.
7.
8.
一个简单的
Xml代码
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
对于Web 应用程式来说,Scriptlet 是个不乐意被见到的东西,因为它会使得HTML 与Java 程式码交相混杂,对于程式的维护来说相当的麻烦,必要的时候,您可以在web.xml 中加上
Xml代码
1.
2. ....
3.
4.
5.
6.
7.
8.
9.....
10.
8、 EL表达式
${},用来方便的读取对象,是写在html代码中的,不能写在jsp的脚本中<%%>
EL表达式能方便的操作JavaBean,甚至集合等,并支持简单的运算,但是不能直接访问普通的方法,以及静态属性。
类别 隐含对象 描述
JSP pageContext 当前jsp页javax.servlet.jsp.PageContext对象
作用域 pageScope 页面范围内所有对象的集合
requestScope 所有请求范围内的对象集合
sessionScope 所有会话范围内的对象集合
applicationScope 应用程序范围内的对象变量组成的集合
请求参数 param 所有请求参数字符串组成的集合
paramValues 所有作为字符串集合的请求参数
请求头 header http请求头部,字符串
headerValues http请求头部,字符串集合
cookie cookie 所有cookie组成的集合
初始化参数 initParam 全部引用程序参数名组成的集合