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/> 密 码: <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对象更多方法的应用,请读者亲自动手进行检验测试,这里就不再赘述。