`

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()方法。

 

    关于servlet线程安全的问题这里多提一下:

    对于每次访问请求,Servlet引擎都会创建一个新的HttpServletRequest请求对象和一个新的HttpServletResponse响应对象,然后将这两个对象作为参数传递给它调用的Servlet的service()方法,service方法再根据请求方式分别调用doXXX方法。只要该Servlet中不存在全局变量就不存在线程安全问题,因为每个线程访问的时候都会有自己的方法栈,局部变量是互不影响的。

    

 

    那么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基础帮助很大,各位可以参考下。

 

 

 

 

0
0
分享到:
评论

相关推荐

    六大对象Response,Request,Server,Application,Session,Cookie

    Response对象用语输出数据到客户端,包括向...而且Application对象还有控制访问应用层数据的方法和可用于在应用程序启动和停止时触发过程的事件。 Session即会话,是指一个用户在一段时间内对某一个站点的一次访问。

    servlet2.4doc

    Creates a cookie, a small amount of information sent by a servlet to a Web browser, saved by the browser, and later sent back to the server. Cookie(String, String) - Constructor for class javax....

    JSP/Servlet Java面试逻辑题

    答:request,session,application,cookie等 7、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 答:JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是类...

    java-servlet-api.doc

    客户端选择不加入Session,例如,如果客户端拒绝接收来自服务器的cookie 作为一个Servlet的开发者,你必须决定你的Web应用是否处理客户机不加入或不能加入Session。服务器会在Web服务器或Servlet规定的时间内维持一...

    JSP/Servlet

    Cookie 錯誤處理 JSP 生命週期 隱含物件(Implicit Object) JSP轉譯之後就是Servlet,各個隱含物件都對應於Servlet API中的某個物件,如果您對隱含物件的功能有什麼不瞭解的,查詢Servlet API文件中該物件的說...

    jsp有哪些内置对象?作用分别是什么?分别有什么方法?

    它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。  response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies,头信息等...

    java版 jquery uploadify 通过Flash实现多文件上传 IE 和FireFox 兼容

    之前上传了一个通过Flash实现多...方法二:在application(ServletContext)里保存一个session管理器HashMap:sessionId---sessionRef,这样可以在所有的servlet/jsp里调用,这需要在url里将sessionId以参数形式传递,如...

    Java秒杀系统方案优化高性能高并发学习实战源代码以及笔记..zip

    分布式session, 通过cookie完成分布式session功能. 将cookie存放到redis中. 第3章-秒杀功能开发及管理后台 学习到了基础的商品下单流程, 查库存,查是否重复下单,减库存,创建订单等过程 知识点 数据库设计(业务第一...

    How Tomcat Works: A Guide to Developing Your Own Java Servlet Container

    3.3.3.7 静态资源处理器和servlet处理器 17 第4章 tomcat的默认连接器 18 4.1 简介 18 4.2 HTTP1.1的新特性 18 4.2.1 持久化连接 18 4.2.2 编码 18 4.2.3 状态码100的使用 19 4.3 Connector接口 19 4.4 ...

    JavaWeb实战开发

    4.session与cookie问题及application、cookie补充说明及四种范围对象作用域? ? ?5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别? ? ?6....

    JAVA程序员面试题

    Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。 ...

    JSP 内部培训教程

    三、JSP注釋和指令 4 JSP注釋 4 JSP指令 4 page指令 4 include指令 5 taglib指令 5 四、JSP腳本元素 6 JSP聲明 6 JSP表達式 6 JSP腳本小程序 6 五、JSP動作 7 &lt;jsp:forward&gt; 7 &lt;jsp:plugin&gt; 8 &lt;jsp:useBean&gt; 8 ...

    JSP实例编程100例

    34、javax.servlet.jsp.JspWriter - out 对象 35、page 隐含对象 36、application 对象 37、PageContext 对象 38、Page范围 - pageContext 39、测试要显示的中文 40、IF控制符的操作 41、HttpServletRequest 接口所...

    数据库测试test.sql

    cookie1.setPath("/myservlet2/"); //当前项目 cookie2.setPath("/myservlet2"); //3.指定会员卡的作用时间 if("yes".equals(rememberme)){ cookie1.setMaxAge(60*60*24*10); //默认的时间浏览器不关闭的时间;...

    JAP编程学习100例

    34、javax.servlet.jsp.JspWriter - out 对象 35、page 隐含对象 36、application 对象 37、PageContext 对象 38、Page范围 - pageContext 39、测试要显示的中文 40、IF控制符的操作 41、HttpServletRequest 接口所...

    java面试题大全--java基础,struts,spring,ejb等

    4.描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理。 5.列出Jsp中包含外部文件的方式,两者有何区别。 6.说明Jsp中errorPage的作用,应用范围。 7.介绍在Jsp中如何使用JavaBeans。 8.简单介绍JSP...

    java 面试题 总结

    6、说出Servlet的生命周期,并说出Servlet和CGI的区别。 Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器...

    超级有影响力霸气的Java面试题大全文档

    9、说出Servlet的生命周期,并说出Servlet和CGI的区别。  Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当...

Global site tag (gtag.js) - Google Analytics