JAVA基础jsp之session与Cookie对比,application

目录

session与Cookie对比

session和Cookie跨页面,application跨用户。

一、application对象

二、application对象常用的方法

三、案例演示


session与Cookie对比

相同点:①都是用来保持用户状态的一种机制②都会过期(生存期限)
不同点:
    session                    Cookie
在服务器端保存用户信息            在客户端保存用户信息
session中保存的是Object类型        Cookie保存的是String类型
随会话的结束而将其存储的数据销毁        Cookie可以长期保存在客户端
保存重要的信息                保存不重要的用户信息 

session和Cookie跨页面,application跨用户。

application与session和Cookie的本意是一样的  都是用保存信息
最大的区别    保存的范围

一、application对象

    1.application对象实现用户间数据的共享,可存放全局变量。
    2.application开始于服务器的启动,终止于服务器的关闭。
    3.在用户的前后连接或不同用户之间的连接中,可以对application对象的统一属性进行操作。
    4.在任何地方对application对象属性的操作,都将影响到其它用户对此的访问
    5.服务器的启动和关闭决定了application对象的生命
    6.application对象是ServletContext类的实例

【总结】application(应用对象):存活范围最大的对象,只要服务器没有关闭,application对象中的数据就会一直存在。在整个服务器运行过程中,application对象只有一个

-------request、session以及application这3个对象的范围是逐个增加的:request只在一个请求的范围内,session是在浏览器窗口的范围内。application则是在整个服务器运行过程中。


二、application对象常用的方法

    public void setAttribute(String name,Object value):使用指定名称将对象绑定此会话。

    public Object getAttribute(String name):返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null。

    Enumeration getAttributeNames():返回所有可用属性名的枚举

    String getServerInfo():返回jsp(servlet)引擎及版本号

三、案例演示

    3.1 application的方法演示-----建application.jsp页面

    <!-- 使用application对象setAttribute()保存信息 -->
    <%
        application.setAttribute("city","长沙市");//所在城市
        application.setAttribute("postCode","410000");//邮编号码
        application.setAttribute("email","15084961293@163.com");//邮箱
    %><br/>
    <!-- 使用application对象getAttribute()保存信息 -->
    所在城市:<%=application.getAttribute("city") %><br/>
    <!-- 使用application对象getAttributeNames()获取所有属性包括系统内置属性 -->
    application对象中的属性有:<% 
        Enumeration<String> attributes =  application.getAttributeNames();
        //遍历枚举
        while(attributes.hasMoreElements()){//如果存在下一条数据
            out.println(attributes.nextElement()+"<br/>");
        }
    %><br/>
    JSP(SERVLET)引擎名及版本号:<%=application.getServerInfo() %>

    3.2 application实现统计网站访客

    <!-- 使用application实现统计网站访客 -->
    <%
        //判断application对象中有没有保存为count的参数
        //如果没有,在application对象中新增一个名为count的参数
        if(application.getAttribute("count")!=null){
            application.setAttribute("count",new Integer(0));
        }
        使用application对象读取count参数的值,再在原值基础上累加1 
        Integer count = (Integer)application.getAttribute("count");
        application.setAttribute("count", new Integer(count.intValue()+1));
    %>

    欢迎,您是第:<%=application.getAttribute("count") %>位访问者
    


四、JavaBeans的使用了内容:

    ①JavaBean简介
    ②JavaBean设计原则
    ③Jsp中如何使用Javabean
    ④<jsp:useBeans>
    ⑤<jsp:getProperty>
    ⑥<jsp:setProperty>
    ⑦Javabean的四个作用域范围


    4.1 JavaBean简介及设计原则
    【JavaBean简介】符合某种特定的规范的Java类,使用Javabeans的好处是解决代码重复编写,减少代码冗余,功能区分明确,提高了代码的维护性。

    【Javabean的设计原则】①公有类②无参的公有的构造方法③属性私有化④get和set方法封装
    --举例:Student
    
    public class Student{
        
        private String name;
        //无参构造方法
        public Student(){}
        
        public   void setName(String name){
            this.name = name;
        }
        public String getName(){
            return name;
        }
    }
    

    4.2 什么是jsp动作
    jsp动作元素(action elements),动作元素为请求处理阶段提供信息。动作元素遵循XML元素的语法,有一个包含元素名的开始标签,可以有属性,可选的内        容、与开始标签匹配的结束标签。

    4.3 关于JavaBean的jsp动作
    <jsp:useBean>、<jsp:getProperty>、<jsp:setProperty>


    4.4 在jsp页面中如何使用Javabeans
    ①使用普通的java类一样,创建javabean实例。--案例实现登录
        第一步:在src中编写com.entity包再编写User类,并遵循javabean设计原则
        第二步:在dologin.jsp页面中实例化Users类并设置值与login.jsp页面输入的信息比较,匹配成功登录admin.jsp


    ②在jsp页面中通常使用jsp动作标签使用javabean:useBean、getProperty、setProperty
        **<jsp:useBean>  在jsp页面中实例化或者在指定范围内使用javabean,语法如下:
        <jsp:useBean id = "标识符" class = "java类名" scope = "作用范围"/>
        第一步:在页面编写:
        <jsp:useBean id = "myUsers" class = "com.entity.Users" scope = "page">
            第二步:获取
        <%=myUsers.getUsername%>//null值,没有初始化

    ③<jsp:setProperty>  给已经实例化的Javabean对象的属性赋值,一共有四种形式。
    ** <jsp:setProperty name = "JavaBean实例名" property = "*" />(跟表单关联)
    ** <jsp:setProperty name = "JavaBean实例名" property = "JavaBean属性名" />(跟表单关联)
    ** <jsp:setProperty name = "JavaBean实例名" property = "JavaBean属性名" value= "BeanValue" />(手工设置)
    ** <jsp:setProperty name = "JavaBean实例名" property = "propertyName" param = "request对象中的参数名" />(跟request参数关联)

    4.5 案例演示
     <h1>系统登录</h1>
        <hr>
         <form name="loginForm" action="dologin.jsp?mypass=999999" method="post">
      <table>
        <tr>
          <td>用户名:</td>
          <td><input type="text" name="username" value=""/></td>
        </tr>
        <tr>
          <td>密码:</td>
          <td><input type="password" name="password" value=""/></td>
        </tr>
        <tr>
          <td colspan="2" align="center"><input type="submit" value="登录"/></td>
          
        </tr>
      </table>
    </form>
