zoukankan      html  css  js  c++  java
  • 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 %>




  • 相关阅读:
    LSMW TIPS
    Schedule agreement and Delfor
    Running VL10 in the background 13 Oct
    analyse idoc by creation date
    New Journey Prepare
    EDI error
    CBSN NEWS
    Listen and Write 18th Feb 2019
    Microsoft iSCSI Software Target 快照管理
    通过 Microsoft iSCSI Software Target 提供存储服务
  • 原文地址:https://www.cnblogs.com/xiongyu/p/2331531.html
Copyright © 2011-2022 走看看