Java web之cookie session和application和servlet

?

Cookie和Session和Application记录下笔记

?

1.Cookie是保留在浏览器端,当浏览器关闭,Cookie自动清空

?

2. Session是保留在服务端,超时时间在服务端配置。

//web.xml中配置
<web-app>
<session-config>
<session-timeout>20</session-timeout>
</session-config>
</web-app>


//代码中设置
session.setMaxInactiveInterval(20*60);

? ??

?

3.Application是保留在服务端,服务端一直起着,它就一直存在。 可以用于保存全局的信息。

?

4.Servlet?

? ?说明servlet主要有三个生命周期:

? ?? ①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。

  ②装载并创建该Servlet的一个实例对象,注意这个实例是单例的,所以调用后面的service方法的时候可能有并发问题
  ③调用Servlet实例对象的init()方法。
  ④创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。
  ⑤WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。

? ? 那么service()方法和doGet doPost有什么关系呢?原来在service代码中有判断method属性

? ?

 protected void service(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException
    {
        String method = req.getMethod();
        if(method.equals("GET"))
        {
            long lastModified = getLastModified(req);
            if(lastModified == -1L)
            {
                doGet(req, resp);
            } else
            {
                long ifModifiedSince = req.getDateHeader("If-Modified-Since");
                if(ifModifiedSince < (lastModified / 1000L) * 1000L)
                {
                    maybeSetLastModified(resp, lastModified);
                    doGet(req, resp);
                } else
                {
                    resp.setStatus(304);
                }
            }
        } else
        if(method.equals("HEAD"))
        {
            long lastModified = getLastModified(req);
            maybeSetLastModified(resp, lastModified);
            doHead(req, resp);
        } else
        if(method.equals("POST"))
            doPost(req, resp);
        else
        if(method.equals("PUT"))
            doPut(req, resp);
        else
        if(method.equals("DELETE"))
            doDelete(req, resp);
        else
        if(method.equals("OPTIONS"))
            doOptions(req, resp);
        else
        if(method.equals("TRACE"))
        {
            doTrace(req, resp);
        } else
        {
            String errMsg = lStrings.getString("http.method_not_implemented");
            Object errArgs[] = new Object[1];
            errArgs[0] = method;
            errMsg = MessageFormat.format(errMsg, errArgs);
            resp.sendError(501, errMsg);
        }
    }

?

<servlet>
    <servlet-name>ServletDemo</servlet-name>
    <servlet-class>com.ServletDemo</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>ServletDemo</servlet-name>
    <url-pattern>/servlet/ServletDemo</url-pattern>
  </servlet-mapping>

? ? servlet转自?http://www.cnblogs.com/xdp-gacl/p/3760336.html

? ? 这哥们的系列文档对学习java web基础帮助很大,各位可以参考下。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。