- 请求重定向
客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次的请求对象不会保存,地址栏的URL地址会改变;
- 请求转发
服务器行为,request.getRequestDispatcher.forward(request,response);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变;
- 一个现实生活的例子
重定向:你先去A了局,A局的人说:“这个是不归我们管,去B局”,然后,你就从A局退了出来,自己乘车去了B局;
转发:你去了A局,A局看了以后,知道这个事情其实应该B局来管,但是他们没有把你退回来,而是让你坐了一会,自己到后面办公室联系了B的人,让他们办好了,送了过来。
- REG页
<%--
Created by IntelliJ IDEA.
User: jdq8576
Date: 2018/6/27
Time: 19:36
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>用户注册</title>
</head>
<body>
<h1>用户注册</h1>
<hr>
<form name="regForm" action="response.jsp" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>爱好:</td>
<td>
<input type="checkbox" name="favorite" value="read">读书
<input type="checkbox" name="favorite" value="movie">电影
<input type="checkbox" name="favorite" value="music">音乐
<input type="checkbox" name="favorite" value="runing">跑步
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交"/></td>
</tr>
</table>
</form>
<br>
<br>
<hr>
<a href="request.jsp?username=李四">url传参数</a>
</body>
</html>
- request页
<%--
Created by IntelliJ IDEA.
User: jdq8576
Date: 2018/6/27
Time: 19:45
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>request</title>
</head>
<body>
<h1>request内置对象</h1>
<%
request.setAttribute("password","123456");
%>
用户名:<%=request.getParameter("username") %><br>
爱好:<%
if(request.getParameterValues("favorite")!=null) {
String[] favorites = request.getParameterValues("favorite");
for (int i = 0; i < favorites.length; i++) {
out.println(favorites[i] + " ");
}
}
%>
<br>
密码:<%=request.getAttribute("password")%><br>
请求体的MIME类型:<%=request.getContentType()%><br>
协议类型及版本号:<%=request.getProtocol()%><br>
服务器主机号:<%=request.getServerName()%><br>
服务器端口号:<%=request.getServerPort()%><br>
请求客户端的IP地址:<%=request.getRemoteAddr()%><br>
</body>
</html>
- response页
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
//请求重定向
response.sendRedirect("request.jsp");
//请求转发
//request.getRequestDispatcher("request.jsp").forward(request,response);
%>
</body>
</html>