Filter实现浏览器是否缓存页面信息,和控制编码
2013-12-30 17:13
573 查看
后台配置文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>jqueryeasyui</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <!-- 设置浏览器缓存 --> <filter> <filter-name>ResponseHeaderFilter</filter-name> <filter-class>tk.Martin.filterDemo.filter.ResponseHeaderFilter</filter-class> <init-param> <param-name>Cache-Control</param-name> <param-value>max-age=1000</param-value> </init-param> </filter> <filter-mapping> <filter-name>ResponseHeaderFilter</filter-name> <url-pattern>*.css</url-pattern> </filter-mapping> <!-- 设置浏览器不缓存 --> <!-- <filter> <filter-name>ResponseHeaderFilter</filter-name> <filter-class>tk.Martin.filterDemo.filter.ResponseHeaderFilter</filter-class> <init-param> <param-name>Cache-Control</param-name> <param-value>private,no-cache,no-store,must-revalidate</param-value> </init-param> </filter> <filter-mapping> <filter-name>ResponseHeaderFilter</filter-name> <url-pattern>*.js</url-pattern> </filter-mapping> <filter-mapping> <filter-name>ResponseHeaderFilter</filter-name> <url-pattern>*.css</url-pattern> </filter-mapping> <filter-mapping> <filter-name>ResponseHeaderFilter</filter-name> <url-pattern>*.jpg</url-pattern> </filter-mapping> --> <servlet> <servlet-name>UserServlet</servlet-name> <servlet-class>tk.Martin.filterDemo.servlet.UserServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UserServlet</servlet-name> <url-pattern>/userOper.do</url-pattern> </servlet-mapping> </web-app>
这是控制是否浏览器缓存的代码
package tk.Martin.filterDemo.filter;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ResponseHeaderFilter implements Filter {
FilterConfig filterConfig;
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest request=(HttpServletRequest) req;
HttpServletResponse response=(HttpServletResponse) res;
for(Enumeration e=filterConfig.getInitParameterNames();e.hasMoreElements();){
String headerName=(String) e.nextElement();
System.out.println("========================="+headerName+"===================================");
response.addHeader(headerName, filterConfig.getInitParameter(headerName));
}
chain.doFilter(request, response);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
this.filterConfig=filterConfig;
}
}
这是控制上传的编码的Filter过滤类
package tk.Martin.filterDemo.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class CharacterEncodingFilter implements Filter {
private String characterEncoding;
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
request.setCharacterEncoding(characterEncoding);
chain.doFilter(request, response);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
this.characterEncoding = filterConfig.getInitParameter("encoding");
System.out.println("页面编码方式===============" + this.characterEncoding
+ "=================================");
}
}
这是前台的jsp的代码 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@include file="/common/tag.jsp"%> <%@include file="/common/jquery.jsp"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <form action="${pageContext.request.contextPath}/userOper.do" method="post"> <table> <tr> <td>用户名:</td> <td><input name="name" type="text"></td> </tr> <tr> <td colspan="2"><input type="submit" value="提交"></td> </tr> </table> </form> <img alt="" src="${pageContext.request.contextPath}/1.jpg"> </body> </html>
相关文章推荐
- Filter实现浏览器是否缓存页面信息,和控制编码
- Filter实现浏览器是否缓存页面信息,和控制编码
- java web filter实现浏览器不缓存页面
- java web filter实现浏览器不缓存页面
- jsp实用两例:用filter解决汉字编码及禁止页面缓存 和 用listener实现在线人数统计
- 如何让php对页面的缓存进行控制 php处理请求的浏览器缓存处理
- 使用Filter防止浏览器缓存页面或请求结果
- PHP实现每隔1秒(一秒)输出一条信息:禁用PHP缓存和web服务器(兼容Nginx、Apache)缓存、浏览器缓存
- 浏览器缓存实现原理(控制缓存)
- 3Filter应用2禁止浏览器缓存所有动态页面的过滤器
- jsp实用两例:用filter解决汉字编码及禁止页面缓存 和 用listener实现在线人数统计
- 用filter解决汉字编码及禁止页面缓存 和 用listener实现在线人数统计
- Filter(四)常见应用3---控制浏览器缓存一些静态资源
- 【JSP开发】response的页面定时跳转和控制浏览器缓存
- 用filter解决汉字编码及禁止页面缓存 和 用listener实现在线人数统计
- [原创]java WEB学习笔记45:自定义HttpFilter类,理解多个Filter 代码的执行顺序,Filterdemo:禁用浏览器缓存的Filter,字符编码的Filter,检查用户是否登陆过的Filter
- ajax实现异步请求,不跳转页面的情况下,达到检验用户名等信息是否效果的功能!
- 十分钟内学会:控制浏览器是否缓存网页状态
- JSP页面缓存cache技术--浏览器缓存介绍及实现方法
- MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化