日期:2014-05-16  浏览次数:20421 次

j2ee学习总结之jsp
******JSP生命周期
1.翻译 .jsp --> .java
2.编译 .java --> .class
3.加载类
4.实例化类
5._jspInit()
6._jspService()
7._jspDestroy()

******JSP的预定义变量
1.application javax.servlet.ServletContext
2.session javax.servlet.http.HttpSession
3.request javax.servlet.http.HttpServletRequest
4.pageContext javax.servlet.jsp.PageContext
5.response javax.servlet.http.HttpServletResponse
6.page java.lang.Object
7.config javax.servlet.ServletConfig
8.out javax.servlet.jsp.JspWriter
9.exception java.lang.Throwable

******JSP中的错误:
1.翻译时错误 JSP页面错误
2.编译时错误(空指针异常等) Java语法错误
3.运行时错误 逻辑错误

******JSP元素的分类
1.HTML元素

2.JSP的脚本元素:
1>JSP Scriptlet
<% javacode %> 翻译为 _jspService方法中的代码

2>JSP表达式
<%= expression %> 翻译为 _jspService方法中的out.write(expression);

3>JSP声明
<%! declaration %> 翻译为 类的实例变量和方法

4>JSP注释
<%-- comment --%> 单行注释(翻译时忽略)
<% /*comment*/ %> 多行注释(翻译时包含,编译时忽略)
<%!-- comment --> 单行html注释(包含在响应中)

5>JSP指令
<%@ derective %>
i.page指令
language 指明页面的脚本语言,当前只有java;
extends 指定JSP页面生成的Java类的超类;
import
--导入此JSP页面生成的java类应包含的包;
--page指令中唯一一个可以出现多次的属性;
--当需要导入多个包的时候使用逗号连接;
contentType 定义输出的MIME类型;
pageEncoding 告诉web server,当前JSP文件本身的编码方式;
buffer 定义输出流(JspWriter)使用的缓冲区大小(默认是8kb);
autoFlush 定义缓冲区满后是否自动清空;
session 指定当前JSP是否参与session会话;
errorPage 指定当前页面出现异常的时候按照errorPage指定的参数来处理;
isErrorPage 指定当前页面是异常的处理页面;

ii.include指令
<%@ include file="url" %>
--url为相对路径;
--静态包含,只生成一个class文件,不能带参数;
iii.taglib指令


3.JSP标准动作标签(两种形式自结束和成对出现):
1><jsp:forward page="url" />
--以“/”开始的时候,表示http://localhost:8080/Context Root/;
--不是以“/”开始的时候,表示以当前文件作为相对路径;

2><jsp:include page="url" />
--url与forward中的一样;
--动态包含,生成两个class文件,可以使用<jsp:param .../>来传递参数;
--将指定的web资源的输出包含在当前的响应输出中;

3><jsp:param name="..." value="..." />
--通常作为子元素和include和forward联和使用;
--<jsp:include page="url"><jsp:param name="..." value="..."></jsp:include>
--<jsp:forward page="url"><jsp:param name="..." value="..."></jsp:forward>

4><jsp:useBean id="id_name" scope="..." class="..." />
--在request中通过getAttribute("id_name")来获取该对象,如果没有则新创建一个,有的话就不会重新创建了,而是利用从参数中取到的对象;
--scope指定了该对象有效的范围(page、request、session、application),page是默认的;
5><jsp:getProperty name="对象名" property="属性名" />
--等效于<%=对象名.属性名 %>

6><jsp:setProperty name="对象名" property="属性名" value="属性值" />
--等效于<%=对象名.set....(属性值) %>
i.将请求中的参数赋值给对象的单个属性:
--<jsp:setProperty name="对象名" property="属性名" param="参数名" />

ii.当单个的属性名和参数名相同的时候
--<jsp:setProperty name="对象名" property="属性名" />

iii.当所有的属性名和参数名相同的时候
--<jsp:setProperty name="对象名" property="*" />

4.EL(Expression Language)
--是JSP中一种简洁的数据访问语言
--通过它可以在JSP页面中方便地访问并输出:存储在作用域中的对象及其属性;访问请求中的参数、cookie和其他请求报文中的信息;
--可以进行算数、关系、逻辑等运算;
--语法格式${expression}
--EL中的隐式对象:
pageContext
pageScope
requestScope
sessionScope
applicationScope
param
paramValues
header
headerValues
cookie

5.自定义标签(自己编写的非标准动作标签)
--替代jsp页面中出现的java代码;
--JSP引擎在翻译自定义标签的时候,会根据jsp指令tagli