表单传输数据的方法

      从form表单传输数据有几种方法:

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class MyInfoForm
 */
public class MyInfoForm extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public MyInfoForm() {
        super();
        // TODO Auto-generated constructor stub
    }

    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setCharacterEncoding("gb18030");
        PrintWriter out = response.getWriter();
        
        
        out.println("<h1>用户登录</h1>");
        out.println("<form action = '/ServletTest/RegisterCL'  method = 'post'>");
        out.println("用户名: <input type = 'text' name = 'username'/><br/>");
        out.println("密     码:<input type = 'password' name = 'password'/><br/>");
        out.println("性     别:<input type = 'radio' name = 'sex' value = '男'/>男 <input type = 'radio' name = 'sex' value = '女'/>女<br/>");
        out.println("爱     好:<input type = 'checkbox' name = 'hobby' value = '音乐'>音乐<input type = 'checkbox' name = 'hobby' value = '体育'>体育<input type = 'checkbox' name = 'hobby' value = '足球'>足球<br/>");
        out.println("城     市:<select name = 'city'> <option value = 'bj'>北京</option> <option value = 'cq'>重庆</option></select>");
        out.println("个人介绍:<textarea cols = '20' rows = '10' name = 'intro'></textarea>" );
        out.println("<input type = 'submit' value = '提交'/><br/>");
        out.println("</form>");
    }

    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }

}

      其中用户密码比较常见,用request.getParameter()直接提取即可,需要注意的是性别单选获取的,它使用的是“radio”属性,在获取它提交的数据时,获取到的是标签中value设定的值。

      爱好为复选项目,所以使用“checkbox”属性,它获取提交的数据也是value中的值,在获取时需注意的是因为他是复选,取到的是多个值,所以在获取时得到的是一个数组,而获取数组使用的方法是request.getParameterValues()。

      个人介绍为文本框,它直接获取文本框中所输入的信息,直接使用request.getParameter()获取即可;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class RegisterCL
 */
public class RegisterCL extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public RegisterCL() {
        super();
        // TODO Auto-generated constructor stub
    }

    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        
        String u = request.getParameter("username");
        String p = request.getParameter("password");
        String sex = request.getParameter("sex");
        String[] hobby = request.getParameterValues("hobby");
        String city = request.getParameter("city");
        String intro = request.getParameter("intro");
        System.out.println(u);
        System.out.println(p);
        
        out.println("u = " + u);
        out.println("p = " + p);
        out.println("sex =" + sex);
        out.println("city = " + city);
        out.println("intro = " + intro);
        if(hobby != null){
            for(int i = 0; i < hobby.length; i++){
                out.println("hobby = " + hobby[i]);
            }
        }else{
            out.println("你没有选择爱好");
        }
        out.println("city = " + city);
    }

    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }

}

 

posted @ 2015-10-15 15:52  Draeen  阅读(610)  评论(0编辑  收藏  举报