目录
一.如何使用Servlet
二.获取form表单中的文本
三.获取form表单中的复选框
首先创建好一个javaweb项目后,在Java Resources根目录下src中创建一个servlet文件:
创建之后将文件中除以下代码外的无用代码都删掉,只留以下代码:
package com.jd.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LogServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }在控制台中选中Servers台,点击蓝颜色的这行提示:
选中Tomcat的版本,示例中使用的是Tomcat v8.0,并选择Tomcat的路径:
然后再右键点击该行提示,点击Add and Remove:
选中要添加的类logSystem,点击add添加:
此时便添加成功了,可以使用Servlet获取form表单数据了:
假如在Javaweb中创建jsp文件,写下如下代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <form action="./LogServlet"> <input type="text" placeholder="请输入用户名" name="user-name" id="user-name"/> <input type="password" placeholder="请输入密码" name="password" id="password"/> <input type="submit" /> </form> </body> </html>得到的浏览器中的页面如下:
这时当用户在文本框和密码框中输入数据时,要想从浏览器中将数据传输到后台的代码中,就可以在刚才创建的LogServlet类中写下如下代码:
该doGet方法中的第一个参数request中存储的便是log文件中form表单中各标签在页面中获取到的值,于是用request调用getParameter()方法并在参数列表中输入要获取的标签的name值,示例中第一个输入的“user-name”便是文本框的name值,第二个输入的“password”便是密码框的name值,此时变量userName和password中存储的便是从页面中获取的数据,为字符串,再将其打印在控制台上:
package com.jd.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LogServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String userName; String password; userName=request.getParameter("user-name"); password=request.getParameter("password"); System.out.println(userName+":"+password); } }以下是点击提交后的运行结果:
文本域、下拉列表、单选框的获取原理亦如此,以下是代码示例:
log.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <form action="./LoginServlet"> <input placeholder="请输入用户名" name="user_name"/> <input type="password" name="password" placeholder="请输入密码"/> <textarea name="summary" placeholder="请输入简介"></textarea> <input type="radio" name="sex" value="1"/>男<input type="radio" name="sex" value="2"/>女 <select name="grade"> <option>--请选择--<option/> <option>--一年级--<option/> <option>--二年级--<option/> </select> <input type="submit" value="登录"/> </form> </body> </html>LogServlet.java:
package com.jd.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LogServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String userName = request.getParameter("user_name");//文本框、密码框、文本域、下拉列表、单选框 System.out.println(userName); String password = request.getParameter("password"); System.out.println(password); String summary = request.getParameter("summary"); System.out.println(summary); String grade = request.getParameter("grade"); System.out.println(grade); String sex = request.getParameter("sex"); System.out.println(sex); } }下面是浏览器中的输入,点击登录提交表单:
以下是输出结果:
与单选框中的数据获取类似,唯一差别在于用request对象调用getParameter()方法获取单选框时得到的是一个String类型变量,而获取复选框的数据时获取到的是一个String类型数组,获取数据的代码示例如下:
log.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <form action="./LogServlet"> <!--<input placeholder="请输入用户名" name="user_name"/> <input type="password" name="password" placeholder="请输入密码"/> <textarea name="summary" placeholder="请输入简介"></textarea> <input type="radio" name="sex" value="1"/>男<input type="radio" name="sex" value="2"/>女 <select name="grade"> <option>--请选择--<option/> <option>--一年级--<option/> <option>--二年级--<option/> </select>--> <input type="checkbox" name="hobby" value="1"/>篮球<input type="checkbox" name="hobby" value="2"/>足球<input type="checkbox" name="hobby" value="3"/>乒乓球 <input type="submit" value="登录"/> </form> </body> </html>LogServlet.java:
package com.jd.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LogServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // String userName = request.getParameter("user_name");//文本框、密码框、文本域、下拉列表、单选框 // System.out.println(userName); // String password = request.getParameter("password"); // System.out.println(password); // String summary = request.getParameter("summary"); // System.out.println(summary); // String grade = request.getParameter("grade"); // System.out.println(grade); // String sex = request.getParameter("sex"); // System.out.println(sex); String [] hobbies = request.getParameterValues("hobby"); for(String hobby:hobbies) { System.out.println(hobby); } } }在复选框中选择选项,点击登录提交表单:
得到如下运行结果:
