• jsp数据交互(二)


    1、application对象
    类似于系统的“全局变量”,用于同一个服务器内的所有用户之间的数据共享,对于整个web服务器,application有且只有一个示例。

    application常用方法:

    1. void setAttribute(String key,Object value) //以key/value的形式将对象存储到application中
    2. Object getAttribute(String key) //通过key获取存储在application中的对象
    3. String getReadPath(String path) //返回相对路径的真实路径

    application主要用于统计网站访问人数,示例:

    Integer count =(Integer)application.getAttribute("count");
    if(count!=null){
        count+=1;
    }else{
        count=1;
    }
    application.setAttribute("count",count);

    小结:jsp常用内置对象

    1. out对象:用于想客户端输出数据
    2. request对象:主要用于处理客户端请求的数据信息
    3. response对象:用于响应客户端请求并向客户端输出信息
    4. session对象:用于记录会话的相关信息
    5. application对象:类似于系统的“全局变量”,用于实现web应用中的资源共享

    2、对象的作用域
    jsp中提供了四种作用域:
    1、page作用域:同一个页面中有效
    2、request作用域:通过request对象setAttribute()方法保存数据,然后调用RequestDispatcher的forward()方法转向的页面或者调用include()方法包含的页面时,都可以访问request作用域内的对象。
    3、session作用域:通过session对象的setAttribute()方法保存数据后,只要不关闭会话(不关闭浏览器),都可以访问session作用域内的对象。
    4、application作用域。只要web服务器不关闭,都可以访问。

    3、cookie

    什么是cookie?简单明了的说:缓存。你的网站有谁登录了、浏览了哪些页面,都可以存入cookie当中。并且,还可以设置cookie的有效时间。

    1. 创建cookie对象:Cookie newCookie = new Cookie(String name,String value),name表示cookie的名称,value表示当前key名称所对应的值。
    2. 写入cookie:response.addCookie(newCookie);
    3. 读取cookie:Cookie[] cookies = request.getCookie();
      cookie的常用方法:
    4. void setMaxAge(int expiry) 设置cookie的有效期,以秒为单位
    5. void setValue(String value) 在cookie创建后,为cookie赋予新的值
    6. String getValue() 获取cookie的值
    7. int getMaxAge() 获取cookie的有效时间

    **注:**sessionid被保存在cookie中。

    4、jsp访问数据库

    与Java一致。

    5、JavaBean

    JavaBean是Java中的可以跨平台的重用组件。主要负责封装数据和封装业务处理。JavaBean的定义要遵循一定的规则:公有类,并提供无参的共有构造方法;属性私有,具有共有的访问属性的getter/setter方法。

     page作用域:
       在服务器发送响应或请求转发其它页面或资源后无效
       pageContext对象本身也属于page作用域,具有page作用域的对象被绑定到pageContext对象中
    request作用域:
    session作用域:
        一个浏览器窗口对应一个session对象,当新开一个浏览器窗口时,会重新创建一个session对象
    application作用域:


    Cookie:
    cookie是由Netscape公司发明的,最常用的跟踪用户会话的方式。它
    是由服务器端生成,发送给客户端浏览器的,浏览器会将其保存为某一
    个目录下的文本文件,方便下一次请求
    cookie的作用:
    》》》对特定对象的跟踪:如访问者的访问次数,最后访问时间,路径
    》》》统计网页浏览次数
    》》》在cookie有效期内,记录用户登录的信息
    》》》针对用户的喜好推荐不同的内容
     <%
        //javax.servlet.http.Cookie这个包,当JSP翻译成.java文件时会自动导入
              Cookie c=new Cookie("pwd","123");
              c.setValue("456");
         %>
            <%=
               //c.getMaxAge()----  -1  永不超时 c.setMaxAge(0); 0表示失效
               // c.getPath()----null
               //c.getVersion()---0
              //c.getSecure()//cookie是否安全
            //  c.getName()//只有getName()没有setName(),因为名字不可改
              c.getValue()
             %>  
    如果未向cookie中添加数据,当创建session时,sessionid的值cookie的值是一样的,说明sessionid被保存在cookie中
    当服务器对一个请求作出处理时,cookie才会被写入客户端
    使用setMaxAge(int expiry)时,有以下几种情况:
    通常情况下expiry为大于0的整数,表示cookie的有效存活时间
    如果设置expiry参数等于0,表示删除cookie
    设置expiry参数为负或者不设置,表示cookie会在当前窗口关闭后失效
    cookie用于保存不重要的用户信息,重要的用户信息使用session保存
     <%
             response.addCookie(new Cookie("uname","Jack"));
             response.addCookie(new Cookie("pwd","123"));
             response.sendRedirect("look.jsp");
          
           %> 

    look.jsp
    <%
       Cookie[] cookie=request.getCookies();
       String uname=null;
       String pwd=null;
       if(cookie==null){
       out.println("用户名:"+uname+"  "+"密码:"+pwd);
           return;
       }
       
       for(Cookie c:cookie){
           if(c.getName().equals("uname")){
                 uname=c.getValue();
           }else if(c.getName().equals("pwd")){
                  pwd=c.getValue();
           }
      } 
       out.println("用户名:"+uname+"  "+"密码:"+pwd);
    %> 
     
  • 相关阅读:
    CentOS 7 安装MySQL 5.6遇到的疑难杂症小结
    ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 5166'
    MS SQL巡检系列——检查外键字段是否缺少索引
    Linix登录报"/etc/profile: line 11: syntax error near unexpected token `$'{ ''"
    MS SQL巡检系列——检查重复索引
    [转载】——故障排除:Shared Pool优化和Library Cache Latch冲突优化 (文档 ID 1523934.1)
    SQL Server 2014 Database Mail重复发送邮件特殊案例
    ORACLE推导参数Derived Parameter介绍
    SQL SERVER 数据库各版本功能对比
    SQL Server会话KILL不掉,一直处于KILLED /ROLLBACK状态情形浅析
  • 原文地址:https://www.cnblogs.com/ct0217/p/9206537.html
Copyright © 2020-2023  润新知