web入门(6)—Servlet开发(二)

往期精选

  ●  架构师高并发高性能分布式教程(3000G)

  ●  39阶段精品云计算大数据实战视频教程

  ●  互联网技术干货视频教程大全【菜单为准】

  ●  2017年8月最新Intellij IDEA全套视频教程

  ●  程序员如何制作高质量的简历【视频+简历】

  ●  两套大型电商实战项目 

  ●  200本经典编程相关书籍下载

      更多精彩查看历史记录.........

一、ServletConfig讲解

1.1、配置Servlet初始化参数

  在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。

例如:

1 <servlet> 
2     <servlet-name>ServletConfigDemo1</servlet-name> 
3     <servlet-class>gacl.servlet.study.ServletConfigDemo1</servlet-class> 
4     <!--配置ServletConfigDemo1的初始化参数 --> 
5     <init-param> 
6         <param-name>name</param-name> 
7         <param-value>gacl</param-value> 
8     </init-param> 
9      <init-param>
10         <param-name>password</param-name>
11         <param-value>123</param-value>
12     </init-param>
13     <init-param>
14         <param-name>charset</param-name>
15         <param-value>UTF-8</param-value>
16     </init-param>17 </servlet>

1.2、通过ServletConfig获取Servlet的初始化参数

  当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,我们通过ServletConfig对象就可以得到当前servlet的初始化参数信息。

例如:

运行结果如下:

二、ServletContext对象

  WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。
  ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。
  由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。

三、ServletContext的应用

  3.1、多个Servlet通过ServletContext对象实现数据共享

  范例:ServletContextDemo1和ServletContextDemo2通过ServletContext对象实现数据共享

先运行ServletContextDemo1,将数据data存储到ServletContext对象中,然后运行ServletContextDemo2就可以从ServletContext对象中取出数据了,这样就实现了数据共享,如下图所示:

3.2、获取WEB应用的初始化参数

在web.xml文件中使用<context-param>标签配置WEB应用的初始化参数,如下所示:

1 <?xml version="1.0" encoding="UTF-8"?> 
2 <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
3     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
4     <display-name></display-name> 
5     <!-- 配置WEB应用的初始化参数 --> 
6     <context-param> 
7         <param-name>url</param-name> 
8         <param-value>jdbc:mysql://localhost:3306/test</param-value> 
9     </context-param>
10 
11     <welcome-file-list>
12         <welcome-file>index.jsp</welcome-file>
13     </welcome-file-list>
14 </web-app>

获取Web应用的初始化参数,代码如下:

运行结果: 

3.3、用servletContext实现请求转发

ServletContextDemo4

ServletContextDemo5

运行结果:

  访问的是ServletContextDemo4,浏览器显示的却是ServletContextDemo5的内容,这就是使用ServletContext实现了请求转发

  3.4、利用ServletContext对象读取资源文件

  项目目录结构如下:

   

代码范例:使用servletContext读取资源文件

运行结果如下:

代码范例:使用类装载器读取资源文件

运行结果如下:

四、在客户端缓存Servlet的输出

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

java开发者交流群【点击加入】QQ已满,升级中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值