Make JSP servers that do not support Chinese URL support Chinese URL (such as Tomcat)

xiaoxiao2021-03-06  38

Filter file: package filter; import java.io. *; Import javax.servlet. *; Import javax.servlet.http. *; Import java.net. *;

PUBLIC CLASS CHARACTERENCODING ??? IMPLEMENTS FILTER {? protected filterconfig filter inconfig = null ;? private string encoding = null;

Public void destroy () {??? filterconfig = null; ??? encoding = null ;?}

? Public void doFilter (ServletRequest request, ServletResponse response, ?????????????????????? FilterChain chain) throws IOException, ServletException {??? HttpServletRequest req = (HttpServletRequest) Request; ??? String s = Req.getRequesturi (); ??? string url = urldecoder.decode (s, "utf-8"); // When IE INTERTNET Options -> Advanced Options -> Always UTF -8 Send URL is selected. ??? INT k = url.indexof ("?"); ??? String file = (k == - 1? URL: url.substring (0, k)); ??? file f = new file (FilterConfig . GetServletContext (). getRealPath (file)); ??? f (false) {????? url = new string (S.GetBytes ("ISO-8859-1"), Encoding ); // When transmitting URLs in UTF-8 is not selected ????? URL = urldecoder.decode (url, eNCoding); ???} ??? filterconfig.getServletContext (). GetRequestDispatcher (URL) .forward ( REQ, ??????? response);?}

PUBLIC VOID INIT (FilterConfig FilterConfig) THROWS servletexception {??? this.filterconfig = filterconfig; ??? encoding = filterconfig.getinitParameter ("encoding") ;?}

}

The above is used for JDK1.4. If you use JDK1.3, add the following method in the above code and change urlencoder.decode (...) to decode (...):

? Public static String decode (String s, String enc) throws ????? UnsupportedEncodingException {??? boolean needToChange = false; ??? StringBuffer sb = new StringBuffer (); ??? int numChars = s.length () ; ??? I = 0; ??? IF (enc.Length () == 0) {????? throw new unsupportedEncodingexception (????????? "URLDECoder: Empty String Enc Parameter" ); ???} ??? While (i

??????????? sb.append (new string (Bytes, 0, POS, ENC)); ??????????} ?????????? Catch (NumberFormATexception e) {??????????? throw new IllegalargumentException (??????????????? "URLDECoder: ILLEGAL HEX Characters in escape (%) Pattern -" ??? ???????????? E.GetMessage ()); ????????? NEEDTOCHANGE = true; ??????? ?? Break; ??????? default: ????????? sb.append (c); ?????????i i ; ????????? Break ; ?????} ???} ??? Return (Needtochange? sb.tostring (): s);?} additional, also add to Web.xml file

???

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

Characterencoding

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

Filter.Characterencoding

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

?????

ENCODING

?????

GBK

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

?

?

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

Characterencoding

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

/ *

?

?

转载请注明原文地址:https://www.9cbs.com/read-118386.html

New Post(0)