JSP详细篇——response对象

response对象

response对象用于响应客户端请求,向客户输出信息。他封装了JSP产生的响应,并发送到客户端以响应客户端请求。

1.重定向网页

使用response对象的sendRedirect()方法可以将网页重定向到另一个页面。重定向支持将地址重定向到不同的主机上,这一点与转发不同。在客户端浏览器上将会得到跳转后的地址,并重新发送请求链接;用户可以从浏览器的地址栏中看到跳转后的地址;重定向操作后,request中的属性将会全部失效,并开始一个新的request对象

sendRedirect()方法的语法格式如下:

response.sendRedirect(String path);

参数说明:

path:指定的目标地址,可以是相对路径,也可以是不同主机的其他URL地址

范例:

定义index.jsp重定向到Login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<%response.sendRedirect("Login.jsp"); %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<base href="<%=basePath%>">

<title>My JSP ‘index.jsp‘ starting page</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet" type="text/css" href="styles.css">

-->

</head>

<body>

This is my JSP page. <br>

</body>

</html>

定义Login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<base href="<%=basePath%>">

<title>My JSP ‘Login.jsp‘ starting page</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet" type="text/css" href="styles.css">

-->

</head>

<body>

<form  name="form1" method="post" action="">

用户名:<input name="name" type="text" id="name" style="width:120px"><br/><br/>

密码:<input name="pass" type="password" id="pass" style="width:120px"><br/>

<br/>

<input type="submit" name="submit" value="提交">

</form>

</body>

</html>

2.处理HTTP头文件

response对象可以设置HTTP响应包头,其中最常用的是禁用缓存,设置页面自动刷新和定时跳转页面。

禁用缓存

默认情况下,浏览器将会显示的网页的内容进行缓存,可以通过response对象来实现对缓存的禁用。

范例:

修改Login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<%

response.setHeader("Catch-control", "no-store");

response.setDateHeader("Expires", 0);

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<base href="<%=basePath%>">

<title>My JSP ‘Login.jsp‘ starting page</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet" type="text/css" href="styles.css">

-->

</head>

<body>

<form  name="form1" method="post" action="">

用户名:<input name="name" type="text" id="name" style="width:120px"><br/><br/>

密码:<input name="pass" type="password" id="pass" style="width:120px"><br/>

<br/>

<input type="submit" name="submit" value="提交">

</form>

</body>

</html>

设置页面定时跳转

范例:

修改index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<%

response.setHeader("refresh", "5;URL=hello.jsp");

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<base href="<%=basePath%>">

<title>My JSP ‘index.jsp‘ starting page</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet" type="text/css" href="styles.css">

-->

</head>

<body>

This is my JSP page. <br>

</body>

</html>

设置页面定时刷新

<%

response.setHeader("refresh", "5");

%>

设置输出缓冲

通常情况下,服务器要输出到客户端的内容不会直接写到客户端,而是先写到一个输出缓冲区。当满足下面三种情况之一就会把缓冲区的内容写到客户端

A.JSP页面的输出已经全部写到了缓冲区

B.缓冲区已经满了

C.在JSP页面中调用了response对象的flushBuffer()方法或者是out对象的flush()方法

response对象对缓冲区的配置有如下几种方法:

flushBuffer():强制将缓冲区中的内容输出到客户端

getBufferSize():获取相应所使用的缓冲区的实际大小。如果没有缓冲区则返回0

reset():清除缓冲区的内容 ,同时清除状态码和报头

isCommited():检测服务器端是否已经把数据写入客户端。

范例:

将缓冲区的大小设置为20KB

response.setBufferSize();

PS:如果将缓冲区的大小设置为0则表示不缓冲

时间: 2024-10-11 00:53:14

JSP详细篇——response对象的相关文章

JSP详细篇——EL表达式(二)

EL的隐含对象 为了能够获得Web应用中的是相关数据,EL提供了11个隐含对象,这些对象类似于JSP的内置对象,也是直接通过对象名进行操作.在EL的隐含对象中,除了PageContext是JavaBean对象,对应于javax.servlet.jsp.PageContext类型外,其他的隐含对象都对应于java.util.Map类型.这些隐含对象可以分为页面上下文对象.访问作用域范围的隐含对象和访问环境信息的隐含对象3种.下面分别进行详细介绍. 1.页面上下文对象 页面上下文对象为pageCon

