1.相关API
1.1 Servlet
javax.servlet.Servlet 接口
init(); service(); destroy(); getServletConfig(); getServletInfo();
javax.servlet.GenericServlet 抽象类
重写接口Servlet方法并完成多数方法
添加init(no args); getInitParameter(); getInitParameterName(); getServletContext(); log()x2;
javax.servlet.http.HttpServlet 抽象类
重写service,增加HttServletReq/response参数的方法
添加除connect外的7个http方法doXxx(); getLastModified();
1.2 Request
javax.servlet.ServletRequest 接口
获取request信息,操作Attribute,获取Paratmeter,等等
javax.servlet.http.HttpServletRequest 接口
增加getContextPath(); getCookies(); getSession(); getHeader(); getInputStream()等等 与httpServlet相关信息
1.3 Response
javax.servlet.ServletResponse 接口
getContentType(); getOutStream(); getWriter(); setContentType();
javax.servlet.http.HttpServletResponse 接口
addHeader();setHeader(); addCookie(); sendRedirect();
caution: 切记
ServletOutputStream a = response.getOutputStream(); a. write(xx);
PrintWriter b = response.getWriter(); b.println(xx);
1.3.1重定向:
response.sendRedirect(“http://www.oreilly.com”);
caution: 不可输出后再重定向
RequestDispatcher view = request.getRequestDispatcher(“result.jsp”);
view.forward(request,response);
1.4 javax.servlet.ServletContext 接口
get/set/removeAttribute(); getInitParameter();
getMajorVersion();getServerInfo();
getRealPath();getResourceAsStream(); getRequestDispatcher();
1.5 javax.servlet.ServletContextListener 接口
contextInitalized( ServletContextEvent ) --> ServletContextEvent 可调用getServletContext()
contextDestroyed( ServletContextEvent )
1.5.1 其他listener
javax.servlet.ServletContextAttributeListener attributeAdded/Removed/Replaced()
javax.servlet.ServletContextListener contextInitialized/contextDestroyed()
javax.servlet.http.HttpSessionAttributeListener attributeAdded/Removed/Replaced()
javax.servlet.http.HttpSessionListener sessionCreated/sessionDestroyed()
javax.servlet.http.HttpSessionBindingListener valueBound/Unbound()
javax.servlet.http.HttpSessionActivationListener sessionDidActivate/sessionWillPassivate
javax.servlet.ServletRequestAttributeListener attributeAdded/Removed/Replaced()
javax.servlet.ServletRequestListener requestInitialized/requestDestroyed()
1.6 session
isNew() caution:当客户端没开启cookie时永返回真
getSession() 如果已有session则返回当前HttpSession,否则新建一个并返回
getSession(false) 如果已有session则返回当前HttpSession,否则返回null
1.6.1 session销毁
getCreateTime(); getLastAccessedTime(); get/setMaxInactiveInterval([单位秒]); invalidate();
session.setMaxInactiveInterval(0); 则马上过期
cookie.setMaxAge(-1)表示浏览器退出时cookie就会消失。
而session.setMaxInactiveInterval(负数)表示session永远不会到期
1.7 cookie
get/setValue(), getName(), getPath(),setMaxAge();
2.Servlet生命周期
2.1 装载类
2.2 构造类
2.3 初始化类
在init之前处于不确定状态
init之后可获取类
ServletConfig (1 per Servlet) 可以:1.获取ServletContext 2. 获取servlet运行参数
ps: 在DD中配置初始参数
ServletContext (1 per App) 可以:1.数据暂存以共享数据 2.获取container信息
ps: 在DD中配置参数
2.4 调用类服务
caution: 每个request访问都在一个单独的servlet线程中,但只有一个servlet实例提供服务
2.5 销毁
3. filter
3.1 api:
init(FilterConfig) ; doFilter(ServletRequest, ServletResponse, FilterChain); destroy()