servlet知识点<四>
2016-03-04 12:45
141 查看
servlet的生命周期:
实例化 第1次请求 构造方法 1次
初始 实例化后,紧接着执行 init() 1
服务 有请求 service(doGet/doPost) N
销毁 server停 destroy() 1
ServletContext:web.xml 一个web应用对应一个servletContext
读取全局初始化参数:<servlet>外面,<web-app>的第一项<context-param>
String str = this.getServletContext().getInitParameter("参数名");
ServletConfig:web.xml中的一个<servlet>配置标签,一个web应用对应多个servletconfig
读取局部初始化参数:<servlet>里面,<servlet-class>的后面<init-param>
String str = this.getServletConfig().getInitParameter("参数名");
include:包含
PrintWriter out = request.getWriter();//设置命名属性
out.response("<html></html>");
RequestDispatcher rd = request.getRequestDispatcher("/url-pattern");
rd.include(request, response);
forward:请求转发
request.setAttribute("name", objval);//设置命名属性
RequestDispatcher rd = request.getRequestDispatcher("/url-pattern");
rd.forward(request, response);
request.getParameter("name");
Object obj = request.getAttribute("name");
特点:1)地址栏不变
2)服务器端的转发
3)永久转向
4)共享同一个request
sendRedirect:重定向
response.sendRedirect("/web应用/url-pattern?name=val&name2=val2");
String val = request.getParameter("name");
特点:1)地址栏改变
2)客户端的转向
3)永久转向
4)不共享同一个request
问题:request.getRequestDispatcher("http://www.sina.com.cn").forward(request, response); ERROR 404
response.sendRedirect("http://www.sina.com.cn"); OK
-----------------------------------------------------------
一、Cookie
服务器 往 浏览器 写的一小段数据(字符串),同两部分构成:name value
1)创建
Cookie c = new Cookie("name", "val");
c.setMaxAge(60);//设置cookie有效时间,秒
2)写cookie
response.addCookie(c);
3)读cookie
Cookies[] cookies = request.getCookies();
二、Session[重点]
http:无状态 ,对于同一客户端的连续请求不能记忆
会话跟踪,为了解决http的无状态.常见的会话跟踪技术: cookie(客户端保存数据的方式)
HttpSession(服务器端保存数据的方式)
Session:用于记录同一客户端的连接操作,包含多个request
1)创建session
HttpSession session = request.getSession(true);//true,如果当前client没有session,创建一个新的;如果有,直接拿来使用
//false,如果当前client没有session,返回null;如果有,直接拿来使用
String sessionid = session.getId();
boolean bn = session.isNew();
long seconds = session.getCreationTime();
2)Session是一个作用域对象
session.setAttribute("name",objval);
Object obj = session.getAttribute("name");
session.removeAttribute("name");
3)生命周期
开始:client发出请求,getSession(true)
结束:超时/server停/session.invalidate()
修改session的最大失效时间方法:
1)web.xml,<servlet-mapping>标签后添加如下标签,单位分钟
<session-config>
<session-timeout>10</session-timeout>
</session-config>
2)session.setMaxInactiveInterval(600);//设置单个session的最大失效,单位秒
作业:
1。使用Servlet实现删除用户功能
2.给项目动态页面添加上当前登录用户:XXX
实例化 第1次请求 构造方法 1次
初始 实例化后,紧接着执行 init() 1
服务 有请求 service(doGet/doPost) N
销毁 server停 destroy() 1
ServletContext:web.xml 一个web应用对应一个servletContext
读取全局初始化参数:<servlet>外面,<web-app>的第一项<context-param>
String str = this.getServletContext().getInitParameter("参数名");
ServletConfig:web.xml中的一个<servlet>配置标签,一个web应用对应多个servletconfig
读取局部初始化参数:<servlet>里面,<servlet-class>的后面<init-param>
String str = this.getServletConfig().getInitParameter("参数名");
include:包含
PrintWriter out = request.getWriter();//设置命名属性
out.response("<html></html>");
RequestDispatcher rd = request.getRequestDispatcher("/url-pattern");
rd.include(request, response);
forward:请求转发
request.setAttribute("name", objval);//设置命名属性
RequestDispatcher rd = request.getRequestDispatcher("/url-pattern");
rd.forward(request, response);
request.getParameter("name");
Object obj = request.getAttribute("name");
特点:1)地址栏不变
2)服务器端的转发
3)永久转向
4)共享同一个request
sendRedirect:重定向
response.sendRedirect("/web应用/url-pattern?name=val&name2=val2");
String val = request.getParameter("name");
特点:1)地址栏改变
2)客户端的转向
3)永久转向
4)不共享同一个request
问题:request.getRequestDispatcher("http://www.sina.com.cn").forward(request, response); ERROR 404
response.sendRedirect("http://www.sina.com.cn"); OK
-----------------------------------------------------------
一、Cookie
服务器 往 浏览器 写的一小段数据(字符串),同两部分构成:name value
1)创建
Cookie c = new Cookie("name", "val");
c.setMaxAge(60);//设置cookie有效时间,秒
2)写cookie
response.addCookie(c);
3)读cookie
Cookies[] cookies = request.getCookies();
二、Session[重点]
http:无状态 ,对于同一客户端的连续请求不能记忆
会话跟踪,为了解决http的无状态.常见的会话跟踪技术: cookie(客户端保存数据的方式)
HttpSession(服务器端保存数据的方式)
Session:用于记录同一客户端的连接操作,包含多个request
1)创建session
HttpSession session = request.getSession(true);//true,如果当前client没有session,创建一个新的;如果有,直接拿来使用
//false,如果当前client没有session,返回null;如果有,直接拿来使用
String sessionid = session.getId();
boolean bn = session.isNew();
long seconds = session.getCreationTime();
2)Session是一个作用域对象
session.setAttribute("name",objval);
Object obj = session.getAttribute("name");
session.removeAttribute("name");
3)生命周期
开始:client发出请求,getSession(true)
结束:超时/server停/session.invalidate()
修改session的最大失效时间方法:
1)web.xml,<servlet-mapping>标签后添加如下标签,单位分钟
<session-config>
<session-timeout>10</session-timeout>
</session-config>
2)session.setMaxInactiveInterval(600);//设置单个session的最大失效,单位秒
作业:
1。使用Servlet实现删除用户功能
2.给项目动态页面添加上当前登录用户:XXX
相关文章推荐
- POJ 1995 快速幂模板
- Proud Merchants(POJ 3466 01背包+排序)
- 初等几何(1):三角形、四边形、正多边形
- android文件读取asse 4000 ts
- 2015 Xcode7 真机调试(开发者)以及P12配置---简书
- iOS UIcollectionview 数据量少时候bounces无效的解决方法
- 开发问题火狐出现内存泄漏错误
- J2EE中的struct中的json数据接收和发送
- ios自定义下拉列表
- IOS证书的申请和使用
- 一个成功的 Git 分支模型
- maven打包问题导致org.apache.ibatis.binding.BindingException: Invalid bound statement
- java.security.AccessControlException: access denied
- gulp项目安装最简单方法——在win10上使用镜像
- 初等代数(3):代数方程、指数与对数、复数
- 仿照CIFAR-10数据集格式,制作自己的数据集
- 仿照CIFAR-10数据集格式,制作自己的数据集
- java.rmi.ConnectException: Connection refused to host:
- js中数组的排序
- Android Theme