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 %>




  • 相关阅读:
    Extjs 中combobox下拉框初始化赋值
    关于继承的理解
    近来很郁闷
    Java String 常量池理解
    关于时间复杂度的讲解
    List、Set和数组之间的转换(转载)
    提升自我修养的具体方法有哪些?
    Mapped Statements collection does not contain value fo
    io流导出csv
    反射,System.Type类
  • 原文地址:https://www.cnblogs.com/xiongyu/p/2331531.html
Copyright © 2011-2022 走看看