JavaEE
Servlet 服务器端小程序
Jsp 页面
Jsp (内置对象)
1.pageContext
javax.servlet.jsp.pageContext
jsp内置对象中比较重量级的对象 ,首先他是当前页面对象,还可以通过该对象转换成其他的几个内置对象
pageContext.getServletConfig() 转换成config对象
.getServletContext() application
.getRequest() request
.getResponse() response
.getSession() session
2.Request
得到用户请求的对象 ,里面保存页面传递过来的信息
Java.servlet.http.HttpServletRequest
HttpServletRequest是ServletRequest的子类
HttpServletRequest有很多常用方法
getParameter() getParameterVaules() set/getAttribute()
forward(request,response)页面转发 ,通常数据保存在request对象中
request.getCookies() 负责读取当前客户端的所有cookie对象
request.setCharacterEnding(utf-8) ;设置传递数据的字符编码,前提form表单method=post
getContextPath() 得到服务的名称 如/web01
getServletPath() 得到除服务名称外,每层的路径+页面的名称 /login/login.jsp
GetServletContext()利用 request间接获取 application对象的
GetSession( ) 利用 request间接获取 session对象
3.response
服务器向客户端响应的对象
Java.servlet.http.HttpServletResponse
Response 中 包含cookie对象
SendRedirect(); 将页面重定向到新页面,重定向只能跳转网页,如果想携带数据,需要将数据放在session中
AddCookie(Cookie c) 向客户端中增加一个cookie对象 ,可以设置cookie对象的存续时间
New Cookie(name,value)
setMaxAge( seconds)
4.Session
Java.servlet.http.HttpSession
浏览器对象 ,只要浏览器不关闭 ,session对象中的数据可以被多个页面共享使用 ,它比request对象的好处在于 : request只是前后两个页面之间数据的传递 , 而session是可以间隔很多页面 ,获取之前session中保存的数据的
SetAttribute ( )
GetAttribute ()
RemoveAttribute()
Invalidate () 设置session失效 ,
Long GetLastAccessedTime()获取session最后的活动时间与现在间隔了多少毫秒
5.application
服务器对象 ,
Javax.servlet.servletContext 服务器端上下文servletContext
ServletConfig 是servletContext 其父类
ServletConfig 是tomcat服务器初始化servlet时生成的
GetServletContext() 获取application对象的(应用在后台)
GetContextPath() 获取服务名
Set、get Attribute( )
GetInitParameter() 获取web.xml文件中设置的初始化参数的
计数器变量通常存放在application中 , 数据类型BigInteger
6.out
out是当前页面的流对象
java.io.PrintWriter
通过 response.getWriter() 能获取到out对象
print() 向当前页面输出信息用的
out.flush(); 一次性清空out对象的所有缓存
out.close();out对象关闭
7.config
ServletConfig
GetInitParameter() 获取web.xml文件中设置的初始化参数的
8.page
当前的页面对象
9.exception
printStackTrace( ) 打印异常信息
getMessage() 显示错误的内容
getClass( ) 显示异常的所属类型
servlet
web.xml中配置servlet
生命周期
Init()--tomcat服务器启动 注册servlet
Service() --- doget()和dopost() --页面处理方法,根据表单中method值的不同,进入不同的方法处理
dopost(request ,response)
Destroy()-tomcat服务器销毁 注销servlet
Filter 拦截器
它也是一个servlet ,属于特殊的servlet
也配置在webxml中 ,放在servlet的前面
Filter常用方法
Init()在tomcat启动时执行 init方法 ,init方法中通常放置一些初始化参数如 字符编码
doFilter()
doFilter(request,response ,FilterChain chain){
request.setCharacterEnding(“utf-8”);
response.setContextType(“text/html;charset=utf-8”);
chain.doFilter(request,response); //拦截器的递归调用 ,从第一个拦截器出来,进入第二个,直到找不到拦截器后,自动进入对应的servlet中
}
destroy() tomcat注销时执行
监听器
Listener
作用 :服务器端遇到一个点, 触发一件事
如果想实现服务器监听程序 ,需要在一个类上 implements ServletContextListener接口,并重写如下2个方法
ContextInitalized(ServletContextEvent e)// 注册监听的方法 ,tomcat服务器启动时执行
ContextDestoryed( ) ; //销毁监听对象
在webxml中配置监听标签 , 如下
<listener>
<listener-class>listener.TimeListener</listener-class>
</listener>
Webxml 配置顺序 listener filter servlet
El表达式
$ { }
简化 内置对象的调用
${ requestScope . user . name }
${ requestScope . usename }
${ sessionScope . usename }
El表达式只能在设置好的范围内取值 ,不能设置在session中 ,却从request里取值
Jstl – 页面常用显示标签
<@ taglib uri =”….” prefix=”c”>
<c:if test=””> 并列判断
分支判断
<c:choose>
<c:when 条件1>
</c:when>
<c:when 条件2>
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
<c:foreach items=”集合的对象” var=”相当于i” begin=”0” end=”到哪结束” step=”2” varstatus=”索引” >
<c:DateFormat >-- 格式化日期用的
<c:NumberFormat> -- 格式化数值用的