欢迎光临
我们一直在努力

JAVA:Filter编码器-JSP教程,Java技巧及代码

建站超值云服务器,限时71元/月

〔characterencodinghttpservletrequestwrapper.java〕

package creator.common.filter;

import javax.servlet.http.*;

public class characterencodinghttpservletrequestwrapper extends httpservletrequestwrapper {

private string ecoding = null;

private string oldencoding = null;

public characterencodinghttpservletrequestwrapper(httpservletrequest request,string encoding) {

super(request);

this.ecoding = encoding;

this.oldencoding = request.getcharacterencoding();

}

public string getparameter(string value) {

try{

if((oldencoding == null || isios88591(oldencoding)) && super.getparameter(value)!=null){

return new string(super.getparameter(value).getbytes("iso-8859-1"),ecoding);

}

else{

return super.getparameter(value);

}

}

catch(exception e){

e.printstacktrace();

return null;

}

}

private boolean isios88591(string endcoding){

endcoding = endcoding.tolowercase();

return endcoding.startswith("iso")&& (endcoding.indexof("8859") != -1) && endcoding.endswith("1");

}

}

〔characterencodinghttpservletresponsewrapper.java〕

package creator.common.filter;

import javax.servlet.http.*;

public class characterencodinghttpservletresponsewrapper extends httpservletresponsewrapper {

private string ecoding = null;

public characterencodinghttpservletresponsewrapper(httpservletresponse response,string encoding) {

super(response);

this.ecoding = encoding;

}

/* (non-javadoc)

* @see javax.servlet.servletresponse#setcontenttype(java.lang.string)

*/

public void setcontenttype(string value) {

super.setcontenttype("text/html;charset="+ecoding);

}

}

〔charsetencodingfilter.java〕

package creator.common.filter;

import java.io.ioexception;

import javax.servlet.*;

import javax.servlet.http.*;

public class charsetencodingfilter implements filter {

private filterconfig config = null;

private string requestencoding = null;

private string responseencoding = null;

public void init(filterconfig arg0) throws servletexception {

this.config = arg0;

this.requestencoding = config.getinitparameter("requestencoding");

this.responseencoding = config.getinitparameter("responseencoding");

}

/* (non-javadoc)

* @see javax.servlet.filter#dofilter(javax.servlet.servletrequest, javax.servlet.servletresponse, javax.servlet.filterchain)

*/

public void dofilter(servletrequest req, servletresponse res, filterchain fc)

throws ioexception, servletexception {

if(this.config == null){

return;

}

httpservletrequest request = (httpservletrequest)req;

httpservletresponse response = (httpservletresponse)res;

characterencodinghttpservletrequestwrapper mrequestw = new characterencodinghttpservletrequestwrapper(request,responseencoding);

characterencodinghttpservletresponsewrapper wresponsew = new characterencodinghttpservletresponsewrapper(response,responseencoding);

fc.dofilter(mrequestw,wresponsew);

}

public void destroy() {

}

}

〔web.xml〕

<filter>

<filter-name>charsetencoding</filter-name>

<filter-class>javabean.com.charsetencodingfilter</filter-class>

<init-param>

<param-name>requestencoding</param-name>

<param-value>iso-8859-1</param-value>

</init-param>

<init-param>

<param-name>responseencoding</param-name>

<param-value>gb2312</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>charsetencoding</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » JAVA:Filter编码器-JSP教程,Java技巧及代码
分享到: 更多 (0)

相关推荐

  • 暂无文章