您的位置:首页 > 其它

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: