response表示服务器端对客户端的一种回应.------是HttpServletResponse接口的实现
1.最常用的三种操作:
设置头信息,跳转,Cookie
public void setHeader(String name,String value); //设置头信息
public void sendRedirect(String location) //跳转,由一个页面跳转到另一个页面
public void addCookie(Cookie cookie); //向客户端加入cookie
public void setContentType(String type); //设置内容的返回类型(所谓返回是指服务器端返回给客户端)
1.1 什么是头信息?
头信息就是随着具体的内容一起提交到服务器端,或者从服务器端随着内容一起提交到客户端,对内容进行补充说明的东西。。。
当然在JSP中可以通过request对象取得全部头信息,HTTPServletRequest中定义了一个可以得到取得头信息的方法
getHeaderNames(); //得到全部头信息名字
getHeader(String name);取得头信息的内容
最有用的头信息就是定时刷新,如果要想完成定时刷新,则头信息名称为refresh
<%@ page contentType="text/html;charset=GBK"%>
<%! //注意:这里一定要加!,因为如果不加的话,是局部变量,每次都重新声明
int temp = 0;
%>
<%
response.setHeader("refresh",“1”); //告诉浏览器,每隔一秒刷新一次
%>
<h1><%=temp++%><h1>
一般刷新的频率是2秒一刷新
定时刷新也可以完成跳转功能
<%
response.setHeader("refresh","2;URI=ResponseDemo01.jsp");
%>
<h2>本页面2秒后跳转到首页</h2>
<h2>如果没有跳转,请按<a href="ResponseDemo01.jsp">这里</a></h2>
<%
response.setHeader("refresh","2;URI=ResponseDemo01.jsp");
%>
这句话我们还可以换成另外一句话
<META HTTP-EQUIV="refresh" CONTENT="2;URL=aa.jsp">
为什么要写这样的东西呢,因为这是为了防止用户回退或者刷新,使得自动跳转没了,所以我们经常有这样的需求需要手动跳转
注意:HTTP-EQUIV类似于Http的头部协议的名,CONTENT是头信息的值
<Meta http-equiv="Content-Type" Content="text/html;Charset=gbk" />
<Meta http-equiv="Expires" Content="Wed,26 Feb 1997 08:21:57 GMT" />
pragma----编译指示
<Meta http-equiv="Pragma" Content="No-cach" />
注意:网页不保存在缓存中,每次访问都刷新页面,这样设定,访问者无法脱机浏览
main.jsp
<%
response.sendRedirect("aa.jsp?ref=helloworld");
%>
aa.jsp
<%=request.getParameter("ref")%>
注意:这是可以拿到值的。。。区别于setAttribute(),因为参数是随着链接传递的,当然可以获得,他没有捆绑在某个request中,而是随着链接一起跑
注意:两种跳转
1。服务器端跳转 <jsp:forward />
2.客户端跳转: response.sendRedirect() 等效于
response.setHeader("refresh","0;URL=XXX.jsp");
等效于<meta http-equiv="refresh" Content="2;URL=XXX" />
response跳转的特点:
所有页面的代码执行完成之后,然后发给客户端,然后跳转
forward:是无条件的跳转,也就是他下面的语句是不会被执行的,执行到<jsp:forward/>后就直接跳转了
经过比较之后,可以这样总结:
1.如果现在一个页面中使用了JDBC,则应该在forward跳转之前关闭数据库连接,而使用response 则可以在任意位置处关闭
3。 Cookie的基本使用
服务器端保存在客户端的一组数据。
由于Cookie保存在了客户端,所以安全性差。
javax.servlet.http.Cookie
Cookie类中实现了Cloneable接口,可以被克隆啊
方法
public Cookie(String name,String value)
public String getName();
public void setValue(String value) ;//修改内容
public void setMaxAge(int expiry); //Cookie的最大保存时间
下面看使用:
<%
//准备好两个Cookie
Cookie c1 = new Cookie("username","zwz");
Cookie c2 = new Cookie("password","www.mldn.java.cn");
//通过response 设置到客户端上去
response.addCookies(c1);
response.addCookies(c2);
%>
如果想要取得Cookie,那么肯定使用request, 因为我们总是编写服务器端程序,那么我们取得的Cookie一定是客户端发送过来的,那么客户端怎么发我们局不用管了
<%
Cookie[] c = request.getCookies();
for(int i=0;i<c.length;i++){
%>
<h3><%=c[i].getName()%>---><%=c[i].getValue()%></h3>
<%
}
%>
注意:服务器端会自动生成一个Cookie,
比如:Tomcat会生成名叫 JSessionId的Cookie, Session表示一个普通用户的会话,这个东西是用来区分不同的用户的
3.1深入研究
既然Cooie是保存在客户端上的一组信息,那么就意味着,浏览器关闭之后依然可以取得Cookie,但是发现错误出现的地方时没有取得客户端设置的Cookie,因为一个Cookie在默认情况下只能保存在当前所打开的浏览器之中。而如果现在希望真正保存在本地的话,则必须将其保存时间进行设置
setMaxAge(int expire)
下面例子:
<%
//准备好两个Cookie
Cookie c1 = new Cookie("username","zwz");
Cookie c2 = new Cookie("password","www.mldn.java.cn");
//设置Cookie的保存时间
c1.setMaxAge(20); //20秒
c2.setMaxAge(60);
//通过response 设置到客户端上去
response.addCookies(c1);
response.addCookies(c2);
%>
由此可知:服务器端自动生成的那个Cookie只能用于一次会话,似乎我们没法设置它的时间什么的
分享到:
相关推荐
5. **JSP内置对象**:如 request、response、session、application、pageContext、out、exception 等,它们提供对HTTP请求、响应、会话和全局应用程序信息的直接访问。 6. **EL(Expression Language)**:EL是JSP ...
2. **JSP内置对象**:如request、response、session、application等,它们提供了对HTTP请求和响应的访问,以及会话管理和应用程序级数据的共享。 3. **JavaBeans**:JSP与JavaBeans的结合使用,是Java Web开发中...
- **response**:代表HTTP响应,用于设置响应头、状态码及输出内容。 - **session**:管理用户会话,存储用户状态信息。 - **application**:全局应用程序范围的变量,可供所有用户共享。 - **out**:用于向响应...
Servlet API定义了诸如`javax.servlet.Servlet`、`javax.servlet.ServletRequest`、`javax.servlet.ServletResponse`等核心接口,这些接口为开发者提供了处理HTTP请求、发送响应以及与其他Web组件交互的能力。...
JSP提供了九个内置对象,包括`request`、`response`、`session`、`application`、`out`、`config`、`pageContext`、`exception`和`page`。这些对象对应于Servlet API中的类,简化了Web开发。例如,`request`对象用于...
- `response`: 用于构建HTTP响应。 - `session`: 提供会话管理。 - `application`: 处理全局应用程序信息。 - `out`: 用于向响应输出流写入内容。 - `pageContext`: 提供对当前页面上下文的访问。 - `page`: ...
在Java Web开发中,`servlet-api.jar`和`jsp-api.jar`是非常关键的库文件,它们包含了Servlet和JSP(JavaServer Pages)的核心API,是每个Java Web开发者必备的基础工具。这两个jar包通常由Java EE(Enterprise ...
JSP有九个内置对象,包括`request`, `response`, `session`, `application`, `page`, `pageContext`, `out`, `config`和`exception`。这些对象对应于Servlet API中的对象,为开发者提供了处理HTTP请求、响应、会话...
开发者可以使用JSP的内置对象如request、response、session等来处理HTTP请求,以及EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)来简化页面编程。 其次,Servlet是Java中的服务器端...
理解并熟练使用response对象是每个JSP开发者的基本功。在实际开发中,我们还需要结合request对象一起使用,以完成完整的请求-响应流程。request对象主要用于获取客户端的请求数据,如表单参数、请求头信息等。两者...
- JSP提供了9个内置对象,如request、response、session、application等,它们直接可用,简化了Web开发。例如,request对象用于获取HTTP请求参数,response对象负责构建并发送HTTP响应。 5. EL(Expression ...
4. **内置对象的增强**:如Request、Response、Session等内置对象,增加了更多的功能,如session的`isNew()`方法,用于检查session是否是新的。 5. **脚本元素的简化**:允许在JSP页面中直接写Java代码,而无需使用...
- JSP中使用`response.sendRedirect()`进行重定向,`request.getRequestDispatcher()`用于请求转发。 - 重定向URL可见于浏览器地址栏,而请求转发则不显示。 - 设置JSP的字符编码通常在page指令中用`contentType=...
2. **内置对象**:如request、response、session、application等,简化了Web开发。 3. **页面生命周期**:包括翻译、编译、加载和实例化等阶段,确保了代码的执行顺序。 **丁旭老师的JSP实训内容** 丁旭老师的课程...
**JSP(JavaServer Pages)和Servlet是Java Web开发中的两个核心技术,它们在构建动态Web应用程序方面发挥着关键作用。本教程将引导你通过Eclipse IDE创建一个基本的JSP-Servlet项目,以便理解这两者如何协同工作。*...
开发者通常会使用JSP的内置对象(如request、response、session等)以及自定义标签库(Tag Libraries)来简化开发。 2. **tomcat**:Tomcat是Apache软件基金会的一个开源项目,它是Java EE(现在称为Jakarta EE)中...
- 学习创建基本的JSP页面,处理HTTP请求,使用JSP内置对象(如request、response、session)。 - 实践数据库连接、查询操作,使用JDBC和PreparedStatement。 - 掌握用户认证、权限控制等常见的Web应用功能实现。 ...
**标题解析:** "jsp--3.cookies" 指的是一个关于JSP(Java Server Pages)技术中第3部分关于Cookie的教程或示例。在Web开发中,Cookie是用于在客户端存储信息的一种机制,常用于实现用户会话管理、个性化设置等功能...
在Web开发中,JavaServer Pages (JSP) 和Servlet是常用的服务器端技术,它们负责处理用户的请求并生成动态网页内容。然而,在处理中文参数时,尤其是通过GET和POST方法传递时,经常会出现乱码问题。这通常是由于字符...
JSP的核心概念包括JSP元素(如指令、脚本元素和动作元素)、内置对象(如request、response、session等)以及生命周期和页面转换机制。 【Servlet】是Java EE中用于处理HTTP请求的服务器端组件。Servlet通过扩展...