ServletContext应用
2011-10-25 20:43
253 查看
ServletContext应用
前提: 1----------Enumeration<E>e代表枚举值
(x|y|z)*代表
无序的、里面互斥、可单独
X-----0到多
y-----0到多
z-----0到多
应用一:实现Servlet的转发。
注意:forward与include的区别
1---forward方法调用后在响应中的没有提交的内容被自动消除。将请求转发给其他的Servlet后,由被调用的Servlet负责对请求做出响应,而原先Servlet的执行则终止。
2---include方法使原先的Servlet和转发到的Servlet都可以输出响应信息,即原先的Servlet还可以继续输出响应信息。
在测试的Servlet中实现转发的步骤如下:
要利用ServletContext对象实现转发获取对象
ServletContext context = this.getServletContext();
在request对象中存入name属性
request.setAttribute("name", wyd");
根据转发的地址获取 RequestDispatcher对象
RequestDispatcher rd = context.getRequestDispatcher("/index.jsp");
调用转发方法 以下采用任意方法即可
rd.forward(request, response);
rd.include(request, response);
应用二:多个ServletContext通过ServletContext对象实现数据共享。
1--- 在InitServletde 通过ServletContext方法中利用ServletContext对象存入需要共享的数据。
获取ServletContext对象
ServletContext context=this.getServletContext();
存入共享的数据
Context.setAttribute(“name”,”wyd”);
2--- 在其它的Servlet中利用ServletContext对象获取共享的数据
获取ServletContext对象
ServletContext context=this.getServletContext();
获取共享数据
String name=context.getAttribute(“name”);
System.out.println(“共享数据的值是:”+name);
应用三:实现Servlet的转发
注意:重定向与转发的区别
1---地址栏的区别:转发地址栏不变
2---处理请求资源的位置不同:sendRedirect()方法可以跨WEB应用程序和服务器重新定位资源来处理请求。forward()方法只能在应用程序内部转发。
3---传值不同: forward()方法能在转发的地址中获取存入的作用域的值。但是,重定向不能。
应用四:利用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);
}
前提: 1----------Enumeration<E>e代表枚举值
(x|y|z)*代表
无序的、里面互斥、可单独
X-----0到多
y-----0到多
z-----0到多
应用一:实现Servlet的转发。
注意:forward与include的区别
1---forward方法调用后在响应中的没有提交的内容被自动消除。将请求转发给其他的Servlet后,由被调用的Servlet负责对请求做出响应,而原先Servlet的执行则终止。
2---include方法使原先的Servlet和转发到的Servlet都可以输出响应信息,即原先的Servlet还可以继续输出响应信息。
在测试的Servlet中实现转发的步骤如下:
要利用ServletContext对象实现转发获取对象
ServletContext context = this.getServletContext();
在request对象中存入name属性
request.setAttribute("name", wyd");
根据转发的地址获取 RequestDispatcher对象
RequestDispatcher rd = context.getRequestDispatcher("/index.jsp");
调用转发方法 以下采用任意方法即可
rd.forward(request, response);
rd.include(request, response);
应用二:多个ServletContext通过ServletContext对象实现数据共享。
1--- 在InitServletde 通过ServletContext方法中利用ServletContext对象存入需要共享的数据。
获取ServletContext对象
ServletContext context=this.getServletContext();
存入共享的数据
Context.setAttribute(“name”,”wyd”);
2--- 在其它的Servlet中利用ServletContext对象获取共享的数据
获取ServletContext对象
ServletContext context=this.getServletContext();
获取共享数据
String name=context.getAttribute(“name”);
System.out.println(“共享数据的值是:”+name);
应用三:实现Servlet的转发
注意:重定向与转发的区别
1---地址栏的区别:转发地址栏不变
2---处理请求资源的位置不同:sendRedirect()方法可以跨WEB应用程序和服务器重新定位资源来处理请求。forward()方法只能在应用程序内部转发。
3---传值不同: forward()方法能在转发的地址中获取存入的作用域的值。但是,重定向不能。
应用四:利用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);
}
相关文章推荐
- ServletContextListener 的应用
- Javaweb-ServletContext的应用
- ServletContext与Web应用范围
- JavaWeb学习之Servlet(四)----ServletConfig获取配置信息、ServletContext的应用
- 学习笔记4_ServletContext(重要整个Web应用的动态资源之间共享数据)
- ServletContext的应用场合
- Java_常瑞鹏 java_ServletContext 应用源码
- ServletContext应用(No.33)
- ServletConfig对象,ServletContext对象应用
- ServletContext与Web应用以及Spring容器启动
- Web应用共享数据区ServletContext接口
- Servlet之ServletContext读取web应用中的资源文件
- ServletContext与Web应用以及Spring容器启动
- java_ServletContext 应用源码
- ServletContext读取Web应用下的文件资源
- 笔记之servlet的ServletContext对象(ServletContext的应用)
- 通过ServletContext获取应用级配置参数
- java_ServletContext 应用源码
- ServletContext应用
- ServletContextListener的应用