javaweb_ServletConfig&ServletContext

来源:互联网 发布:jquery json导出excel 编辑:程序博客网 时间:2024/06/09 23:22
ServletConfig对象
在Servlet配置文件中可以为一个或多个<init-param>标签为Servlet配置一些初始化参数

设定了初始化参数之后服务器会自动将参数封装到ServletConfig对象中,map集合

String value = config.getInitParameter("ConfigServlet");获取初始化参数

ServletContext对象就是代表一整个web应用  
作用:1、通过ServletContext管理web工程下的所有web资源。
  2、多个Servlet可以通过ServletContext进行资源共享
3、获取初始化参数(可以在Context-param里面配置初始化参数,并且用这个方法可以为整个web站点配置初始化参数)
4、实现Servlet转发:这个方法很大用处,以后会使用jsp对网页经行排版之类的操作,这时候要将传入JSP
5、利用ServletContext对象读取资源文件



ServletContext常用方法:
|--setAttribute();将数据存入ServletContext
|
|--getAttribute();将数据取出
|
|--getInitParameter();获取整个web站点的初始化参数|
|
|--getRequestDispatcher();Servlet转发,用这个方法产生对象后调用forWard():(调用这个方法相当|于调用了你要传入的目标Servlet的doget方法,回头|过来还会执行这个方法下面的代码,但是在跳转过程|中forward方法会将request和response中的数据清空|跳转之前的任何写入都无效,在跳转回来后写入也是|无效的。除非在跳转前强制刷新)将请求转发到另|||外一个Servlet中。


一般来说都是用properties或者xml文件来作为资源文件


可以使用getServletContext().Realpath();来获取绝对路径上的properties文件,然后用FileInPutStream来存这个文件在用properties的load方法来加载,之后用getProperty方法来读取(flxday05
ServletContextDemo6)


通过ServletContextDemo7.class.getClassLoader().getResourceAsStream("包名/properties文件名")读取保存在类中的properties文件








也可以用类装载器读取properties:
ClassLoader loader = ServletContextDemo.class.getClassLoader(一个类获取他的字节码文件然后在将它装载到一个类装载器中);
然后loader.getProperty同样可以读取
类装载器读取大文件容易导致虚拟机内存溢出,只能用ServletContext文件来




对于不经常变化的数据,在Servlet中可以为其设置合理的缓存时间值,以避免浏览器频繁向服务器发送请求,提升服务器性能


response.setHeader(
response.setDateHeader("expires",System.CurrentTimeMillis()+24*3600*1000);
在这个时间点之前向这个网站请求访问的都是缓存文件。而不向服务器发请求。但是按了刷新按钮的话就会访问服务器了,这是获得就是最新的数据。
0 0