2023年11月28日发(作者:)

JSP response重定向

在动态网站的某些操作中,有时需要从一个页面转向另外一个页面,如用户登

录成功。要达到页面重定向的效果,可以采用前面学习的动作指令jsp:forward,也

可以采用resposne对象的sendRedirect(URLurl)sendRedirect()语法格式如下所示:

public abstract void sendRedirect(String url)

其中url表示转向的页面资源,可以是JSP页面、HTML页面、Servlet等。

JSP页面还可以用response对象的sendError方法来指明一个错误状态。该方法

接受一个错误码以及一个可选的出错消息,该消息将在被返回给客户。如下所示的

代码用于将客户重定向到一个包含了出错信息的页面。

<% ror(404,页面没有找到!); %>

上述sendRedirectsendError方法都会终止当前请求和响应。如果响应已经提

交给客户,则不会调用这些方法。所以在实际使用中要慎重,比如,在出现异常或

者出错的情况下使用这两种方法。

在通常情况下,用request对象的getParameter()方法获取客户端提交的表单内

容,并将该内容显示到客户端。在这里仍然用此方法获取同样的内容,但并不把它

直接显示到客户端,而是先判断该用户是否为合法的用户,再根据判断结果使用re

quest对象的sendRedirect方法、encodeURL方法和sendError方法对不同用户指定

不同登录页面。

现在创建一个案例,演示sendRedirect方法和sendError方法使用过程。打开记

事本,创建文件,其代码如下所示:

<%@ page contentType="text/html;charset=gb2312" %>

登录

border="0">

>>name="username" type="text" id="username"

size="20">

align="left">name="password" type="password"

id="password" size="20" >

colspan="2" align="center">type="submit" name="Submit" value="

">

信息输入页面创建完毕后,需要创建用于检查用户名称和密码的页面。打开记

事本,创建ResponseExample1_文件,其代码如下所示:

<%@ page contentType="text/html; charset=gb2312" language="java" %>

<%

racterEncoding("gb2312");

String SRUrl="ResponseExample1_";

String username=ameter("username");

String pwd=ameter("password");

if(("admin") && ("123456"))

{direct(URL(SRUrl));}

else

{ror(400,"用户名或密码错误,登录失败!");}

%>

如果用户登录成功,则显示提示提示信息。打开记事本,创建ResponseExampl

e1_文件,用来显示提示信息。其代码如下所示:

<%@ page contentType="text/html; charset=gb2312" language="java" %>

登录成功

将上述三个文件复制到Tomcat运行目录下,打开IE浏览器,在地址栏中输入

localhost:8080/JSPExample/单击【转到】会显示如图3

-7所示窗口:

3-7 信息输入窗口

在上图所示的页面,输入用户admin,密码111111后,单击【提交】按钮,登

陆成功后将转向如图3-8所示页面。

3-8 登陆成功

如果用户名或密码不是上面输入的,那么将产生错误。具体运行结果如图3-9

所示。

3-9 登陆失败后的结果