Ê×Ò³ Ê«´Ê ×Öµä °å±¨ ¾ä×Ó ÃûÑÔ ÓÑ´ð ÀøÖ¾ ѧУ ÍøÕ¾µØÍ¼
µ±Ç°Î»ÖÃ: Ê×Ò³ > ½Ì³ÌƵµÀ > JAVA > J2SE¿ª·¢ >

web±à³ÌµÄÂÒÂëÓйØÎÊÌâ

2011-11-20 
web±à³ÌµÄÂÒÂëÎÊÌâ[codeHTML][/code]ÎÒÖØÐ±༭ÁËÒ»¸ö¶«Î÷£¬ÊÇÒ³Ãæ×ªÒÆµÄ£¬ÓÉAddServlet.java,BookWriter.j

web±à³ÌµÄÂÒÂëÎÊÌâ
[code=HTML][/code]ÎÒÖØÐ±༭ÁËÒ»¸ö¶«Î÷£¬ÊÇÒ³Ãæ×ªÒÆµÄ£¬ÓÉAddServlet.java,BookWriter.java,Book.java,hello.jspÔ´´úÂ밴˳ÐòÈçÏÂ

Java code
package 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=utf-8");        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>");    }}

Java code
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());    }}


Java code
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;    }}


HTML code
<%@ page language="java" contentType="text/html; charset=utf-8"    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 code
package 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() {    }}


[½â¾ö°ì·¨]
jspÒ³ÃæµÄcharsetµÄÖµ¸Ä³Égbk¾ÍÐÐÁË
[½â¾ö°ì·¨]
AddServlet ¼Ó¸öÖÐÎÄת»»

package 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");
if(title.trim!=null){
String temTitle = new String(title .getBytes("ISO-8859-1"),"GB2312");
book.setTitle(temTitle);
}else{
book.setTitle("");
}
if (title == null || title.length() == 0)
errorMessage += "<P>¥¿¥¤¥È¥ë¤òÈëÁ¦¤·¤Æ¤¯¤À¤µ¤¤¡£</P>";


response.setContentType("text/html; charset=utf-8");
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>");
}
}



new String(iso.getBytes("ISO-8859-1"),"GB2312");

[½â¾ö°ì·¨]

encoding = config.getInitParameter("encoding");

web.xmlÀïÃæÊÇÔõôÅäÖõÄÕâ¸ö²ÎÊý£¿


[½â¾ö°ì·¨]
<init-param>
<param-name>encoding</param-name>
<param-value>Shift_JIS</param-value>
</init-param>
Shift_JIS¸ÄΪutf-8ÊÔÊÔ

ÈȵãÅÅÐÐ
Bad Request.