JavaWeb JSP内置对象之response对象

3、response对象

response对象与request对象正好相反,所包含的是服务器向客户端作出的应答信息。response被包装成HttpServletResponse接口,它封装了Jsp的响应,被发送到客户端以响应客户端请求。因输出流是缓冲的,所以可以设置Http状态码和response头。
response对象常用方法如下表所示。

方法名称 说明
addCookie(Cookie cookie) 添加一个Cookie对象,用来保存客户端用户信息。用request对象的getCookies()方法可以获得这个Cookie
setContentType(String contentType) 设置响应MIME类型。例如:response. setContentType(“application/msword;charset=GB2312”)
setCharacterEncoding(String charset) 设置响应使用字符编码格式
setHeader(String name,String value) 设定指定名字的HTTP文件头的值,如该值存在,会被新值覆盖。例如:在线聊天室,当refresh值为“5”时,就表示页面每5秒就要刷新一次。response.setHeader(“refresh”,”5”)
sendRedirect(URL) 将用户重定向到一个不同的页面URL。调用此方法,终止以前的应答,更改浏览器内容为一个新的的URL。注意:使用sendRedirect重定向是没办法通过request.setAttribute来传递对象到另外一个页面的。
String encodeURL(String url) 将url予以编码,回传包含sessionId的URL。用response.sendRedirect(response.encodeURL(url))的好处就是他能将用户的session追加到网址的末尾,也就是能够保证用户在不同的页面时的session对象是一致的. 这样做的目的是防止某些浏览器不支持或禁用了COOKIE导致session跟踪失败
String encodeRedirectURL(String url) 对于使用sendRedirect()方法的url进行编码

实例代码1:

<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.text.DateFormat"%>
<%@ page language="java" contentType="text/html; charset=GBK"%>
<html>
<body>
	<p>response自动刷新时间</p>
	当前时间为:
	<%
		DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		response.setHeader("Refresh", "1");
		out.println("" + df.format(new java.util.Date()));
	%>
</body>
</html>

程序说明1:

response.setHeader(“Refresh”,“1”),则1秒会重新加载页面本身。通过该方法可以设置页面自动刷新时间间隔。

运行结果1:

JavaWeb JSP内置对象之response对象_第1张图片

实例代码2:

<%@ page pageEncoding="GBK"%>
<html>
<body>
	<%
		String address = request.getParameter("where");
		if (address != null) {
			if (address.equals("qh"))
				response.sendRedirect("https://www.tsinghua.edu.cn/");
			else if (address.equals("bd"))
				response.sendRedirect("https://www.pku.edu.cn/");
		}
	%>
	<b>请选择跳转的页面:</b>
	<br>
	<form action="third_example3.jsp" method="GET">
		<select name="where">
			<option value="qh">跳转至清华大学
			<option value="bd">跳转至北京大学
		</select>
		<input type="submit" value="go" name="submit">
	</form>
</body>
</html>

程序说明2:

if(address.equals(“bd”))
response.sendRedirect(“http://www.pku.edu.cn”);
如果address值为“bd”,将用户重定向到http://www.pku.edu.cn。这时浏览器地址栏也是http://www.pku.edu.cn。
注意:使用jsp:forward,在转到新的页面后,原来页面request参数是可用的,同时在转到新的页面后,新页面地址不会在地址栏中显示出来。而使用sendRedirect方法,重定向后在浏览器地址栏会出现重定向后页面URL。

运行结果2:

JavaWeb JSP内置对象之response对象_第2张图片
JavaWeb JSP内置对象之response对象_第3张图片

你可能感兴趣的:(javaweb)