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
相关文档:
项目要求将后台数据进行显示(显示要求部分内容进行列项合并),在对显示的数据进行导出成excel
实现过程
1、查询和导出的jsp页面 关键代码
<script language=javascript>
function exportExcel(){
/****实现方法一
<%-- var curTbl = document.getElementById("techQueryTab"); --%>
<%-- ......
第1个上传组件commons-fileupload
=============commons-fileupload ================
common-fileupload组件是apache的一个开源项目之一,可以从http://jakarta.apache.org/commons/fileupload/下载。该组件简单易用,可实现一次上传一个或多个文件,并可限制文件大小。
-下载后解压zip包,将commons-fileupload-1.1. ......
步骤一:编辑Tomcat的配置文件conf/server.xml在用于接受客户端语法的Connector<connector></connector>标签中添加URIEncoding="UTF-8"属性,该属性用来解决GET中的编码问题。
xml 代码
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" / ......
pageEncoding是jsp文件本身的编码
contentType的charset是指服务器发送给客户端时的内容编码
JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页, 用的是contentType。
第一阶段是jsp编译成.java,它会根据pageEncoding的设定读取jsp,结果是 ......
1.request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
序号 方 法 说 明
1 object getAttribute(String name) 返回指定属性的属性值
2 Enumeration getAttributeNames() 返回所有可用属性名的枚举
3 String getCharacterEncoding( ......