JSP
JSP脚本
<%...%>:Java语句;
<%=…%>:Java表达式;
<%!...%>:Java定义类成员:
1.声明(declaration):用于在JSP 中声明合法的变量和方法
<%! 代码内容 %>
2.表达式(expression):计算该表达式,将其结果转换成字符串插入到输出中
<%= 表达式 %>
3.脚本(Scriplets):位于<%和%>之间的代码,它是合法的Java代码
<% 程序代码,一行或多行 %>
include
<%@ include file="userstate.jsp" %>
请求转发与重定向
response.sendRedirect; 重定向
request.getRequestDispatcher("find.jsp").forward(request, response); 转发
重定向:
客户端起作用,当一个请求到servlet,如果重定向,相当于发送了两次请求
不能共享request范围数据
数据库操作 添加,删除,修改后 所转向的页面 需要重定向,而不是转发
可以跳转到服务器外资源
转发:
服务器起作用,共享request范围数据,跳转的性能更好
一般查询操作后,将数据放入request中,转发到显示页面
不能转发到服务器外资源
Session断开
-
session彻底关闭浏览器,重新开启一个新的浏览器..
-
超出了Session的有效活动时间
-
用户手动销毁session
需要多个资源使用的数据 存到session中
内置对象
作用域
名称 作用域 | 说 明 |
---|---|
page | 在一个页面范围内有效,通过pageContext对象访问 |
request | 在一个服务器请求范围内有效 |
session | 在一次会话范围内容有效 |
application | 在一个应用服务器范围内有效 |
out | 向客户端输出数据 | print() println() flush() clear() isAutoFlush() getBufferSize() close() ………… |
---|---|---|
request | 向客户端请求数据 | getAttributeNames() getCookies() getParameter() getParameterValues() setAttribute() getServletPath() ………….. |
response | 封装了jsp产生的响应,然后被发送到客户端以响应客户的请求 | addCookie() sendRedirect() setContentType()flushBuffer() getBufferSize() getOutputStream()sendError() containsHeader()…………… |
application | ||
config | 表示Servlet的配置,当一个Servlet初始化时,容器把某些信息通过此对象传递给这个Servlet | getServletContext() getServletName() getInitParameter() getInitParameterNames()…………… |
page | Jsp实现类的实例,它是jsp本身,通过这个可以对它进行访问 | flush()……… |
pagecontext | 为JSP页面包装页面的上下文。管理对属于JSP中特殊可见部分中己经命名对象的该问 | forward() getAttribute() getException() getRequest() getResponse() getServletConfig()getSession() getServletContext() setAttribute()removeAttribute() findAttribute() …………… |
session | 用来保存每个用户的信息,以便跟踪每个用户的操作状态 | getAttribute() getId() getAttributeNames() getCreateTime() getMaxInactiveInterval()invalidate() isNew() |
exception | 反映运行的异常 | getMessage()………… |
1.out对象
数据流 javax.servlet.jsp.jspWriter
方法名 | 说明 |
---|---|
print或println | 输出数据 |
newLine | 输出换行字符 |
flush | 输出缓冲区数据 |
close | 关闭输出流 |
clear | 清除缓冲区中数据,但不输出到客户端 |
clearBuffer | 清除缓冲区中数据,输出到客户端 |
getBufferSize | 获得缓冲区大小 |
getRemaining | 获得缓冲区中没有被占用的空间 |
isAutoFlush | 是否为自动输出 |
2.request对象
请求信息 javax.servlet.http.HttpServletrequest
方法名 | 说明 |
---|---|
isUserInRole | 判断认证后的用户是否属于某一成员组 |
getAttribute | 获取指定属性的值,如该属性值不存在返回Null |
getAttributeNames | 获取所有属性名的集合 |
getCookies | 获取所有Cookie对象 |
getCharacterEncoding | 获取请求的字符编码方式 |
getContentLength | 返回请求正文的长度,如不确定返回-1 |
getHeader | 获取指定名字报头值 |
getHeaders | 获取指定名字报头的所有值,一个枚举 |
getHeaderNames | 获取所有报头的名字,一个枚举 |
getInputStream | 返回请求输入流,获取请求中的数据 |
getMethod | 获取客户端向服务器端传送数据的方法 |
getParameter | 获取指定名字参数值 |
getParameterNames | 获取所有参数的名字,一个枚举 |
getParameterValues | 获取指定名字参数的所有值 |
getProtocol | 获取客户端向服务器端传送数据的协议名称 |
getQueryString | 获取以get方法向服务器传送的查询字符串 |
getRequestURI | 获取发出请求字符串的客户端地址 |
getRemoteAddr | 获取客户端的IP地址 |
getRemoteHost | 获取客户端的名字 |
getSession | 获取和请求相关的会话 |
getServerName | 获取服务器的名字 |
getServerPath | 获取客户端请求文件的路径 |
getServerPort | 获取服务器的端口号 |
removeAttribute | 删除请求中的一个属性 |
setAttribute | 设置指定名字参数值 |
3.response对象
响应 javax.servlet.http.HttpServletResponse
方法名 | 说明 |
---|---|
addCookie | 添加一个Cookie对象 |
addHeader | 添加Http文件指定名字头信息 |
containsHeader | 判断指定名字Http文件头信息是否存在 |
encodeURL | 使用sessionid封装URL |
flushBuffer | 强制把当前缓冲区内容发送到客户端 |
getBufferSize | 返回缓冲区大小 |
getOutputStream | 返回到客户端的输出流对象 |
sendError | 向客户端发送错误信息 |
sendRedirect 重定向 | 把响应发送到另一个位置进行处理 |
setContentType | 设置响应的MIME类型 |
setHeader | 设置指定名字的Http文件头信息 |
4.session对象
会话 javax.servlet.http.HttpSession
方法名 | 说明 |
---|---|
getAttribute | 获取指定名字的属性 |
getAttributeNames | 获取session中全部属性名字,一个枚举 |
getCreationTime | 返回session的创建时间 |
getId | 获取会话标识符 |
getLastAccessedTime | 返回最后发送请求的时间 |
getMaxInactiveInterval | 返回session对象的生存时间单位千分之一秒 |
invalidate | 销毁session对象 |
isNew | 每个请求是否会产生新的session对象 |
removeAttribute | 删除指定名字的属性 |
setAttribute | 设定指定名字的属性值 |
5.pageContext对象
页面上下文 javax.servlet.jsp.PageContext
方法名 | 说明 |
---|---|
forward | 重定向到另一页面或Servlet组件 |
getAttribute | 获取某范围中指定名字的属性值 |
findAttribute | 按范围搜索指定名字的属性 |
removeAttribute | 删除某范围中指定名字的属性 |
setAttribute | 设定某范围中指定名字的属性值 |
getException | 返回当前异常对象 |
getRequest | 返回当前请求对象 |
getResponse | 返回当前响应对象 |
getServletConfig | 返回当前页面的ServletConfig对象 |
getServletContext | 返回所有页面共享的ServletContext对象 |
getSession | 返回当前页面的会话对象 |
6.application对象
应用程序 javax.servlet.ServletContext
方法名 | 说明 |
---|---|
getAttribute | 获取应用对象中指定名字的属性值 |
getAttributeNames | 获取应用对象中所有属性的名字,一个枚举 |
getInitParameter | 返回应用对象中指定名字的初始参数值 |
getServletInfo | 返回Servlet编译器中当前版本信息 |
setAttribute | 设置应用对象中指定名字的属性值 |
7.config对象
Servlet的配置信息 javax.servlet.ServletConfig
方法名 | 说明 |
---|---|
getServletContext | 返回所执行的Servlet的环境对象 |
getServletName | 返回所执行的Servlet的名字 |
getInitParameter | 返回指定名字的初始参数值 |
getInitParameterNames | 返回该JSP中所有的初始参数名,一个枚举 |
8.page对象
当前JSP的实例,java.lang.object
它代表JSP被编译成Servlet,可以使用它来调用Servlet类中所定义的方法
9.exception对象
运行时的异常,java.lang.Throwable
被调用的错误页面的结果,只有在错误页面中才可使用,
即在页面指令中设置:<%@page isErrorPage=“true”%>