实验要求
完成http请求对象的学习,设计一个案例,用户访问一个表单页面,在该页面上用户填写用户名,密码,地址,爱好(复选框),提交给servlet1,在servlet1中通过setAttribute设置key为author,值为自己姓名,然后转发给servlet2,在servlet2中输出表单数据,作者,客户端服务器IP地址,请求行中referer参数,请求url,contextpath,servletpath,客户端服务器IP地址等信息,运行结果和关键代码截图。
实验代码:
web.xml代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>Servlet01</servlet-name>
<servlet-class>twl.Servlet01</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet01</servlet-name>
<url-pattern>/servlet01</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Servlet02</servlet-name>
<servlet-class>twl.Servlet02</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet02</servlet-name>
<url-pattern>/servlet02</url-pattern>
</servlet-mapping>
</web-app>
form.html代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户信息</title>
</head>
<body>
<form action="/servlet11/servlet01" method="get">
<table>
<tr>
<td>用户名:</td><td><input type="text" name="username"></td>
</tr>
<tr>
<td>密码:</td><td><input type="password" name="password"></td>
</tr>
<tr>
<td>地址:</td><td><input type="address" name="address"></td>
</tr>
<tr>
<td>爱好:</td>
<td>
<input type="checkbox" name="hobby" value="sing">唱歌
<input type="checkbox" name="hobby" value="dance">跳舞
<input type="checkbox" name="hobby" value="football">足球
</td>
</tr>
</table>
<input type="submit" value="提交">
</form>
</body>
</html>
Servlet01代码如下:
package twl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "Servlet01")
public class Servlet01 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setAttribute("Author","唐文莉");
request.getRequestDispatcher("/servlet02").forward(request,response);
}
}
Servlet02代码如下:
package twl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
@WebServlet(name = "Servlet02")
public class Servlet02 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out=response.getWriter();
out.println("Author:"+request.getAttribute("Author")+"<hr>");
String username=request.getParameter("username");
String password=request.getParameter("password");
String address=request.getParameter("address");
String[] hobbies = request.getParameterValues("hobby");
out.println("用户名:"+username+"<hr>");
out.println("密码:"+password+"<hr>");
out.println("地址:"+address+"<hr>");
out.println("爱好:"+Arrays.toString(hobbies)+"<hr>");
out.println("getMethod:"+request.getMethod()+"<hr>");
out.println("getProtocol:"+request.getProtocol()+"<hr>");
out.println("getContextPath:"+request.getContextPath()+"<hr>");
out.println("getServletPath:"+request.getServletPath()+"<hr>");
out.println("getRequestURI:"+request.getRequestURI()+"<hr>");
out.println("getRequestURI:"+request.getRequestURI()+"<hr>");
out.println("getQueryString:"+request.getQueryString()+"<hr>");
out.println("getLocalAddr:"+request.getLocalAddr()+"<hr>");
out.println("getRemoteAddr:"+request.getRemoteAddr()+"<hr>");
}
}
运行结果代码截图如下: