Mega Code Archive

 
Categories / Java Tutorial / Servlet
 

Servlet Unicode Escape String

import java.io.*; import java.text.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class MyServlet extends HttpServlet {   public void doGet(HttpServletRequest req, HttpServletResponse res)                                throws ServletException, IOException {     try {       res.setContentType("text/plain; charset=UTF-8");       PrintWriter out = res.getWriter();       String charset = req.getParameter("charset");       String text = req.getParameter("text");       BufferedReader reader = new BufferedReader(         new InputStreamReader(new StringBufferInputStream(text), charset));       text = reader.readLine();       out.println("Received charset: " + charset);       out.println("Received text: " + text);       out.println("Received text (escaped): " + toUnicodeEscapeString(text));     }     catch (Exception e) {       e.printStackTrace();     }   }   public void doPost(HttpServletRequest req, HttpServletResponse res)                                 throws ServletException, IOException {     doGet(req, res);   }   private static String toUnicodeEscapeString(String str) {     // Modeled after the code in java.util.Properties.save()     StringBuffer buf = new StringBuffer();     int len = str.length();     char ch;     for (int i = 0; i < len; i++) {       ch = str.charAt(i);       switch (ch) {         case '\\': buf.append("\\\\"); break;         case '\t': buf.append("\\t"); break;         case '\n': buf.append("\\n"); break;         case '\r': buf.append("\\r"); break;              default:           if (ch >= ' ' && ch <= 127) {             buf.append(ch);           }           else {             buf.append('\\');             buf.append('u');             buf.append(toHex((ch >> 12) & 0xF));             buf.append(toHex((ch >>  8) & 0xF));             buf.append(toHex((ch >>  4) & 0xF));             buf.append(toHex((ch >>  0) & 0xF));           }       }     }     return buf.toString();   }   private static char toHex(int nibble) {     return hexDigit[(nibble & 0xF)];   }   private static char[] hexDigit = {     '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'   }; } <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app>     <servlet><servlet-name>MyServletName</servlet-name>              <servlet-class>MyServlet</servlet-class>     </servlet>          <servlet-mapping><servlet-name>MyServletName</servlet-name>         <url-pattern>*.htm</url-pattern>     </servlet-mapping>   <context-param>     <param-name>javax.servlet.jsp.jstl.fmt.timeZone</param-name>     <param-value>US/Central</param-value>   </context-param>   <context-param>     <param-name>database-driver</param-name>     <param-value>org.gjt.mm.mysql.Driver</param-value>   </context-param>   <context-param>     <param-name>database-url</param-name>     <param-value>     jdbc:mysql://localhost/forum?user=forumuser</param-value>   </context-param>   <taglib>     <taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>     <taglib-location>/WEB-INF/fmt.tld</taglib-location>   </taglib>   <taglib>     <taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>     <taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>   </taglib>   <taglib>     <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>     <taglib-location>/WEB-INF/c.tld</taglib-location>   </taglib>   <taglib>     <taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>     <taglib-location>/WEB-INF/c-rt.tld</taglib-location>   </taglib>   <taglib>     <taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>     <taglib-location>/WEB-INF/sql.tld</taglib-location>   </taglib>   <taglib>     <taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>     <taglib-location>/WEB-INF/sql-rt.tld</taglib-location>   </taglib>   <taglib>     <taglib-uri>http://java.sun.com/jstl/x</taglib-uri>     <taglib-location>/WEB-INF/x.tld</taglib-location>   </taglib>   <taglib>     <taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>     <taglib-location>/WEB-INF/x-rt.tld</taglib-location>   </taglib>   <taglib>     <taglib-uri>     http://java.jeffheaton.com/taglib/jstl/forum</taglib-uri>     <taglib-location>/WEB-INF/forum.tld</taglib-location>   </taglib>   <taglib>     <taglib-uri>/tlt</taglib-uri>     <taglib-location>/WEB-INF/taglib.tld</taglib-location>   </taglib> </web-app>