JSP 容器的初始化和销毁 ServletContext(转)
ServletContext 被 Servlet 程序用来与 Web 容器通信。例如写日志,转发请求。每一个 Web
应用程序含有一个Context,被Web应用内的各个程序共享。因为Context可以用来保存资源并且共享,所以我所知道的
ServletContext 的最大应用是Web缓存----把不经常更改的内容读入内存,所以服务器响应请求的时候就不需要进行慢速的磁盘I/O了。
ServletContextListener 是 ServletContext 的监听者,如果 ServletContext
发生变化,如服务器启动时 ServletContext 被创建,服务器关闭时 ServletContext 将要被销毁。
在JSP
文件中,application 是 ServletContext 的实例,由JSP容器默认创建。Servlet 中调用
getServletContext()方法得到 ServletContext 的实例。
我们使用缓存的思路大概是:
服
务器启动时,ServletContextListener 的
contextInitialized()方法被调用,所以在里面创建好缓存。可以从文件中或者从数据库中读取取缓存内容生成类,用
ervletContext.setAttribute()方法将缓存类保存在 ServletContext 的实例中。
程
序使用 ServletContext.getAttribute()读取缓存。如果是 JSP,使用a
pplication.getAttribute()。如果是 Servlet,使用
getServletContext().getAttribute()。如果缓存发生变化(如访问计数),你可以同时更改缓存和文件/数据库。或者你等
变化积累到一定程序再保存,也可以在下一步保存。
服务器将要关闭
时,ServletContextListener 的
contextDestroyed()方法被调用,所以在里面保存缓存的更改。将更改后的缓存保存回文件或者数据库,更新原来的内容。
1
import
User;
//
my own class
2
import
DatabaseManager;
//
my own class
3
import
javax.servlet.ServletContext;
4
import
javax.servlet.ServletContextListener;
5
6
public
class
MyContextListener
7
8
implements
ServletContextListener {
9
private
ServletContext context
=
null
;
10
11
public
void
contextIniti
相关文档:
第1个上传组件commons-fileupload
=============commons-fileupload ================
common-fileupload组件是apache的一个开源项目之一,可以从http://jakarta.apache.org/commons/fileupload/下载。该组件简单易用,可实现一次上传一个或多个文件,并可限制文件大小。
-下载后解压zip包,将commons-fileupload-1.1. ......
今天在如下代码中:
********************************************************
<p><font color="blue">操作步骤:1、选择输出可选项 2、查询 3、输出
<br>
************************************************** ......
首先你要有tomcat,还要有oracle jdbc的jar档等环境.
第一步: 写JSP
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@(des ......
1.request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
序号 方 法 说 明
1 object getAttribute(String name) 返回指定属性的属性值
2 Enumeration getAttributeNames() 返回所有可用属性名的枚举
3 String getCharacterEncoding( ......
在JSP中的如果使用 "相对路径" 则有可能会出现问题.
因为 网页中的 "相对路径" , 他是相对于 "URL请求的地址" 去寻找资源.
上面这句话是什么意思呢 ?
举个例子:
假如我们有一个项目: MyApp
在该项目下, 有一个jsp文件夹
该文件夹下包括:
login.jsp // ......