Servlet——使用HttpServlet的Form表單


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方法。

代碼效果截圖: 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM