2024年4月12日发(作者:)
JSP 重定向sendRedirect方法
重定向的含义可以下图5-13说明:
服务器
请求
浏览器
组件1
重定向响应,包含组件2的地址信息
请求
响应
组件2
图5-13 重定向原理图
浏览器向某组件1发出请求信息,组件1向浏览器发回一个重定向响应信息,
该响应信息不包含具体的数据内容,只是在响应头信息中包含需要重定向到的地址
信息,该地址可以是任何有效的URL。浏览器收到该重定向响应后会自动的向响应
信息头中所指示的地址发出请求。整个重定向的过程涉及两次“请求-响应”。具体
的重定向响应格式如下所示:
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Location: 192.168.5.100:8080/tst/jsp/
Content-Length: 0
Date: Mon, 30 Jun 2008 03:52:54 GMT
重定向可以通过Servlet中接口HttpServletResponse的实例化对象的sendRedire
ct(String url)方法来实现,需要注意的是String类型的参数url表示重定向到的地址。
如果表示重定向到本应用内的一个绝对地址时,要从应用名前开始,例如,tst应用
中的某个组件要重定向到本应用内的/jsp/,则重定向的绝对地址应该
是,“/tst/jsp/”这一点和转发中的绝对地址表示不同。
现在创建一个案例,演示重定向的使用。该案例主要计算数字的平方,如果输
入的非数字则提示错误信息。打开记事本,首先创建,其代码如下
所示:
<%@ page contentType="text/html;charset=GB2312" %>
输入一个数求取平方
打开记事本,创建文件,其代码如下所示:
package test;
import t.*;
import .*;
import .*;
public class CheckServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
public void init() throws ServletException {}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
tentType(CONTENT_TYPE);
PrintWriter out = ter();
n("");
n("
n("
");String str=ameter("name1");
try{
int num=nt(str);
int num2=num*num;
String number=""+num2;
HttpSession session = sion(true);
ribute("num",number);
direct("");
}
catch(Exception e){direct("");}
n("");
n("");
();
}
public void destroy() {
}}
在该文件中,使用request对象获取从文件传递过来的参数name1,并赋
值给变量str。对str进行整型数值转换,如果提交的信息为数字,则使用session对
象绑定,并将网页控制权转向页面。否则,转向页面。
打开记事本,创建文件,其代码如下所示:
请输入数字
创建文件,其代码如下所示:
输入数的平方为:
<%
String number=(String)ribute("num");
(number);
%>
在上述代码中,主要获取绑定对象值,并输出。
将三个JSP文件保存在C:Tomcat 6.0webappsJSPExample目录下,JavaBean
文件和Servlet文件保存在C:Tomcat 6.0webappsJSPExampleWEB-INFclasses目录
下。依照前面的方法编译这些文件。最后在配置Servlet文件。
一切完成后,就可以运行该文件了。打开IE浏览器,在地址栏中输入lo
calhost:8080/JSPExample/,单击【转到】,会显示图5-14所示窗口,
在文本域中输入数字会转到页面,并输出结果,如图5-15所示。如果文
本域输入的为非数字,则转向页面,如图5-16所示。
图5-14 求取平方
图5-15 显示平方 图5-16 输入非数字


发布评论