# homeWork2 ###### tags: `Servlet` java ``` import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class HomeWork2 */ @WebServlet("/HomeWork2") public class HomeWork2 extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public HomeWork2() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub request.setCharacterEncoding("UTF-8"); response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); // String user = request.getParameter("user"); // String password = request.getParameter("password"); out.println("<!DOCTYPE HTML>"); out.println("<html>"); out.println("<body>"); out.println(bodyContent(request.getReader())); out.println("</body></html>"); } private String bodyContent(BufferedReader reader) throws IOException{ String input = null; StringBuilder requestBody = new StringBuilder(); while ((input = reader.readLine())!=null) { requestBody.append(input) .append("\n"); } return requestBody.toString(); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } } ``` html ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Home Work 2</title> </head> <body> <FORM ACTION="./HomeWork2" method="post"> 使用者帳號:<INPUT TYPE="TEXT" NAME="user"><BR> 使用者密碼:<INPUT TYPE="password" NAME="password"><BR> <CENTER> <INPUT TYPE="SUBMIT"> </CENTER> </FORM> </body> </html> ``` 解法(去解碼) ``` private String bodyContent(BufferedReader reader) throws IOException{ String input = null; StringBuilder requestBody = new StringBuilder(); while ((input = reader.readLine())!=null) { requestBody.append(input) .append("\n"); } String text = java.net.URLDecoder.decode(requestBody.toString(), "UTF-8"); //解碼 return text; } ``` ``` import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebInitParam; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class HomeWork22 */ @WebServlet(urlPatterns = {"/HomeWork22"}, initParams = { // @WebInitParam(name = "name", value = "David"), // @WebInitParam(name = "password", value = "a123456") }) public class HomeWork22 extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public HomeWork22() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); String name = request.getParameter("name"); String password= request.getParameter("password"); String user=getServletConfig().getInitParameter("name"); String pswd=getServletConfig().getInitParameter("password"); // PrintWriter writer = response.getWriter(); if (name.equals(user)&&password.equals(pswd)) { out.println(name+"Hi !"); }else { out.println("Error !!! "); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ``` xml ``` <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>mywebdemo1</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>Homework22</servlet-name> <servlet-class>Homework22</servlet-class> <init-param> <param-name>name</param-name> <param-value>David</param-value> </init-param> <init-param> <param-name>password</param-name> <param-value>a123456</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>Homework22</servlet-name> <url-pattern>/Homework22</url-pattern> </servlet-mapping> <context-param> <param-name>ERROR</param-name> <param-value>ERROR!!! 再輸入一次!</param-value> </context-param> </web-app> ``` html ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Home Work 22</title> </head> <body> <FORM ACTION="./HomeWork22" method="post"> 使用者帳號:<INPUT TYPE="TEXT" NAME="name" id="name"><BR> 使用者密碼:<INPUT TYPE="password" NAME="password" id="password"><BR> <CENTER> <INPUT TYPE="SUBMIT"> </CENTER> </FORM> </body> </html> ```