`

javaWeb开发中ServletContext总结

 
阅读更多

WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。

  由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。

 

1.多个Servlet通过ServletContext对象实现数据共享。

 

InitServletService方法中利用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>  

 

DemoServletdoPost方法中测试获取初始化参数的步骤如下:   

 

/*获取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);   

 

注意:forwardinclude的区别 

 

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开发技术详解

    在JavaWeb开发中,Servlet用于接收、处理并响应客户端请求,实现动态网页功能。 2. **JSP(JavaServer Pages)**:JSP是一种基于Java的动态网页技术,它将HTML代码和Java代码分离,使得开发者可以专注于页面展示...

    javaWeb开发资源

    JavaWeb开发中,Filter可以拦截请求和响应,进行预处理或后处理,如登录验证、字符编码转换等。通过`&lt;filter&gt;`和`&lt;filter-mapping&gt;`元素在`web.xml`中配置。 7. **会话管理**: Servlet通过`HttpSession`接口管理...

    javaweb笔记+狂神+知识总结

    3. **MVC(Model-View-Controller)架构模式**:在JavaWeb开发中,MVC模式被广泛采用,用于组织和管理应用程序结构。Model代表业务数据,View负责展示,Controller处理用户请求并协调Model和View。 4. **JSTL(Java...

    李兴华JavaWeb培训经典笔记

    在JavaWeb开发中,Tomcat和MyEclipse是两个至关重要的工具。《Tommcat && Myeclipse.pdf》可能详细阐述了如何安装、配置和使用这两个平台,包括Tomcat服务器的启动、部署应用以及MyEclipse的项目创建与调试技巧。这...

    JavaWeb开发技术-使用Eclipse工具开发Servlet.pptx

    "JavaWeb开发技术-使用Eclipse工具开发Servlet" JavaWeb开发技术是指使用Java语言和相关技术开发Web应用程序的技术集合。其中,Servlet是一个核心组件,用于处理HTTP请求和响应。Eclipse是一个流行的集成开发环境...

    JAVAweb开发14566PPT课件.ppt

    总结,Servlet容器模型是JavaWeb开发的基础,理解ServletContext接口的功能以及如何利用它来管理会话、资源和日志记录,对于开发高效、可靠的Web应用至关重要。此外,Cookie的使用能增强用户体验,实现跨请求的数据...

    javaweb笔记+代码(狂神说java)

    在JavaWeb开发中,以下是一些关键知识点: 1. **Servlet**: Servlet是Java Web应用的基础,它是运行在服务器端的Java程序,用于处理HTTP请求。通过继承HttpServlet类并覆盖doGet()和doPost()方法来处理不同的HTTP...

    JavaWeb开发技术-FilterConfig接口.pptx

    JavaWeb开发技术中,FilterConfig接口扮演着至关重要的角色,它是Servlet API的一部分,主要用于帮助Filter程序获取在web.xml配置文件中的相关信息。理解并熟练运用FilterConfig接口是进行JavaWeb开发的基础,下面...

    JavaWeb学习总结共9页.pdf.zip

    3. **MVC(Model-View-Controller)模式**:这是一种设计模式,广泛应用于JavaWeb开发中,用于分离业务逻辑、数据模型和用户界面。Model负责数据处理,View负责显示,Controller负责接收请求并调用Model和View。 4....

    javaweb应用程序设计(栗菊民编著)课本源代码

    在JavaWeb开发中,我们通常会涉及到以下几个关键知识点: 1. **Servlet与JSP**:Servlet是JavaWeb应用的核心,用于处理HTTP请求,而JSP则是一种动态网页技术,方便进行视图层的开发。Servlet和JSP之间可以通过转发...

    javaweb知识总结

    总结来说,JavaWeb开发中Servlet扮演着核心角色,通过处理HTTP请求和响应,结合转发和重定向技术,能够构建动态、交互的Web应用程序。理解Servlet的生命周期和三大域对象,以及转发和重定向的工作原理,是成为一名...

    javaweb中的笔记

    Servlet是JavaWeb开发中的核心组件,用于处理HTTP请求和响应。它通过扩展`javax.servlet.Servlet`接口或者继承`javax.servlet.http.HttpServlet`类来实现。了解Servlet生命周期、初始化、服务和销毁方法是基础。 二...

    学习javaweb的学习过程

    ### 学习JavaWeb的学习过程 #### 一、JavaWeb简介与环境搭建 ... - **环境搭建**:JavaWeb学习的第一...通过以上内容的学习,你可以系统地掌握JavaWeb开发的基础知识和技术要点,为进一步深入学习和实践打下坚实的基础。

    JAVAweb开发课件.ppt

    总结来说,Servlet 容器模型是 Java Web 开发的基础,理解 ServletContext、会话管理和Cookie的应用对于构建功能丰富的 Web 应用至关重要。通过熟练掌握这些概念和技术,开发者能够有效地处理用户请求,管理应用状态...

    《JavaWeb程序开发入门》课后练习(含答案).doc

    《JavaWeb 程序开发入门》课后练习(含答案) 《JavaWeb 程序开发入门》课后练习(含答案)是 JavaWeb 程序开发的入门教程,涵盖了 JavaWeb 开发的基础知识和实践经验。该教程通过课后练习和答案,帮助学习者巩固基础...

    XX大学Javaweb期末试卷总结版.doc

    这份XX大学的JavaWeb期末试卷总结版涵盖了JavaWeb开发的关键知识点,包括Servlet、Tomcat服务器、HTTP协议、JSP、Cookie与Session、数据库连接以及JSP指令和内置对象等。 1. **Servlet与Tomcat** - 在Tomcat上发布...

    JavaWeb开发技术-JSP隐式对象.pptx

    JavaWeb开发技术中,JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML代码中嵌入Java代码,从而实现服务器端的业务逻辑处理。JSP隐式对象是JSP提供的一组预定义的对象,可以直接在JSP页面中使用,...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    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案例+代码"是针对初学者和进阶者精心设计的一系列实战项目,旨在帮助学习者深入理解和掌握JavaWeb开发的关键技能。 1. **Servlet**: Servlet是Java Web应用中处理HTTP请求的核心组件。在这些...

Global site tag (gtag.js) - Google Analytics