test.jsp 第一个页面
<%@ page contentType="text/html"%>
<html><body bgcolor = red>
<%
String hint = (String)request.getAttribute("hint");
%>
<form action="two.jsp" name = form>
please input a number : <input type="text" name="number">
<br/> <input type="submit" value="goto" name = "submit">
<%= hint %>
<form>
</body></html>
two.jsp
<%@ page contentType="text/html" %>
<head>
<jsp:include page = "head.txt"/>
</head>
<html><body bgcolor = yellow>
<%
String num = request.getParameter("number");
if(num == null || num.length() == 0){
request.setAttribute("hint" ,"输入不能为空值!");
request.getRequestDispatcher("test.jsp").forward(request,response);
}
out.println("the number is : " + num);
%>
</body></html>
首先打开test ,直接跳转,不输入内容,会重新返回到该页面,并有了新的提示 “输入不能为空值!”
首先test跳转时向two跳转时提交了这样一个请求 : http://localhost:8080/two.jsp?number=&submit=goto
显然number为空值,那么修改hint,并把这个request重新适配一下,作为对test的跳转请求。
如果是用sendRedirect进行重定向的话,不是用的test提交活来的request,而是新生成了一个request,那么跳过去就是一个空值。