servlet之ServletContext
2016-02-29 12:53
253 查看
产生:Web容器在启动时候,每个Web应用都创建一个ServletContext对象,代表了整个Web应用
获得:ServletConfig对象中维护了ServletContext对象,而我们要想在各个servlet中进行数据传输,就用到servletContext对象,而各个servlet中可以获得Servletconfig对象,在利用Servletconfig.getServletContext()获得当前整个web应用的Servletcontext对象了。也可以在servlet类中,直接使用this.getgetServletContext()获得Servletcontext对象(在父类中完成了)
常用函数:
getAttribute(String name) ;setAttribute(String name,
Object object)
getInitParameter(String name) 获得这个Web应用的配置信息参数
getRealPath(String path) ;获得资料的在计算机上的真实路径
getRequestDispatcher(String path) 资源转发
getResourceAsStream(String path) ; getResource(String path)
资源读取
应用(各个servlet对象数据共享):
1.获得整个web应用的初始化参数:在web.xml中用<context-param>标签来配置整个web应用的配置信息
this.getServletContext().getInitParamter();
2.实现Servlet的转发:requestDispatcher rd = this.getServletContext().getrequestDispatcher("/1.jsp");
rd.forward(requset,response);
3.读取资源文件(两种资源文件xml文件和properties文件):
InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
Properties props = new Properties();
props.load(in);
String value = props.getProperty(string s);
或者
String path = this.getServletContext().getRealPath("/WEB-INF/classes/db.properties"); 返回资源的绝对路径
FileInputStream in = new FileInputStream(path);
Properties props = new Properties();
props.load(in);
String value = props.getProperty(String s);
注意几点:1.ServletContext是整个web应用的对象,代表了整个Web应用,所以它的域范围很大,可以在整个Web应用下的各个Servlet中进行数据传输,而ServletConfig是单个Servlet对象所有,所以用所差别。
2.转发与重定向:转发:你找我借钱,我没有,我帮你向王五借;重定向:你找我借钱,我没有,我要你自己去向王五借。转发用的特别多(把处理的数据转发给JSP,用于数据输出)
3.读取properties文件的模板代码上面就是。
4.如果读入资源文件的程序不是Servlet程序的话,就是一般JAVA程序怎么读入服务器中的资源文件,就要使用类装载器读取文件。(实际开发中,这种方式是最主要的)也就是通过类装载方式得到资源的位置,再通过传统文件读取方式读取文件信息。常用方式的操作如下:
String path = UerDao.class.getClassLoader().getResource("db.properties").getPath();
FileOutputStream in = new FileOutputStream(path);
Properties props = new Properties();
props.load(in);
String value = props.getProperty(String s);
5.forward和include方法的区别:
forward方法是把请求的内容转发到另外的一个servlet.而include是把另一个servlet处理过后的内容拿过来.
(forward方法调用后在响应中的没有提交的内容被自动消除。将请求转发给其他的Servlet后,由被调用的Servlet负责对请求做出响应,而原先Servlet的执行则终止。include方法使原先的Servlet和转发到的Servlet都可以输出响应信息,即原先的Servlet还可以继续输出响应信息)
获得:ServletConfig对象中维护了ServletContext对象,而我们要想在各个servlet中进行数据传输,就用到servletContext对象,而各个servlet中可以获得Servletconfig对象,在利用Servletconfig.getServletContext()获得当前整个web应用的Servletcontext对象了。也可以在servlet类中,直接使用this.getgetServletContext()获得Servletcontext对象(在父类中完成了)
常用函数:
getAttribute(String name) ;setAttribute(String name,
Object object)
getInitParameter(String name) 获得这个Web应用的配置信息参数
getRealPath(String path) ;获得资料的在计算机上的真实路径
getRequestDispatcher(String path) 资源转发
getResourceAsStream(String path) ; getResource(String path)
资源读取
应用(各个servlet对象数据共享):
1.获得整个web应用的初始化参数:在web.xml中用<context-param>标签来配置整个web应用的配置信息
this.getServletContext().getInitParamter();
2.实现Servlet的转发:requestDispatcher rd = this.getServletContext().getrequestDispatcher("/1.jsp");
rd.forward(requset,response);
3.读取资源文件(两种资源文件xml文件和properties文件):
InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
Properties props = new Properties();
props.load(in);
String value = props.getProperty(string s);
或者
String path = this.getServletContext().getRealPath("/WEB-INF/classes/db.properties"); 返回资源的绝对路径
FileInputStream in = new FileInputStream(path);
Properties props = new Properties();
props.load(in);
String value = props.getProperty(String s);
注意几点:1.ServletContext是整个web应用的对象,代表了整个Web应用,所以它的域范围很大,可以在整个Web应用下的各个Servlet中进行数据传输,而ServletConfig是单个Servlet对象所有,所以用所差别。
2.转发与重定向:转发:你找我借钱,我没有,我帮你向王五借;重定向:你找我借钱,我没有,我要你自己去向王五借。转发用的特别多(把处理的数据转发给JSP,用于数据输出)
3.读取properties文件的模板代码上面就是。
4.如果读入资源文件的程序不是Servlet程序的话,就是一般JAVA程序怎么读入服务器中的资源文件,就要使用类装载器读取文件。(实际开发中,这种方式是最主要的)也就是通过类装载方式得到资源的位置,再通过传统文件读取方式读取文件信息。常用方式的操作如下:
String path = UerDao.class.getClassLoader().getResource("db.properties").getPath();
FileOutputStream in = new FileOutputStream(path);
Properties props = new Properties();
props.load(in);
String value = props.getProperty(String s);
5.forward和include方法的区别:
forward方法是把请求的内容转发到另外的一个servlet.而include是把另一个servlet处理过后的内容拿过来.
(forward方法调用后在响应中的没有提交的内容被自动消除。将请求转发给其他的Servlet后,由被调用的Servlet负责对请求做出响应,而原先Servlet的执行则终止。include方法使原先的Servlet和转发到的Servlet都可以输出响应信息,即原先的Servlet还可以继续输出响应信息)
相关文章推荐
- Java Servlet生成JSON格式数据并用jQuery显示的方法
- jsp和servlet中实现页面跳转的方式实例总结
- java servlet结合mysql搭建java web开发环境
- Servlet与JSP间的两种传值情况
- JSP、Servlet中get请求和post请求的区别总结
- jsp和servlet的区别探讨
- Struts2访问servlet分享
- java中Servlet处理乱码的方法
- ServletContext中常用方法介绍
- Servlet 过滤器详细介绍
- JSP+Servlet+JavaBean实现登录网页实例详解
- servlet中session简介和使用例子
- 在Jsp Servlet中页面重新定向总汇
- JSP使用Servlet作为控制器实现MVC模式实例详解
- JSP使用Servlet过滤器进行身份验证的方法
- Servlet动态网页技术详解
- jsp和servlet操作mysql中文乱码问题的解决办法
- 基于jsp+servlet实现的简单博客系统实例(附源码)
- js调用后台servlet方法实例