- 浏览: 166663 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (327)
- JAVA (130)
- 工作笔记 (49)
- SQLSERVER (5)
- ORACLE (28)
- nginx (1)
- Unix C (16)
- 系统 (19)
- 网络技术 (17)
- WEB前端 (22)
- Eclipse (2)
- Tomcat (1)
- spring (7)
- MYSQL (12)
- Maven (6)
- JETTY (2)
- 设计 (2)
- 开源项目 (7)
- asterisk (0)
- C++ (2)
- WINDOWS (2)
- SCALA (0)
- 协议 (1)
- Netty (1)
- SHELL (1)
- mybaits (4)
- 并发 (2)
- 架构 (2)
- TCP/IP (8)
- 虚拟化 (3)
- 不要再说java慢 (0)
- mac (2)
- mysql乱码完美解决 (1)
最新评论
转自http://blog.csdn.net/qiqiongran_luck/article/details/6889037
今天我们学习的是ServletContext的应用。
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);
}
2.实现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还可以继续输出响应信息)
3.利用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);
}
分享到:
上一篇:Servlet入门学习
今天我们学习的是ServletContext的应用。
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);
}
2.实现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还可以继续输出响应信息)
3.利用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);
}
分享到:
上一篇:Servlet入门学习
发表评论
-
[转]如何用消息系统避免分布式事务
2015-09-11 16:17 407http://mp.weixin.qq.com/s?__biz ... -
QQ 新浪 淘宝联合登录(转)
2015-08-11 10:53 504http://takeme.iteye.com/blog/1 ... -
Linkedin开源实时分析框架Pinot
2015-06-20 10:39 492[url]http://engineering.linkedi ... -
自增主键
2015-06-17 16:56 468http://www.cnblogs.com/heyuquan ... -
Spring-Petclinic
2015-04-04 08:27 347petclinic http://xpenxpen.itey ... -
nginx 基本配置
2015-04-03 21:31 495http://www.cnblogs.com/lost-198 ... -
日志异步化
2015-03-25 22:44 405http://www.oschina.net/translat ... -
hiberbate 包升级和oracle版本
2015-03-16 15:00 472hibernate 版本和oracle 版本的问题。 228 ... -
Maven配置本地库加载ojdbc14-10.2.0.4.0.jar文件
2015-03-16 09:46 511http://blog.sina.com.cn/s/blog_ ... -
hibernate自增主键
2015-03-14 21:11 398http://xiaowei-qi-epro-com-cn.i ... -
kafka
2015-03-10 23:21 431http://www.infoq.com/cn/news/20 ... -
c3p0 参数
2015-03-09 18:15 558http://haoran-10.iteye.com/blog ... -
网友的学习路线值得借鉴
2015-03-04 10:08 373http://blog.csdn.net/liuxiaoyi2 ... -
使用JDBC获取各数据库的Meta信息——表以及对应的列
2015-01-03 13:21 453http://blog.csdn.net/renfufei/a ... -
hadoop 在centos 64位上的编译,非常重要
2014-12-09 21:15 393http://blog.csdn.net/picassolov ... -
hbase 在虚拟机中的安装(单节点) (转)
2014-12-02 16:39 414http://www.tuicool.com/articles ... -
Spring管理多数据源
2014-11-22 12:45 324http://blog.csdn.net/lovesqcc/a ... -
Java高并发编程——为IO密集型应用设计线程数与划分任务
2014-11-22 12:29 1466http://blog.csdn.net/xichenguan ... -
netty 和nio
2014-11-16 12:38 401http://blog.csdn.net/column/det ... -
spring mvc 的几个注解
2014-11-12 19:39 414http://csjava.blog.163.com/blog ...
相关推荐
Servlet的生命周期分为四个阶段:加载和实例化、初始化、服务以及销毁。下面将详细解释这些阶段。 1. **加载和实例化**: 当Servlet容器(如Tomcat、Jetty等)启动时,或者当容器首次接收到需要特定Servlet服务的...
总结来说,`ServletContext`是Java Web开发中的重要工具,它提供了一种在不同Servlet间共享数据和资源的有效方式。在Myeclipse这样的开发环境中,理解和熟练运用`ServletContext`能够极大地提升开发效率,同时也能...
`servletContext`是Servlet API中...总结,`servletContext`是Java Web开发中的一个重要工具,它为Web应用程序提供了一种全局的通信和资源共享机制。理解和熟练使用`servletContext`对于提升Java Web开发能力至关重要。
介绍 ServletContext对象的一些重要方法的示例代码
### 总结 通过将Quartz与ServletContext结合,我们可以方便地在Web应用中管理定时任务,并在应用的生命周期内保持任务的执行。这种配置方式使得任务调度与Web容器紧密集成,便于监控和维护,是Java Web开发中常见的...
总结来说,ServletContext是Java Web开发中的关键组件,它提供了跨Servlet通信的途径,允许共享数据,读取全局配置,以及访问资源文件,极大地增强了应用程序的功能和灵活性。在设计和实现高效、协作的Web应用时,...
#### 四、总结 `ServletContext`作为Servlet架构中的核心接口之一,其重要性不言而喻。通过对`ServletContext`的学习和理解,开发者能够更好地管理和操作Web应用中的共享数据、配置信息和其他资源,从而提高应用...
#### 五、总结 `ServletContext`和`ServletConfig`是Java Web开发中的两个核心概念。`ServletContext`提供了整个Web应用程序级别的共享环境,用于存储初始化参数、共享数据、访问资源和记录日志等;而`...
总结起来,`Servlet`接口定义了Servlet的基本行为,包括初始化和处理请求;`ServletContext`接口则提供了Web应用程序的全局环境,用于存储共享数据和进行跨Servlet的通信。理解和熟练掌握这两个接口对于Java Web...
在这篇总结中,我们将讨论 ServletConfig 对象和 ServletContext 对象两个常用的 Servlet 对象。 ServletConfig 对象 ServletConfig 对象是 Servlet 生命周期中的一部分,它提供了关于 Servlet 的一些基本信息。...
Java Web 笔记总结 Java Web 笔记总结主要讲解了 Servlet 的概念、生命周期、创建方式、映射细节、线程安全、获取配置信息等知识点。 Servlet 概念 Servlet 是运行在 Web 服务器中的小型 Java 程序(即:服务器端...
在总结中,ServletContext对象是Servlet中一个非常重要的类,它提供了许多有用的方法来获取web应用程序的信息和配置。我们可以使用ServletContext对象来获取初始化参数、获取web应用程序的资源、获取web应用程序的...
Java Web 总结 Java Web 应用程序是基于 ...以上是 Java Web 总结的主要内容,涵盖了 Java Web 应用程序的基本概念、HTTP 协议、Servlet 基础、Servlet 生命周期、ServletConfig 与 ServletContext 等方面的知识点。
### 总结 ServletContext是Web应用中非常重要的一个组件,它提供了多种读取和管理Web资源的方法。通过这些方法,开发者可以在Web应用中灵活地访问和操作资源文件,满足不同的业务需求。在实际开发中,合理使用这些...
总结 在本文中,我们讨论了如何获取应用范围初始化参数和 Servlet 初始化参数。在 Servlet 编程中,这些参数可以在整个 Web 应用程序中访问,或者在 Servlet 的生命周期中访问。通过使用 `ServletContext` 和 `...
Java是一种广泛使用的高级编程语言,由Sun Microsystems(后被Oracle公司收购)于1995年发布。它的设计目标是“一次编写,到处运行”,强调跨平台的可移植性,安全性,以及面向对象的特性。Java的核心理念是“简单、...
Servlet上下文(ServletContext)提供了保存Web应用信息、访问全局资源的功能,是整个Web应用共享数据的重要途径。 总结来说,J2EE项目开发涵盖了从架构设计、Web应用结构、XML处理、HTTP请求处理、Servlet编程、...
* ServletContext 和 Filter 等 servlet 组件 * web.xml 和 tomcat 等 servlet 容器 十、JSP 和 JavaScript * JSP Scope Object 和 HTML、JavaScript 等 web 开发技术 * Cookie 和 HttpSession 等 web 存储机制 ...
### Servlet与JSP知识点总结 #### 一、Servlet概述及基本使用 - **Servlet定义**:Servlet是一种服务器端的小程序,用于处理来自Web浏览器或其他HTTP客户端的请求,并返回响应。Servlet通常作为MVC架构模式中的...
`application`对象也称为`ServletContext`,它在整个Web应用程序的生命周期内保持有效。常用于全局共享信息,例如: - **实现网页计数器**:可以将网站访问次数保存在`application`对象中。 - **存储配置信息**:...