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基础帮助很大,各位可以参考下。
相关推荐
request、session和application是Servlet编程中三种重要的域对象,它们各自管理着特定范围的数据存储。本文将深入解析这三者的概念、特点以及它们之间的关系。 1. HttpServletRequest request对象: request对象...
在Java Web开发中,"四个范围"是指PageContext、Request、Session和Application这四个不同的作用域,它们分别代表了Web应用程序中数据存储的不同层级和生命周期。理解并熟练掌握这四个范围,对于编写高效且可维护的...
总的来说,这个动力节点的Java Servlet视频教程全面覆盖了Cookie和Session的使用,不仅讲解了基本操作,还深入到它们的工作原理和应对策略,对于Java Web开发者来说,是一份非常实用的学习资源。通过学习,开发者...
### 深入理解Servlet/JSP之“Cookie和Session原理” #### 一、Cookie Cookie是一种常用的技术,用于实现Web应用程序中的用户会话管理。它允许服务器存储一些数据(通常是小文本文件)在用户的计算机上,以便后续...
本资源总结了jsp和servlet的阶段性测试,涵盖了servlet和jsp的基础知识点,包括servlet的生命周期、jsp的隐含对象、Filter的用途、Listener的类型、Request、Session和Application的区别等。 1. Servlet的生命周期...
《servlet和jsp学习指南》是一本专为Java Web开发初学者量身定制的书籍,它以细致入微的讲解和实例操作,带领读者深入理解Servlet和JSP的基本原理和应用方法。本书将从以下几个方面展开知识点的讲解: 1. Servlet...
Session和Cookie是Web开发中用于管理用户状态的两种常见技术。它们的主要区别在于数据存储的位置和安全性。 - **Session**: Session将用户的相关信息存储在服务器端,通常是一个键值对的集合。当用户登录后,服务器...
- **配置Servlet**:在`web.xml`文件中进行配置,指定Servlet的名称和URL映射路径。 - **部署到服务器**:将项目部署到Tomcat或其他支持Servlet的服务器上。 例如,创建一个名为`HelloServlet`的类,继承自`...
- **Servlet的配置**:在`web.xml`中通过`<servlet>`和`<servlet-mapping>`元素来定义和映射Servlet。例如: ```xml <servlet> <servlet-name>HW</servlet-name> <servlet-class>HelloWorldServlet</servlet-...
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....
3. **response对象**:`javax.servlet.http.HttpServletResponse`的实例,封装了服务器对客户端的响应,包括重定向(`sendRedirect()`)和添加Cookie(`addCookie(Cookie cookie)`)。 4. **session对象**:`javax....
答:request,session,application,cookie等 7、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 答:JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是类...
Servlet和JSP(JavaServer Pages)是Java开发语言在Web应用中的两个核心组件,它们主要用于构建动态、交互式的Web应用程序。这篇文档的翻译是对外文文献《Servlet和JSP技术简介》的概述,作者Marty Hall和Larry ...
如果客户端不支持 Cookie,Servlet 容器可以通过重写 URL 来实现 Session 的跟踪。 三、Session 的管理 当一个 Session 开始时,Servlet 容器会创建一个 HttpSession 对象。在某些情况下,把这些 HttpSession 对象...
【Servlet和JSP基础】 Servlet和JSP是Java Web开发中的核心技术,用于构建动态网站。Servlet是Java编写的服务器端程序,主要功能是接收并处理客户端(如浏览器)的请求,然后返回响应。JSP(JavaServer Pages)则是...
6. **过滤器和监听器**:在项目中,过滤器(Filter)可以用来实现权限控制、字符编码转换等功能,而监听器(Listener)可以监听session、application等事件,例如,当用户退出时清理session中的数据。 7. **目录...
客户端选择不加入Session,例如,如果客户端拒绝接收来自服务器的cookie 作为一个Servlet的开发者,你必须决定你的Web应用是否处理客户机不加入或不能加入Session。服务器会在Web服务器或Servlet规定的时间内维持一...
JSP提供了九个内置对象,包括request、response、session、application、pageContext、out、config、page和exception。这些对象可以直接在JSP页面中使用,简化了开发过程。例如,`request`对象用于获取客户端的请求...
默认情况下,SpringBoot 使用 Tomcat 作为嵌入式 Servlet 容器,而 Tomcat 中的 Session 超时时间可以通过配置文件来设置。例如,在 application.properties 或 application.yml 文件中可以添加以下配置: ``` ...
此外,JSP还包含一系列内置对象,如Request、Response、Out、Session、Application等,它们提供了与HTTP请求和响应交互的能力。 Servlet是Java Web应用程序的核心组件,它是一个Java类,由Servlet容器(如Tomcat)...