--------------------------------------------------------------------------------------------------------------------------------
    <jsp:useBean id="myUsers" class="com.po.Users" scope="page"/>
    <h1>setProperty动作元素</h1>
    <hr>
   <!--根据表单自动匹配所有的属性 -->
   <%-- 
   <jsp:setProperty name="myUsers" property="*"/>  
   --%>
   <!--根据表单匹配所有部分的属性 -->
   <%-- 
   <jsp:setProperty name="myUsers" property="username"/>  
   --%>
   <!--根表单无关,通过手工赋值给属性 -->
   <%-- 
   <jsp:setProperty name="myUsers" property="username" value="lisi"/>
   <jsp:setProperty name="myUsers" property="password" value="888888"/>
   --%>
   <!--通过URL传参数给属性赋值 -->
   <jsp:setProperty name="myUsers" property="username"/>
   <jsp:setProperty name="myUsers" property="password" param="mypass"/>
   <!-- 使用传统的表达式方式来获取用户名和密码 -->
   <%--     
       用户名:<%=myUsers.getUsername() %><br>
       密码:<%=myUsers.getPassword() %><br> 
   --%>
   <!-- 使用getProperty方式来获取用户名和密码 -->
      用户名:<jsp:getProperty name="myUsers" property="username"/> <br>
      密码:<jsp:getProperty name="myUsers" property="password"/><br>


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/597111.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

线性表的概念与结构,以及顺序表和链表的简单概念

1.线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构&#xff0c;也就说是连续的一条直线…

JS hook cookie

JS hook cookie cookie 的值是V&#xff0c;v是动态变化的 可以看到D中生成了cookie的值n 尝试使用RPC定位到cookie。 替换内容&#xff0c;下断点。 将写好的RPC代码直接插入 加入代码&#xff0c;file.virjar.com/sekiro_web_client.js?_123 这个地址是在前端创建客户端…

开源模型应用落地-CodeQwen模型小试-小试牛刀(一)

一、前言 代码专家模型是基于人工智能的先进技术&#xff0c;它能够自动分析和理解大量的代码库&#xff0c;并从中学习常见的编码模式和最佳实践。这种模型可以提供准确而高效的代码建议&#xff0c;帮助开发人员在编写代码时避免常见的错误和陷阱。 通过学习代码专家模型&…

【网络知识】光猫、路由器 和 交换机 的作用和区别?

数字信号&#xff1a;是指自变量是离散的、因变量也是离散的信号&#xff0c;这种信号的自变量用整数表示&#xff0c;因变量用有限数字中的一个数字来表示。在计算机中&#xff0c;数字信号的大小常用有限位的二进制数表示。 模拟信号&#xff1a;模拟信号是指用连续变化的物…

学习c#第26天 面向对象基础之类与对象

1.类 1.什么是类? 俗话说&#xff0c;“物以类聚&#xff0c;人以群分”。意思是同类的东西经常聚在一起&#xff0c;志同道合 的人相聚成群。前者说物&#xff0c;后者说人。这里以物来进行举例说明[见图]&#xff1a; 水果超市&#xff0c;所有同类的水果摆放在一起&#xf…

【机器学习与实现】线性回归分析

目录 一、相关和回归的概念&#xff08;一&#xff09;变量间的关系&#xff08;二&#xff09;Pearson&#xff08;皮尔逊&#xff09;相关系数 二、线性回归的概念和方程&#xff08;一&#xff09;回归分析概述&#xff08;二&#xff09;线性回归方程 三、线性回归模型的损…

vivado刷题笔记46

