详述Servlet获取form表单数据

一.如何使用Servlet

首先创建好一个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表单数据了:

二.获取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);
	}

}

下面是浏览器中的输入,点击登录提交表单:

 以下是输出结果:

三.获取form表单中的复选框

与单选框中的数据获取类似,唯一差别在于用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);
		}
	}
}

在复选框中选择选项,点击登录提交表单: 

得到如下运行结果:

发布了99 篇原创文章 · 获赞 93 · 访问量 5227

猜你喜欢

转载自blog.csdn.net/DangerousMc/article/details/102864433