JSP内置对象response与session 基础知识复习

1,response主要用于设置头信息,客户端页面跳转以及Cookie操作。

A:设置头信息(包括获取头信息),客户端页面跳转

View Code
 1 <!--获取所有的头信息-->
2 <%@ page contentType="text/html;charset=GBK"%>
3 <%@ page import="java.util.*"%>
4 <%
5 Enumeration enu=request.getHeaderNames();
6 while(enu.hasMoreElements())
7 {
8 String headerName=(String)enu.nextElement();
9 %>
10 <h1><%=headerName%>---><%=request.getHeader(headerName)%></h1>
11 <%
12 }
13 %>
14
15 <!--设置头信息实现页面定时刷新功能-->
16
17 <%@ page contentType="text/html;charset=GBK"%>
18 <%@ page import="java.util.*"%>
19 <%!
20 int temp=0;
21 %>
22 <%
23 response.setHeader("refresh","1");
24 %>
25 <h1><%=temp++%></h1>
26
27 <!--设置头信息实现页面定时跳转功能-->
28 <%@ page contentType="text/html;charset=GBK"%>
29 <%
30 response.setHeader("refresh","2;URL=GetHeader.jsp");
31 %>
32 <!--同样也可以通过设置META标签实现页面定时跳转功能-->
33
34 <META HTTP-EQUIV="refresh" CONTENT="2;URL=ResponseDemo01.jsp">
35
36 <!--通过response.sendRedirect()方法实现客户端页面跳转功能-->
37 <%@ page contentType="text/html;charset=GBK"%>
38 <%
39 response.sendRedirect("GetHeader.jsp");
40 %>


关于页面跳转功能实现的说明:

  response.sendRedirect() 、response.setHeader()以及通过<META>标签实现页面跳转都属于客户端跳转(地址改变),与<jsp:forward />标签实现的页面跳转(服务端跳转,不改变地址)最主要的区别在于:如果是前者实现的跳转,在跳转代码之后的其他代码,在页面跳转之后能继续正常执行;而后者服务器端跳转后,在跳转代码之后的其他代码,在页面跳转之后不会被执行。

B:Cookie操作

View Code
 1 <!--添加Cookie-->
2 <%@ page contentType="text/html;charset=GBK"%>
3 <%
4 Cookie cookie1=new Cookie("xiong","123");
5 Cookie cookie2=new Cookie("yu","456");
6 response.addCookie(cookie1);
7 response.addCookie(cookie2);
8 %>
9 <!--取得Cookie,设置Cookie的时长-->
10 <%@ page contentType="text/html;charset=GBK"%>
11 <%
12 Cookie cookie[]=request.getCookies();
13 for(Cookie c:cookie)
14 {
15 c.setMaxAge(20);
16 String cookieName=c.getName();
17 %>
18 <h1>Cookie的名字:<%=cookieName%>----><%=c.getValue()%></h1>
19 <%
20 }
21 %>

2,session用于区分不同的用户,每一个session表示一个用户。主要的操作方法有:取得sessionid(String getId())、使sessionid无效void invalidate()、判断是否是新用户 boolean isNew()以及getAttribute()、setAttribute()等方法。

session练习例子

View Code
 1 <!--登录验证,成功后跳转-->
2 <%@ page contentType="text/html;charset=GBK"%>
3 <form action="login_w.jsp" method="post">
4 <h2>用户登录</h2>
5 用户名:<input type="text" name="username"/><br />
6&nbsp;&nbsp;码:<input type="text" name="password"/><br /><br />
7 <input type="submit" value="登录">&nbsp;&nbsp;
8 </form>
9 <%
10 request.setCharacterEncoding("GBK");
11 String username=request.getParameter("username");
12 String password=request.getParameter("password");
13 if(!(("".equals(username)||username==null)&&("".equals(password)||password==null)))
14 {
15 if("admin".equals(username)&&"123".equals(password))
16 {
17 session.setAttribute("username",username);
18 response.sendRedirect("welcome.jsp");
19 }
20 else
21 {
22 %>
23 <h2>用户名或密码不正确!</h2>
24 <%
25 }
26 }
27 %>
28 <!--登录成功页面中,通过session属性判断是否成功登录-->
29 <%@ page contentType="text/html;charset=GBK"%>
30 <%
31 if(session.getAttribute("username")!=null)
32 {
33 String username=(String)session.getAttribute("username");
34 %>
35 <h1>欢迎,<%=username%>光临!</h1>
36 <%
37 }
38 %>




原文地址:https://www.cnblogs.com/xiongyu/p/2331531.html