2023年11月28日发(作者:)
JSP response重定向
在动态网站的某些操作中,有时需要从一个页面转向另外一个页面,如用户登
录成功。要达到页面重定向的效果,可以采用前面学习的动作指令jsp:forward,也
可以采用resposne对象的sendRedirect(URL,url)。sendRedirect()语法格式如下所示:
public abstract void sendRedirect(String url)
其中url表示转向的页面资源,可以是JSP页面、HTML页面、Servlet等。
JSP页面还可以用response对象的sendError方法来指明一个错误状态。该方法
接受一个错误码以及一个可选的出错消息,该消息将在被返回给客户。如下所示的
代码用于将客户重定向到一个包含了出错信息的页面。
<% ror(404,”页面没有找到!”); %>
上述sendRedirect和sendError方法都会终止当前请求和响应。如果响应已经提
交给客户,则不会调用这些方法。所以在实际使用中要慎重,比如,在出现异常或
者出错的情况下使用这两种方法。
在通常情况下,用request对象的getParameter()方法获取客户端提交的表单内
容,并将该内容显示到客户端。在这里仍然用此方法获取同样的内容,但并不把它
直接显示到客户端,而是先判断该用户是否为合法的用户,再根据判断结果使用re
quest对象的sendRedirect方法、encodeURL方法和sendError方法对不同用户指定
不同登录页面。
现在创建一个案例,演示sendRedirect方法和sendError方法使用过程。打开记
事本,创建文件,其代码如下所示:
<%@ page contentType="text/html;charset=gb2312" %>
size="20"> id="password" size="20" > "> border="0">
>用户名称: >name="username" type="text" id="username" 用户密码: 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 登陆失败后的结果


发布评论