转载

浅谈user cache Servlet

Servlet和JSP的一个重大的区别即是Servlet可以通过web.xml文件的配置让Servlet在Web容器启动时就自动启动Servlet。可以利用Servlet的这个特性不变化的数据事先加载到Web应用服务器中以便缓存使用。

假设,我们系统的用户在系统部署前就已经创建好,以后不常发生变化,那么我们可以在Web应用程序启动时就将其下载缓存到Web应用服务器内存中,如果用户发生变化可以手工调用这个Servlet进行刷新。下面我们就通过Servlet向导创建这个user cache Servlet,它在Web容器启动时自动下载并缓存系统所有用户Id和用户名:

1.启动创建Servlet向导,填写Servlet名字

2.选择Servlet所要实现的方法

我们在前面已经介绍了Servlet通过不同的doXxx()方法的响应 HTTP请求方式,你可以在向导的第2步选择需要定义哪些doXxx()方法。默认情况下doGet()方法被勾选,即通过HTTP GET请求方式访问Servlet。通过带参的URL访问Servlet时,Servlet就用doGet()方法响应这个请求。由于我们只是假设用户数据不常变动,并不是说永远不变动,所以我们在Web容器初始化时,希望通过user cache Servlet自动加载用户数据到缓存中,当数据库表T_USER的用户数据发生变动时,我们可以手工调用user cache Servlet,让其刷新缓存中的用户数据。

Web容器启动时自动初始化user cache Servlet,此时init()方法被调用,我们可以通过init()方法加载用户数据,当用户通过URL请求刷新用户数据时,user cache Servlet通过doGet()方法响应这个HTTP GET请求。也就是说,我们需要实现doGet()方法,所以我们接受向导的默认设置

3.指定访问Servlet的路径
◆Name:user cache Servlet,Servlet在web.xml配置文件中所取的名字
◆URL pattern:/user cache Servlet,访问这个Servlet的匹配路径。指定这个访问路径后,假设Web应用程序部署在http://localhost:8080/webModule下,则通过http://localhost:8080/webModule/user cache Servlet访问Servlet。

直接按Finish创建Servlet。

打开web.xml文件,你可以找到关于user cache Servlet声明和访问的部署描述信息:
◆<Servlet>节点:描述Servlet的名字及类名。
◆<Servlet-mapping>节点:描述Servlet访问匹配路径。

双击工程窗格资源树的webModule节点,JBuilder在内容窗格中打开用于编辑web.xml文件的Web模块DD编辑器(Web Module DD editor),此时结构窗格显示出web.xml文件的结构

在init()初始化方法中利用User List.fill User()方法从数据库中下载并缓存用户记录信息,在doGet()方法中也引用了User List.fill User(),用户通过URL访问user cache Servlet时,doGet()方法被调用,刷新缓存用户数据,并显示"刷新成功"提示,其代码如下所示:

  1. <web-app>  
  2. …  
  3. <servlet>  
  4. <servlet-name>usercacheservlet</servlet-name>  
  5. <servlet-class>bookstore.servlet.UserCacheServlet</servlet-class>  
  6. <load-on-startup>2</load-on-startup>  
  7. </servlet>  
  8. <servlet-mapping>  
  9. <servlet-name>usercacheservlet</servlet-name>  
  10. <url-pattern>/usercacheservlet</url-pattern>  
  11. </servlet-mapping>  
  12. …  
  13. </web-app> 

正文到此结束
Loading...