`

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
分享到:
评论

相关推荐

    关于servlet中request,session,application三者关系的形象解析

    request、session和application是Servlet编程中三种重要的域对象,它们各自管理着特定范围的数据存储。本文将深入解析这三者的概念、特点以及它们之间的关系。 1. HttpServletRequest request对象: request对象...

    四个范围 pagecontext request session application

    在Java Web开发中,"四个范围"是指PageContext、Request、Session和Application这四个不同的作用域,它们分别代表了Web应用程序中数据存储的不同层级和生命周期。理解并熟练掌握这四个范围,对于编写高效且可维护的...

    【动力节点Java学院】Servlet视频教程之Session

    总的来说,这个动力节点的Java Servlet视频教程全面覆盖了Cookie和Session的使用,不仅讲解了基本操作,还深入到它们的工作原理和应对策略,对于Java Web开发者来说,是一份非常实用的学习资源。通过学习,开发者...

    深入理解ServletJSP之“Cookie和Session原理”很详细

    ### 深入理解Servlet/JSP之“Cookie和Session原理” #### 一、Cookie Cookie是一种常用的技术,用于实现Web应用程序中的用户会话管理。它允许服务器存储一些数据(通常是小文本文件)在用户的计算机上,以便后续...

    jsp/servlet阶段测试

    本资源总结了jsp和servlet的阶段性测试,涵盖了servlet和jsp的基础知识点,包括servlet的生命周期、jsp的隐含对象、Filter的用途、Listener的类型、Request、Session和Application的区别等。 1. Servlet的生命周期...

    servlet和jsp学习指南

    《servlet和jsp学习指南》是一本专为Java Web开发初学者量身定制的书籍,它以细致入微的讲解和实例操作,带领读者深入理解Servlet和JSP的基本原理和应用方法。本书将从以下几个方面展开知识点的讲解: 1. Servlet...

    session与cookie的内容.doc

    Session和Cookie是Web开发中用于管理用户状态的两种常见技术。它们的主要区别在于数据存储的位置和安全性。 - **Session**: Session将用户的相关信息存储在服务器端,通常是一个键值对的集合。当用户登录后,服务器...

    Servlet+jsp.docx

    - **配置Servlet**:在`web.xml`文件中进行配置,指定Servlet的名称和URL映射路径。 - **部署到服务器**:将项目部署到Tomcat或其他支持Servlet的服务器上。 例如,创建一个名为`HelloServlet`的类,继承自`...

    Servlet笔记

    - **Servlet的配置**:在`web.xml`中通过`&lt;servlet&gt;`和`&lt;servlet-mapping&gt;`元素来定义和映射Servlet。例如: ```xml &lt;servlet&gt; &lt;servlet-name&gt;HW&lt;/servlet-name&gt; &lt;servlet-class&gt;HelloWorldServlet&lt;/servlet-...

    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知识点总结

    3. **response对象**:`javax.servlet.http.HttpServletResponse`的实例,封装了服务器对客户端的响应,包括重定向(`sendRedirect()`)和添加Cookie(`addCookie(Cookie cookie)`)。 4. **session对象**:`javax....

    JSP/Servlet Java面试逻辑题

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

    Servlet和JSP技术简介-外文文献翻译.pdf

    Servlet和JSP(JavaServer Pages)是Java开发语言在Web应用中的两个核心组件,它们主要用于构建动态、交互式的Web应用程序。这篇文档的翻译是对外文文献《Servlet和JSP技术简介》的概述,作者Marty Hall和Larry ...

    Tomcat_Session的持久化

    如果客户端不支持 Cookie,Servlet 容器可以通过重写 URL 来实现 Session 的跟踪。 三、Session 的管理 当一个 Session 开始时,Servlet 容器会创建一个 HttpSession 对象。在某些情况下,把这些 HttpSession 对象...

    servlet+jsp的购物车案例

    【Servlet和JSP基础】 Servlet和JSP是Java Web开发中的核心技术,用于构建动态网站。Servlet是Java编写的服务器端程序,主要功能是接收并处理客户端(如浏览器)的请求,然后返回响应。JSP(JavaServer Pages)则是...

    基于Servlet的电子商城购物网站

    6. **过滤器和监听器**:在项目中,过滤器(Filter)可以用来实现权限控制、字符编码转换等功能,而监听器(Listener)可以监听session、application等事件,例如,当用户退出时清理session中的数据。 7. **目录...

    java-servlet-api.doc

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

    JSP与Servlet核心技_.rar_CSAJSP chapter 16_Servlet/JSP_jsp+servlet_se

    JSP提供了九个内置对象,包括request、response、session、application、pageContext、out、config、page和exception。这些对象可以直接在JSP页面中使用,简化了开发过程。例如,`request`对象用于获取客户端的请求...

    详解SpringBoot中Session超时原理说明

    默认情况下,SpringBoot 使用 Tomcat 作为嵌入式 Servlet 容器,而 Tomcat 中的 Session 超时时间可以通过配置文件来设置。例如,在 application.properties 或 application.yml 文件中可以添加以下配置: ``` ...

    jsp&servlet复习

    此外,JSP还包含一系列内置对象,如Request、Response、Out、Session、Application等,它们提供了与HTTP请求和响应交互的能力。 Servlet是Java Web应用程序的核心组件,它是一个Java类,由Servlet容器(如Tomcat)...

Global site tag (gtag.js) - Google Analytics