package com.java.servlet.test; import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(name="FormatServlet", urlPatterns= {"/form"}) public class FormatServlet extends HttpServlet{ private static final long serialVersionUID = 54L; private static final String TITLE = "Order Form"; @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter writer = response.getWriter(); writer.println("<html>"); writer.println("<head><title>"+TITLE+"</title></head>"); writer.println("<body><h1>"+TITLE+"</h1>"); writer.println("<form method='post'>"); //name 輸入框 writer.println("<table><tr><td>Name:</td><td><input name='name'/></td></tr>"); //adress 可拖動文本輸入框 writer.println("<tr><td>Address:</td><td><textarea name='address' cols='40' roes='50'></textarea></td></tr>"); //country 下拉選擇框 writer.println("<tr><td>Country:</td><td><select name='country'><option>ZH</option><option>USA</option></select></td></tr>"); //instruction 可拖動文本輸入框 writer.println("<tr><td>Shopping:</td><td><textarea name='instruction' cols='40' rows='5'></textarea></td></tr>"); //deliver 單選按鈕 writer.println("<tr><td>Radio:</td><td><input type='radio' name='deliver' value='First'/>FirstClass "); writer.println("<input type='radio' name='deliver' value='Second'/>SecondClass</td></tr>"); //catalogRequest 勾選框 writer.println("<tr><td>Please:</td><td><input type='checkbox' name='catalogRequest'/></td></tr>"); //重置按鈕和提交按鈕 writer.println("<tr><td><input type='reset'/><input type='submit'/></td></tr>"); writer.println("</table>"); writer.println("</form>"); writer.println("</body>"); writer.println("</html>"); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter writer = response.getWriter(); writer.println("<html>"); writer.println("<head><title>"+TITLE+"</title></head>"); writer.println("<body><h1>"+TITLE+"</h1>"); //name writer.println("<table><tr><td>Name:</td><td>"+request.getParameter("name")+"</td></tr>"); //adress writer.println("<tr><td>Address:</td><td>"+request.getParameter("address")+"</td></tr>"); //country writer.println("<tr><td>Country:</td><td>"+request.getParameter("country")+"</td></tr>"); //instruction writer.println("<tr><td>Shopping</td><td>"); String[] instructions = request.getParameterValues("instruction"); if(instructions != null) { for(String instruction : instructions) { writer.println(instruction + "<br/>"); } } writer.println("</td></tr>"); //deliver writer.println("<tr><td>Radio:</td><td>"+request.getParameter("deliver")+"</td></tr>"); //catalogRequest writer.println("<tr><td>Please:</td><td>"); if(request.getParameter("catalogRequest") == null) { writer.println("No"); }else { writer.println("Yes"); } writer.println("</td></tr>"); writer.println("</table>"); // writer.println("<div style='border:1px solid #ddd; margin-top:40px;font-size:90%'>"); writer.println("Debug Info<br/>"); Enumeration<String> parameterNames = request.getParameterNames(); while(parameterNames.hasMoreElements()) { String paramName = parameterNames.nextElement(); writer.println(paramName + ": "); String[] paramValues = request.getParameterValues(paramName); for(String paramValue : paramValues) { writer.println(paramValue + "<br/>"); } } writer.println("</div>"); writer.println("</body>"); writer.println("</html>"); } }
代碼說明:表單方法被設置為post,用戶提交表單時采用HTTP POST方法。它的action屬性缺失,表單會提交給發出請求的哪個URL。點擊提交按鈕,表單的值會通過HTTP POST方法發送到服務器,這樣就會調用Servlet的doPost方法。
代碼效果截圖: