从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); } }