首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Filter之编码格式(日限期制)

2012-11-11 
Filter之编码格式(日期限制)package com.tools /* * 转码(过期时间限制)?* @author hh?* @2010-09-16?*/

Filter之编码格式(日期限制)

package com.tools;

/* * 转码(过期时间限制)

?* @author hh

?* @2010-09-16

?*/

import java.io.IOException;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.TimeZone;

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;

@SuppressWarnings("serial")

?public class filter implements Filter {

?????? private String CEncoding="";

?????? public void destroy() {

?????? }

?????? @SuppressWarnings("static-access")

??????? public void doFilter(ServletRequest request, ServletResponse response, FilterChain arg2) throws IOException, ServletException {

?????????????Calendar c = Calendar.getInstance();

???????????? HttpServletRequest req = (HttpServletRequest)request;

???????????? HttpServletResponse res = (HttpServletResponse)response;

??????????? ?req.setCharacterEncoding(CEncoding);

???????????? res.setCharacterEncoding(CEncoding);

???????????? String nowDate="2011-03-25";//开始时间

???????????? long flage = betweenTwoDay(nowDate, new SimpleDateFormat("yyyy-MM-dd").format(c.getInstance().getTime()));

??????????? if(flage>=0&&flage<=30){

???????????????? arg2.doFilter(req, res);

??????????? }else{

???????????????? req.getRequestDispatcher("/TimeOut.jsp").forward(req,res);//提示界面

?????????? }

??? ?}

???? private long betweenTwoDay(String first, String second) {

???????????????Date fdate = getStringToDate(first);

????????????? ?Date sdate = getStringToDate(second);

?????????????? long i = ((sdate.getTime() - fdate.getTime()) / (24 * 60 * 60 * 1000));

?????????????? return i;

??? }

???private String format = "";

???private Date getStringToDate(String date) {

????????? Date d = null;

???????? ?try {

??????????????????SimpleDateFormat dateFormat = null;

????????????????? if (date.length() == 10) {

??????????????? ?????? dateFormat = new SimpleDateFormat("yyyy-MM-dd");

???? ??????????????????format = "yyyy-MM-dd";

??????????????? ????? dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+8"));

???????????????? } else if (date.length() == 16) {

???????????????????? ?dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");

????????????????????? format = "yyyy-MM-dd HH:mm";

???????????????????? dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+8"));

???????????????? } else if (date.length() == 19) {

???????????????????? dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

??????????????????? ?format = "yyyy-MM-dd HH:mm:ss";

?????????????????? ?dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+8"));

??????????????? ?}

??????????????? d = dateFormat.parse(date);

??????????? ?} catch (ParseException e) {

????????????????? ?e.printStackTrace();

???????????? }

???????? return d;

??? }

??? public void init(FilterConfig arg0) throws ServletException {

????????? //读取web.xml文件设置编码格式

????????? CEncoding = arg0.getInitParameter("encoding");

??? }

}

热点排行