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