4.2 response对象

response对象主要用于动态响应客户端请求(request),然后将JSP处理数据后的结果返回到客户端浏览器。它是类javax.servlet.http.HttpServletResponse的一个对象,JSP容器根据客户端的请求建立一个默认的response对象,然后使用response对象动态地创建Web页面、改变HTTP标头、返回服务器端的状态码等信息。前面所介绍的request对象用于得到用户提交的信息,而response对象与request对象作用正好相反,是向用户发送信息。例如,客户端用户通过表单向服务器提交信息,request对象获取用户信息,然后接受信息并进行处理,并将结果用response对象返回给用户的浏览器。但是,reponse对象在JSP代码中使用较少。

4.2.1 常用方法

response对象类型是javax.servlet.ServletResponse类的实例,其作用主要是对客户的请求做出动态的响应,并向客户端发送数据。下面通过表4.3介绍response对象提供的主要方法及其说明。

表4.3 response对象中的方法及其说明

4.2.2 response对象实例

下面通过具体的实例来说明response对象如何使用,使读者加深理解并做到触类旁通。首先,我们使用response对象来设置HTTP的一个重要头信息:刷新,实例功能是每隔一秒对当前页面进行一次刷新,实现时钟的作用(请查看源码目录\Response项目\refresh.jsp文件),其代码如下。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
 <head>
  <title>response实例</title>
 </head>
 <body>
  <!-- 每秒刷新一次页面,实现时钟功能  -->
    <center>
    <%
    response.setHeader("refresh","1");
          out.println(new Date().toString());
    %>
    </center>
 </body>
</html>

运行结果如图4.3所示。

图4.3 response对象实例运行结果

当我们要向客户端login.jsp文件中输入用户名和密码时,输入正确则跳转到wel.jsp页面,否则重新转到login.jsp页面。这种情况下,response对象也是一个很好的工具(请查看源码目录\Response项目\login.jsp、loginCL.jsp和wel.jsp文件)。

●首先,创建一个客户端表单login.jsp,将用户名和密码提交给服务器进行处理,其login.jsp代码内容如下。

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<html>
 <head>
  <title>Response实例</title>
 </head>
 <body bgcolor="pink">
    <center>
             用户登录<br/>
    <hr/>
    <form action="loginCL.jsp" method="post" >
    用户名:<input type="text" name="username"/><br/>
    密&nbsp;码: <input type="password" name="password" /><br/>
    <input type="submit" value="登录"/>
    <input type="reset" value="重置"/>
    </form>
    </center>
 </body>
</html>

●然后,新建一个loginCL.jsp文件,用来校验用户名和密码是否正确,并使用response进行跳转相应的页面,其代码如下。

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<html>
 <head>
  <title>response</title>
 </head>
 <body>
    <%
        //接收用户名和密码,完成对用户的验证
    String u=request.getParameter("username");
    String p=request.getParameter("password");
        //简单验证用户名和密码是否正确
        if(u.equals("Jack") && p.equals("123"))
        {
            //合法,跳转到wel.jsp
        response.sendRedirect("wel.jsp");
        }
        else{
            //不合法,中跳转到login.jsp
        response.sendRedirect("login.jsp");
        }
    %>
 </body>
</html>

若用户名和密码正确,则要跳转到wel.jsp页面。因此,我们还要新建一个wel.jsp文件,其<body>和</body>标记之间的代码如下。

登录成功!恭喜恭喜!!<br/>
<a href="login.jsp">返回登录</a>

●最后,对项目进行打包发布,出现如图4.4所示的界面。

图4.4 用户登录界面

输入用户名和密码后,单击“登录”按钮,如果用户名和密码正确,则系统进入如图4.5所示的界面;如果用户名或密码不正确,则转向图4.4所示的界面。

图4.5 登录成功界面

有关response对象更多方法的应用,请读者亲自动手进行检验测试,这里就不再赘述。