JSP详细篇

JSP内置对象 JSP使用Java作为脚本语言,所以JSP具有强大的对象处理功能,并可以动态创建web页面内容.但Java语言在使用时,需要先实例化一个对象.而JSP为了简化开发,提供了内置对象,用来实现很多JSP应用. 在JSP中提供9大内置对象.分别为:request.response.session.application.out.pageContext.config.page.exception. request对象 request对象封装了客户端生成的HTTP请求的所有细节.主要包括:

JSP详细篇——JDBC操作数据库(二)

删除数据 范例: 在查询所有图书信息的页面中,添加删除图书信息的超链接,通过Servlet实现对数据的删除操作 (1)在book_list.jsp中,增加删除图书信息的超链接,将连接的地址指向DeleteServlet. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextP

JSP详细篇——Servlet(二)

Servlet开发 1.Servlet创建 Servlet创建很简单,主要有两种方法:一是创建一个普通的Java类使其继承HttpServlet类,在手动配置web.xml文件注册Servlet对象.另一种是直接通过IDE继承开发工具进行创建. 2.Servlet配置 (1)声明Servlet对象 在web.xml中,通过<servlet>标签声明一个Servlet对象.再此标签下主要包含两个子元素,分别为:<servlet-name>和<servlet-class>.

JSP详细篇——Servlet过滤器和监听器(二)

4.字符编码过滤器 在Java Web开发中,由于Web容器内部所使用的编码格式并不支持中文,所以,处理浏览器请求的中文数据会出现乱码. Web容器使用的编码格式是ISO-8859-1,所以在Web应用的业务处理中也会使用ISO-8859-1的编码格式.虽然浏览器提交请求使用的中文编码格式是UTF-8,但是经业务处理中的ISO-8859-1编码,就会出现乱码.在开发中,处理此问题的方法是:通过过滤器来处理字符编码. 范例: 实现图书信息的添加功能,并创建字符编码过滤器,避免中文乱码出现. (1)

JSP详细篇——Servlet(一)

Servlet技术 Servlet是用Java语言编写应用到Web服务器端的扩展技术.它先于JSP产生,可以方便的对Web应用中的HTTP请求进行处理.在Java Web程序开发中,Servlet主要用于处理业务逻辑,它比JSP更具有业务逻辑层的意思.而且Servlet的安全性.扩展性以及性能方面十分优秀.在Java Web程序开发及MVC模式的应用方面起到了十分重要的作用. Servlet基础 1.Servlet结构体系 如图所示,Servlet.ServletConfig与Serializa

JSP详细篇——application

application对象 application对象用于保存所有应用程序中的共有数据.它在服务器启动时自动创建,在服务器停止时自动销毁.当application对象没有被销毁时,所有用户都可以共享该application对象.与session相比,application 对象的生命周期更长,类似于"全局变量" 1.访问应用程序初始化参数 application提供了对应用程序初始化参数进行访问的方法.应用程序初始化参数在web.xml文件中进行设置,web.xml文件位于Web应用所

JSP详细篇——out

out对象 out对象用于在web浏览器上输出信息,并且管理应用服务器上的输出缓冲区.在使用out对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中残留的数据,为其他输出让出缓冲空间.待数据输出完成后,要及时关闭输出流. 1.向客户端输出数据 out对象可以输出各种数据类型的数据,在输出非字符串时,会自动将其转换为字符串.out提供print()和println()两种向页面输出信息. print()方法 使用print()方法向客户端输出信息相当于使用JSP表达式 范例: <% out

JSP详细篇——Ajax

Ajax技术 一.Ajax开发模式与传统开发模式的比较 传统的Web开发模式中,页面中用户的每一次操作都会触发一次返回Web服务器的HTTP请求,服务器进行相应的处理(获得数据.运行与不同的系统会话)后,返回一个HTML页面给客户端 在Ajax应用中,页面中用户的操作将通过Ajax引擎与服务器端进行通信,然后将返回的结果提交给客户端页面的Ajax引擎,再由Ajax引擎来决定将这些数据插入到页面的指定位置 二.Ajax技术的使用 1.XMLHttpRequest对象 Ajax使用的技术中,最核心的