目录
一.如何使用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);
}
}
}
在复选框中选择选项,点击登录提交表单:
得到如下运行结果: