WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。
由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。
1.多个Servlet通过ServletContext对象实现数据共享。
在InitServlet的Service方法中利用ServletContext对象存入需要共享的数据
/*获取ServletContext对象*/
ServletContext context = this.getServletContext();
//存入共享的数据
context.setAttribute("name", "haha");
在其它的Servlet中利用ServletContext对象获取共享的数据
/*获取ServletContext对象*/
ServletContext context = this.getServletContext();
//获取共享的数据
String name = context.getAttribute("name");
System.out.println("共享的内容值是:"+name);
2.获取WEB应用的初始化参数。
在web.xml文件中配置需要初始化的参数信息。
<web-app>
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/4g</param-value>
</context-param>
<context-param>
<param-name>password</param-name>
<param-value>1314qr</param-value>
</context-param>
<context-param>
<param-name>user</param-name>
<param-value>root</param-value>
</context-param>
</web-app>
在DemoServlet的doPost方法中测试获取初始化参数的步骤如下:
/*获取ServletContext对象*/
ServletContext context = this.getServletContext();
/*获取初始化参数*/
//获取指定名称的初始化参数
String url = context.getInitParameter("url");
//获取web.xml文件中所有的初始化应用参数
Enumeration<String> enumer = context.getInitParameterNames();
while(enumer.hasMoreElements()){
String name = enumer.nextElement();
String value = context.getInitParameter(name);
System.out.println(name+"=========="+value);
}
3.实现Servlet的转发:
在测试的Servlet中实现转发的步骤如下:
/*要利用ServletContext对象实现转发获取对象*/
ServletContext context = this.getServletContext();
//在request对象中存入name属性
request.setAttribute("name", "haha");
/*根据转发的地址获取 RequestDispatcher对象*/
RequestDispatcher rd = context.getRequestDispatcher("/index.jsp");
//调用转发方法 以下采用任意方法即可
rd.forward(request, response);
//rd.include(request, response);
注意:forward与include的区别
forward方法是把请求的内容转发到另外的一个servlet.而include是把另一个servlet处理过后的内容拿过来.
(forward方法调用后在响应中的没有提交的内容被自动消除。将请求转发给其他的Servlet后,由
被调用的Servlet负责对请求做出响应,而原先Servlet的执行则终止。
include方法使原先的Servlet和转发到的Servlet都可以输出响应信息,即原先的Servlet还可以继续输出响应信息)
4.利用ServletContext对象读取资源文件。
读取资源文件(properties文件(属性文件))的三种方式
配置的properties的内容如下:
url=jdbc\:mysql\://localhost\:3306/3g ;
user=root;
password=root;
获取实现的代码如下:
/*获取ServletContext对象*/
ServletContext context = this.getServletContext();
//第一种方式
URL url = context.getResource("WEB-INF/classes/db.properties");
InputStream is = url.openStream();
//第二种方式
/*读取db.properties文件*/
String path =context.getRealPath("WEB-INF/classes/db.properties");
/*根据文件的路径 构建文件对象*/
File file = new File(path);
/*根据file文件对象 创建输入流*/
InputStream is = new FileInputStream(file);
//第三种方式
InputStream is = context.getResourceAsStream("WEB-INF/classes/db.properties ");
以三种方式任意一种可以:
/*解析properties的文件*/
Properties prop = new Properties();
//从输入流中读取属性列表(键和元素对)。
prop.load(is);
Set<String> set = prop.stringPropertyNames();
//遍历set集合
Iterator<String> it = set.iterator();
while(it.hasNext()){
String key = it.next();
String value = prop.getProperty(key);
System.out.println(key+"-----"+value);
}
相关推荐
在JavaWeb开发中,Servlet用于接收、处理并响应客户端请求,实现动态网页功能。 2. **JSP(JavaServer Pages)**:JSP是一种基于Java的动态网页技术,它将HTML代码和Java代码分离,使得开发者可以专注于页面展示...
JavaWeb开发中,Filter可以拦截请求和响应,进行预处理或后处理,如登录验证、字符编码转换等。通过`<filter>`和`<filter-mapping>`元素在`web.xml`中配置。 7. **会话管理**: Servlet通过`HttpSession`接口管理...
3. **MVC(Model-View-Controller)架构模式**:在JavaWeb开发中,MVC模式被广泛采用,用于组织和管理应用程序结构。Model代表业务数据,View负责展示,Controller处理用户请求并协调Model和View。 4. **JSTL(Java...
在JavaWeb开发中,Tomcat和MyEclipse是两个至关重要的工具。《Tommcat && Myeclipse.pdf》可能详细阐述了如何安装、配置和使用这两个平台,包括Tomcat服务器的启动、部署应用以及MyEclipse的项目创建与调试技巧。这...
"JavaWeb开发技术-使用Eclipse工具开发Servlet" JavaWeb开发技术是指使用Java语言和相关技术开发Web应用程序的技术集合。其中,Servlet是一个核心组件,用于处理HTTP请求和响应。Eclipse是一个流行的集成开发环境...
总结,Servlet容器模型是JavaWeb开发的基础,理解ServletContext接口的功能以及如何利用它来管理会话、资源和日志记录,对于开发高效、可靠的Web应用至关重要。此外,Cookie的使用能增强用户体验,实现跨请求的数据...
在JavaWeb开发中,以下是一些关键知识点: 1. **Servlet**: Servlet是Java Web应用的基础,它是运行在服务器端的Java程序,用于处理HTTP请求。通过继承HttpServlet类并覆盖doGet()和doPost()方法来处理不同的HTTP...
JavaWeb开发技术中,FilterConfig接口扮演着至关重要的角色,它是Servlet API的一部分,主要用于帮助Filter程序获取在web.xml配置文件中的相关信息。理解并熟练运用FilterConfig接口是进行JavaWeb开发的基础,下面...
3. **MVC(Model-View-Controller)模式**:这是一种设计模式,广泛应用于JavaWeb开发中,用于分离业务逻辑、数据模型和用户界面。Model负责数据处理,View负责显示,Controller负责接收请求并调用Model和View。 4....
在JavaWeb开发中,我们通常会涉及到以下几个关键知识点: 1. **Servlet与JSP**:Servlet是JavaWeb应用的核心,用于处理HTTP请求,而JSP则是一种动态网页技术,方便进行视图层的开发。Servlet和JSP之间可以通过转发...
总结来说,JavaWeb开发中Servlet扮演着核心角色,通过处理HTTP请求和响应,结合转发和重定向技术,能够构建动态、交互的Web应用程序。理解Servlet的生命周期和三大域对象,以及转发和重定向的工作原理,是成为一名...
Servlet是JavaWeb开发中的核心组件,用于处理HTTP请求和响应。它通过扩展`javax.servlet.Servlet`接口或者继承`javax.servlet.http.HttpServlet`类来实现。了解Servlet生命周期、初始化、服务和销毁方法是基础。 二...
### 学习JavaWeb的学习过程 #### 一、JavaWeb简介与环境搭建 ... - **环境搭建**:JavaWeb学习的第一...通过以上内容的学习,你可以系统地掌握JavaWeb开发的基础知识和技术要点,为进一步深入学习和实践打下坚实的基础。
总结来说,Servlet 容器模型是 Java Web 开发的基础,理解 ServletContext、会话管理和Cookie的应用对于构建功能丰富的 Web 应用至关重要。通过熟练掌握这些概念和技术,开发者能够有效地处理用户请求,管理应用状态...
《JavaWeb 程序开发入门》课后练习(含答案) 《JavaWeb 程序开发入门》课后练习(含答案)是 JavaWeb 程序开发的入门教程,涵盖了 JavaWeb 开发的基础知识和实践经验。该教程通过课后练习和答案,帮助学习者巩固基础...
这份XX大学的JavaWeb期末试卷总结版涵盖了JavaWeb开发的关键知识点,包括Servlet、Tomcat服务器、HTTP协议、JSP、Cookie与Session、数据库连接以及JSP指令和内置对象等。 1. **Servlet与Tomcat** - 在Tomcat上发布...
JavaWeb开发技术中,JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML代码中嵌入Java代码,从而实现服务器端的业务逻辑处理。JSP隐式对象是JSP提供的一组预定义的对象,可以直接在JSP页面中使用,...
9.6.2、取得ServletContext实例 9.7、Servlet跳转 9.7.1、客户端跳转 9.7.2、服务器端跳转 9.8、WEB开发模式:Mode I与Mode II 9.8.1、Mode I 9.8.2、Mode II:Model-View-Controller 9.9、实例操作:MVC设计...
本压缩包包含的"javaweb案例+代码"是针对初学者和进阶者精心设计的一系列实战项目,旨在帮助学习者深入理解和掌握JavaWeb开发的关键技能。 1. **Servlet**: Servlet是Java Web应用中处理HTTP请求的核心组件。在这些...