web±à³ÌµÄÂÒÂëÎÊÌâ
ÔÚeclipseÖÐÎÒ±à¼ÁËÒ»¸ö¶«Î÷£¬ÊÇÒ³ÃæתÒƵģ¬ÓÉAddServlet.java,BookWriter.java,Book.java,hello.jspÔ´´úÂ밴˳ÐòÈçÏÂ
Java codepackage jp.bcat;import java.io.*;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.*;import java.text.SimpleDateFormat;import java.util.Date;/** * Servlet implementation class AddServlet */@WebServlet("/AddServlet")public class AddServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String step = request.getParameter("step"); if ("prepare".equals(step)) prepare(request, response); } void prepare(HttpServletRequest request, HttpServletResponse response) throws IOException { String errorMessage = ""; Book book = new Book(); String title = request.getParameter("title"); book.setTitle(title); if (title == null || title.length() == 0) errorMessage += "<P>¥¿¥¤¥È¥ë¤òÈëÁ¦¤·¤Æ¤¯¤À¤µ¤¤¡£</P>"; response.setContentType("text/html; charset=Shift_JIS"); PrintWriter out = response.getWriter(); out.println("<HTML><HEAD><TITLE>‡í•øµÇåh´_ÕJ</TITLE></HEAD>"); if (errorMessage.length() == 0) { out.println("<BODY>"); out.println("<PRE>"); new BookWriter(out, "+ ").write(book); out.println("</PRE>"); out.println("</BODY>"); } out.println("</HTML>"); }}
package jp.bcat;import java.io.PrintWriter;public class BookWriter { protected PrintWriter out; protected String indent; public BookWriter(PrintWriter out, String indent) { this.out = out; this.indent = indent; } public void write(Book book) { out.println(indent + "¥¿¥¤¥È¥ë: " + book.getTitle()); }}
package jp.bcat;import java.io.Serializable;public class Book implements Serializable { protected String title; public String getTitle() { return title; } public void setTitle(String value) { title = value; }}
<%@ page language="java" contentType="text/html; charset=Shift_JIS" pageEncoding="windows-31j"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Insert title here</title></head><body> <FORM action="AddServlet" method="POST"> <TABLE> <TR><TD>¥¿¥¤¥È¥ë: </TD><TD><INPUT name="title"></TD></TR> <TR><TD><INPUT type="submit" value="µÇåh"></TD></TR> <INPUT type="hidden" name="step" value="prepare"> </TABLE> </FORM></body></html>
ÎÒ¹À¼ÆÎÒºÃÏñÊÇFilterµÄÉèÖúÃÏñ²»¶Ô£¬ÎÒµÄFilterµÄ´úÂëÈçÏ£¬ÈçºÎÔÚ³ÌÐòÖÐʹÓÃÕâ¸ö¹ýÂËÆ÷ÄØ£¿Çë¸ßÊÖÃÇ°ïÖú£¬Ð»Ð»´ó¼ÒÁË¡£
Java codepackage jp.bcat.util;import java.io.IOException;import javax.servlet.*;public class RequestEncodingFilter implements Filter { private String encoding; public void init(FilterConfig config) throws ServletException { encoding = config.getInitParameter("encoding"); } public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { if (encoding != null) req.setCharacterEncoding(encoding); chain.doFilter(req, res); } public void destroy() { }}
request.setCharacterEncoding("UTF-8");
[½â¾ö°ì·¨]
<%@ page language="java" contentType="text/html; charset=Shift_JIS"
pageEncoding="windows-31j"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
ÄãÔÚÕâ¸öÒ³ÃæһϾÍдÁË3ÖÖ±àÂ루Shift_JIS¡¢windows-31j¡¢utf-8£©£¬»»³ÉͳһµÄÒ»ÖÖ£¬ÔÙÔÚFilterÖÐÉèÖÃʱҲÉèÖÃͬһÖÖ±àÂ뷽ʽÄØ
[½â¾ö°ì·¨]
ͳһ¶¼»»³Éyutf-8ÊÔÊÔ
[½â¾ö°ì·¨]
²»ÖªµÀÄãµÄfilterÊÇÔõôÅäÖã¬ÎÒ°ÑÎÒµÄÌù³öÀ´ÈÃÄã²Î¿¼£¡
<filter> <filter-name>Set Character Encoding</filter-name> <filter-class> com.hxk.common.servlet.EncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>