题目&#xff1a; Design a 1-12 counter with the following inputs and outputs: Reset Synchronous active-high reset that forces the counter to 1 Enable Set high for the counter to run Clk Positive edge-triggered clock input Q[3:0] The output of the counter c…

场外个股期权和场内个股期权的优缺点是什么?

场外个股期权和场内个股期权的优缺点 场外个股期权是指在沪深交易所之外交易的个股期权&#xff0c;其本质是一种金融衍生品&#xff0c;允许投资者在股票交易场所外以特定价格买进或卖出证券。场内个股期权是以单只股票作为标的资产的期权合约&#xff0c;其内在价值是基于标…

金融业开源软件应用 管理指南

金融业开源软件应用 管理指南 1 范围 本文件提供了金融机构在应用开源软件时的全流程管理指南&#xff0c;对开源软件的使用和管理提供了配套 组织架构、配套管理规章制度、生命周期流程管理、风险管理、存量管理、工具化管理等方面的指导。 本文件适用于金融机构规范自身对开…

工业物联网技术在生产流程中的应用及优势与挑战——青创智通

工业物联网解决方案-工业IOT-青创智通 随着科技的不断发展&#xff0c;物联网技术逐渐渗透到各个行业中&#xff0c;尤其是在工业领域&#xff0c;工业物联网的应用正在逐步重塑生产流程。本文将探讨工业物联网如何影响生产流程&#xff0c;并分析其带来的优势和挑战。 一、工…

Amazon Bedrock的进化:更多选择与新特性,助力生成式AI应用更快落地

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

leetcode-没有重复项的全排列-97

题目要求 思路 1.递归&#xff0c;如果num和n的元素个数一样就可以插入res中了&#xff0c;这个作为递归的结束条件 2.因为这个题是属于排列&#xff0c;并非组合&#xff0c;两者的区别是排列需要把之前插入的元素在回退会去&#xff0c;而组合不需要&#xff0c;因此会存在一…

YPay源支付Mini Pro免授权使用版v1.0

YPay源支付Mini Pro免授权使用版v1.0 &#xff0c;修改host屏蔽Pro授权站&#xff0c;可有效防止因用户操作不当导致免授权程序无法执行时 执行授权官方的盗版入库代码&#xff0c;尽可能保证网站安全 1.安装SG14组件 注&#xff1a;仅防止二次开发添加授权 2.”/etc/host”文…

尊享面试100题(314.二叉树的垂直遍历python)

题目关键词&#xff0c;从左到右&#xff0c;从上到下&#xff0c;那么使用bfs宽度优先算法。 使用字典v保存每一列的值。 class Solution:def verticalOrder(self, root: Optional[TreeNode]) -> List[List[int]]:if not root: return []v defaultdict(list)qu deque()…

淘宝扭蛋机小程序开发:开启你的惊喜之旅

一、扭出新世界&#xff0c;惊喜不断 在这个充满无限可能的数字时代&#xff0c;淘宝扭蛋机小程序为你带来了一种全新的购物与娱乐体验。扭蛋机&#xff0c;这个充满童趣和惊喜的玩具&#xff0c;如今在我们的小程序中焕发出新的活力&#xff0c;为你带来一波又一波的惊喜与快…

WES-100B液晶数显式液压万能试验机

一、简介 主机为两立柱、两丝杠、油缸下置式&#xff0c;拉伸空间位于主机的上方&#xff0c;压缩、弯曲试验空间位于主机下横梁和工作台之间。测力仪表采用高清液晶显示屏&#xff0c;实验数据方便直观。 二、 传动系统 下横梁升降采用电机经减速器、链传动机构、丝杠副传动…

Redis开源社区持续壮大,华为云为Valkey项目注入新的活力

背景 今年3月21日&#xff0c;Redis Labs宣布从Redis 7.4版本开始&#xff0c;将原先比较宽松的BSD源码使用协议修改为RSAv2和SSPLv1协议&#xff0c;意味着 Redis在OSI&#xff08;开放源代码促进会&#xff09;定义下不再是严格的开源产品。Redis官方表示&#xff0c;开发者…

QT--1

类型界面 #include "mywidget.h"myWidget::myWidget(QWidget *parent): QWidget(parent) {//窗口相关设置this->resize(680,520);this->setFixedSize(680,520);this->setWindowTitle("Tim");this->setWindowFlag(Qt::FramelessWindowHint);th…

Git -- reset 详解

引言 当我们在项目中有多个人协同开发时候&#xff0c;难免会出现一些错误的提交或者删除了一些重要文件。我们需要回滚到指定的某一个节点。那些乱七八糟的各种提交都要清除掉。 这时候&#xff0c;我们的指令就要用到了。reset 正文 git reset。它的一句话概括 git-reset …

【C++之map的应用】

C学习笔记---021 C之map的应用1、map的简单介绍1.1、基本概念1.2、map基本特性 2、map的基本操作2.1、插入元素2.2、访问元素2.3、删除元素2.4、遍历map2.5、检查元素是否存在2.6、获取map的大小2.7、清空map2.8、基本样例 3、map的基础模拟实现4、测试用例4.1、插入和遍历4.2、…
最新文章