response(响应)对象主要作用是对客户端的请求进行回应,将web服务器处理后的结果发回给客户端;是javax.servlet.httpHttpServletResponse接口实例;其接口定义如下:
public interface HttpServletResponse extends ServletResponse
此接口是ServletResponse的子接口,和Request设计原则一样;它的常用方法:
NO | 方法 | 类型 | 描述 |
1 | public void addCookie(Cookie cookie) | 普通 | 向客户端增加cookie |
2 | public void setHeader(String name,String value) | 普通 | 设置响应的头信息 |
3 | public void sendRedirect(String location)throws IOException | 普通 | 页面跳转 |
1,设置头信息(客户端在进行请求时会哦发送许多额外的信息)
服务器端也可以根据需要想客户端设置头信息,在所有的头信息的设置中,定时刷新页面的头信息使用最多:
<%! int count = 0; %>
<%
response.setHeader("refresh","2");
%>
<h3>已经刷新了:<%=count++ %>次!</h3>
平均每2秒刷新一次;也可以让起跳转到其他页面:
<%
response.setHeader("refresh","2;address.jsp");
%>
2秒后,会跳到指定的页面,有时为了防止客户端浏览器的问题造成无法跳转,还可以加上一个超连接;这个跳转属于客户端跳转(因为浏览器的地址会改变);
在HTML中也可以进行跳转,
<meta http-equiv="refresh" content="3;URL=hello.html">
JSP和HTML的跳转,2种跳转哪个更好?
要根据页面的情况进行选择,如果是一个动态页,则肯定需要Web Container来执行代码(使用jsp);如果是静态页面,则直接读取文件系统(HTML);
2,页面跳转
- response.rendRedirect("hello.jsp");这种属于客户端跳转(因为地址拦的信息变了);
- <jsp:forward />标签跳转,属于服务器条跳转(地址栏没改变);
以上都是跳转,它们的区别是什么?
在使用request属性范围时,只有是服务器端跳转才能够将request属性保存到跳转页,而客户端跳转,则无法进行属性的传递;另外,如果使用的是服务器端跳转,则执行到跳转语句时会立刻进行跳转,如果是客户端跳转,则是在整个也没执行完后才执行跳转;