基本概念:.request session servletContext对象保持的数据范围 区别
1.request :保持的数据 仅在下一个request中得到用 在页面转发时共享数据
2.session 作用域表示在一个用户与服务器会话范围之内 直到客户端关闭或session超时
3.servletContext中对象存取的数据是个全局的,生命周期也是长久的,直到web服务器关闭
示例:
package com.qingbyqing.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
//servlet中对象作用域 测试: ServletRequest Session ServletContext
public class SessionScopeTest extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws IOException {
System.out.println("_______________________________");
PrintWriter writer = response.getWriter();
writer.println("<html> <head> </head> <body>");
HttpSession session = request.getSession();
ServletContext servletContext = this.getServletContext();
Integer iRequest = (Integer) request.getAttribute("count");
Integer iSession = (Integer) session.getAttribute("count");
Integer iContext = (Integer) servletContext.getAttribute("count");
if (iRequest == null) {
iRequest = new Integer(1);
request.setAttribute("count", iRequest);
} else {
System.out.println(iRequest.toString());
int intValue = iRequest.intValue();
intValue++;
iRequest = new Integer(intValue);
request.setAttribute("count", iRequest);
}
System.out.println("request: " + (iRequest.intValue()));
writer.println("</br> request: " + (iRequest.intValue()));
if (iSession == null) {
iSession = new Integer(1);
request.getSession().setAttribute("count", iSession);
} else {
int intValue = iSession.intValue();
intValue++;
iSession = new Integer(intValue);
request.getSession().setAttribute("count", iSession);
}
System.out.println("Session: " + (iSession.intValue()));
writer.println("</br> Session: " + (iSession.intValue()));
if (iContext == null) {
iContext = new Integer(1);
this.getServletContext().setAttribute("count", iContext);
} else {
int intValue = iContext.intValue();
intValue++;
iContext = new Integer(intValue);
this.getServletContext().setAttribute("count", iContext);
}
System.out.println("sevletContext: " + (iContext.intValue()));
writer.println("</br> sevletContext: " + (iContext.intValue()));
writer.println("</body></html>");
}
}
在web.xml中的配置:
<servlet>
<description>this is a session scope test</description>
<display-name>this is a session scope test</display-name>
<servlet-name>SessionScopeTest</servlet-name>
<servlet-class>com.qingbyqing.servlet.SessionScopeTest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SessionScopeTest</servlet-name>
<url-pattern>/com.qingbyqing.servlet/SessionScopeTest</url-pattern>
</servlet-mapping>
结果如下:
firfox中显示:
控制台中输出:
- 大小: 13.3 KB
- 大小: 5 KB
分享到:
相关推荐
标题中的“访问或添加三个范围的属性与获取Request-Session-ServletContext-Response对象”指的是在Java Web开发中,如何操作四个重要的请求处理对象:HttpServletRequest(Request)、HttpSession(Session)、...
因此,ServletContext也被称作context域对象,是四大域对象之一(request、session、page和context)。 在Web应用中,不论访问静态资源(如HTML、JSP)还是动态资源(如Servlet、Action),请求都会被路由到相应的...
在“HomeWork”文件中,可能包含了实现这些概念的示例代码,例如创建一个新的Servlet,处理用户请求,使用RequestDispatcher进行转发,通过ServletContext共享数据,以及利用HttpSession保存和读取会话信息。...
在Java Web开发中,经常需要在非Servlet类(如普通Java类)中获取`HttpServletRequest`对象,以便访问请求中的参数、头信息等。通常情况下,`HttpServletRequest`对象是在Servlet或者过滤器(Filter)中获取的。然而,...
这些内容在servlet3.txt、servlet2.txt和servelt1.txt文件中应该有详细介绍,包括具体方法的使用示例、配置示例以及最佳实践。通过学习这些文档,开发者可以更好地理解和使用Servlet API,从而高效地开发Java Web...
处理表单数据时,Servlet可以通过`request.getParameter()`方法获取POST或GET请求中的参数。例如: ```java String yonghu = request.getParameter("yonghu"); String mima = request.getParameter("mima"); // ......
HttpSession session = request.getSession(); session.setAttribute("name", "zhangsan"); session.setAttribute("pwd", "aaa"); String name = (String) session.getAttribute("name"); ``` **2. Cookie** ...
本文详细介绍了JSP和Servlet中关于请求与响应的关键知识点,包括JSP内置对象的作用、请求与响应对象的使用方法、中文乱码问题及其解决办法、转发与重定向的区别以及Servlet的基本创建和配置流程。希望这些内容能够...
HttpSession session = request.getSession(); session.setAttribute("key", "value"); String value = (String) session.getAttribute("key"); ``` #### 五、HttpServlet 类 `HttpServlet` 类继承自 `...
7. JSP内置对象:JSP页面中可以直接使用的预定义对象,如request、response、session、application、out等,它们为开发者提供了访问客户端请求、服务器响应和应用程序环境的接口。 8. JSP标准标签库(JSTL):这是...
它提供了详细的API接口说明、类库介绍和示例代码,帮助开发者了解Servlet的工作原理和使用方法。例如,Servlet接口中的`service()`方法用于响应客户端请求,`init()`和`destroy()`方法则分别用于初始化和销毁Servlet...
Servlet 和 JSP(Java Server Pages)都是 Java Web 开发中的关键技术。Servlet 是一种基于 Java 的标准技术,用于开发动态网页;而 JSP 则是一种简化版的 Servlet,允许在 HTML 文件中嵌入 Java 代码,使得开发人员...
JSP源码可能包含了各种内置对象(如request、response、session、out等)的使用示例,以及JSP指令(page、include、taglib)和动作元素(jsp:useBean、jsp:setProperty、jsp:getProperty等)。读者可以通过这些源码...
Listener则可以监听特定的事件,如session创建、销毁,以及ServletContext的变化。 7. **Servlet 3.0的新特性** Servlet 3.0引入了异步处理能力,允许在`service()`方法中启动异步操作,提高系统性能。此外,还...
Chapter07和Chapter09可能涉及JSP内置对象,如request、response、session、application等,这些都是在JSP页面中直接使用的Java对象,方便处理HTTP请求和响应。 Chapter10T和Chapter11可能包含更高级的主题,如MVC...
最后,书中通常会提供丰富的示例和练习,帮助读者通过实践来巩固所学知识。通过阅读《Head First Servlets and JSP》,读者将能够掌握Java Web开发的核心技术,为构建复杂的Web应用程序打下坚实的基础。无论是初学者...
`Servlet` B.`ServletContext` C.`ServletConfig` D. `GenericServlet` - **正确答案**: C. `ServletConfig` - **解析**: 初始化参数是 Servlet 在启动时从容器接收的一些配置信息,这些信息通常是通过 `web....
Servlet API是Java Web...这个“servletAPI”的文档可能涵盖了这些知识点,并提供了示例代码和实践指导,帮助初学者理解并熟练运用Servlet API进行Web开发。通过深入学习和实践,开发者可以构建出高效、可靠的Web服务。
4. 掌握JSP内置对象(如request、response、session、pageContext等)的使用。 5. 学习MVC(Model-View-Controller)设计模式,并将JSP与Servlet结合实现。 ### JDK JDK是Java编程语言的开发工具包,包含了编译、...