response和request一样都是jsp内置对象,request是获取用户的请求,response处理用户请求。
sendRedirect()函数的作用是重定向网页,向浏览器发送一个特殊的Header,然后由浏览器来做重定向,转到指定的页面。
sendRedirect()使用注意事项:
②response.sendRedirect()使用注意事项
总结:
1. 重定向之后的代码会继续执行 (重定向代码之后加上return,可让之后的代码不再执行)
2. 当前程序所有代码执行完毕后,才会执行重定向跳转如果重定向之后还有请求转发或重定向,
那么会报错(java servlet 和 jsp,jsp本质也是servlet)。所以重定向之后 要加一句 return。
response.sendRedirect方法执行后,并不是后面的程序就不继续执行了,所以,需要添加return语句使得后面的程序终止执行。而第一个程序满足两个条件,出错就不奇怪了。
也就是说第一个response.sendRedirect执行后,如果第二个条件满足的话,第二个response.sendRedirect也是会执行的,此时jsp不知道该转向哪个所以报错。
只要在第一个response.sendRedirect之后加上return;不让后面的执行就行了.
response.sendRedirect("100.jsp");
//100.jsp:
<%@ page pageEncoding="GBK" contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<head>
<title>*****</title>
<link href="d2.css" rel="stylesheet" type="text/css">
<SCRIPT type="text/JavaScript" >
function click(){
document.form1.action="200.jsp";
document.form1.submit();
}
function click1(){
document.form1.action="300.jsp";
document.form1.submit();
}
</SCRIPT>
</head>
<body onload=save() >
<div id="Id20" >
<form name="form" method="post" action="#" autocomplete="off" >
<br>
<br>
<table class="data300" style="120px;" ><tr><td>
</td></tr></table>
<table class="31" id="data100" style="900px;" >
<tr><td style="text-align:left" > 1、**************** <a href="../1.doc" target="view_window" style="vertical-align:middle;color:#FF0000;">可下载</a></td></tr>
</table>
<br>
<span onClick="click()" style="margin:0px;display:inline;display:inline-block;vertical-align:middle;color:#0066FF;" >请点击</span>
<br><br><br>
<table class="31" id="data100" style="900px;" >
<tr><td style="text-align:left" > 1、<span onClick="click1()" style="margin:0px;display:inline;display:inline-block;vertical-align:middle;color:#0066FF;" >地址</span>
</td></tr>
</table>
</form>
</div>