会话技术和JSP技术

news2024/11/16 22:35:55

               

       会话技术:一次会话中包含多次的请求和响应

                一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止

         功能:在一次会话的范围内共享数据

        方式:

                1、客户端会话技术:Cookie

                2、服务器端会话技术:Session

Cookie:

        概念:客户端会话技术,将数据保存到客户端

        快速入门:

                使用步骤:

                        1、创建Cookie对象,绑定数据

                             new  Cookie(String name,String value)

                        2、发送Cookie对象

                                response.addCookie(Cookie cookie)

                        3、获取Cookie拿到数据

                                Cookie [ ]   request.getCookies()

                实现原理

                        基于响应头set-cookie和请求头cookie实现

                cookie的细节

                        1、一次可不可以发送多个cookie

                                可以

                               可以创建多个cookie对象,使用response调用addCookie方法发送cookie即可 

                        2、cookie在浏览器中保存多长时间

                                1、默认情况下,当浏览器关闭后,Cookie数据被销毁

                                2、持久化存储:

                                        setMaxAge(int seconds)

                                                1、正数:将Cookie数据写到硬盘的文件中,持久化存储。Cookie存活时间之后自动删除Cookie文件

                                                2、负数:默认值

                                                3、零:删除cookie信息

                        3、cookie能不能存中文

                               在tomcat 8 之前 cookie不能直接存储中文数据

                                在tomcat 8 之后 cookie 支持中文数据  不支持特殊字符,重新设置Cookie的值,重新发送cookie

                        4、cookie的获取范围多大

                                假设在一个tomcat服务器中,部署了多个web项目,那么在这些web项目中Cookie能不能共享

                                setPath(string  path):设置cookie的获取范围,默认情况下,设置当前的虚拟目录                        如果要共享,则可以将path设置为"/"

                                不同的tomcat服务器间Cookie共享问题?
                                        setDomain(String path):如果设置一级域名相同,那么多个服务器之间cookie可以共享

                                        setDomain(".baidu.com"),那么tieba.baidu.com和news.baidu.com中Cookie可以共享

        Cookie的特点和作用

                1、cookie存储数据在客户端浏览器

                2、浏览器对于单个Cookie的大小有限制(4kb)以及对同一个域名下的总cookie数量也有限制(20个)

                作用:

                        1、cookie一般用于存储少量的不太敏感的数据

                        2、在不登陆的情况下,完成服务器对于客户端的身份识别
 

JSP:入门学习

        1、概念:

                Java server pages :Java服务器端页面

                        可以理解为:一个特殊的页面,其中既可以指定定义HTML标签,又可以定义Java代码                用于简化书写

                1、服务器解析请求消息,找是否有index.jsp资源

                2、如果找到了,会将index.jsp转化为.java文件

                3、编译.java文件,生成.class字节码文件

                4、由字节码文件提供访问

      2、原理:  jsp本质上就是一个servlet

        3、jsp的脚本:JSP定义java代码的方式

                1、<% 代码%>:定义的Java代码,在service方法中,service方法中可以定义什么,该脚本中就可以定义什么

                2、<%! 代码%>定义的Java代码,在jsp转化后的Java类的成员位置

                3、<%= 代码%>:定义的Java代码,会输出到页面上,输出语句中可以定义什么,该脚本就可以定义什么

        4、JSP的内置对象:

                在jsp页面中不需要获取和创建,可以直接使用的对象
                jsp一共有9个内置对象:

                        request:

                        response:

                        out:字符输出流对象,可以将数据输出到页面上,和response.getWriter()类似

                                response.getWriter()和out.write()的区别:

                                在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据。response.getWriter()数据输出永远在out.write()之前

Session: 概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的·对象中HttpSession

        获取HttpSession对象

                HttpSession  session =request.getSession();

        使用HttpSesion对象:

                object getAttribute(String name)

                void setAttribute(String name, Object value)

                void removeAttribute(String name)

        原理:问题:服务器如何确保在一次会话范围内,多次获取的Session对象是同一个

                        Session 是依赖于Cookie的 Cookie是由请求头和响应头

   细节:

        1、当客户端关闭后,服务器不关闭,两次获取session是否为同一个?

                默认情况下不是

                如果需要相同,则可以创建Cookie,键为JSESSIONID 设置最大存活时间,让cookie持久化保存

                Cookie c =new Cookie("JSESSIONID",session.getID());

                c.setMaxAge(60*60);

                response.addCookie(c);

        2、客户端不关闭,服务器关闭后,两次获取的session是同一个吗?

                不是同一个,但是要确保数据不丢失

                        session的钝化:在服务器正常关闭之前,将session对象序列化到硬盘上

                        session的活化:在服务器启动后将session文件转化为内存中的session对象即可

        3、session什么时候被销毁?

                1、服务器关闭

                2、session对象的调用invalidate();

                3、session默认失效时间 30分钟

                        选择性修改配置

                        <session-config>

                                <session-timeout>30</session-timeout>

                        </session-config>

  session的特点

        1、session用于存储一次会话的多次请求数据,存在服务器

        2、session可以存储任意类型,任意大小的数据

                session和Cookie的区别:

                        1、session存储数据在服务器端,Cookie在客户端

                        2、session没有数据大小限制,Cookie有

                        3、session数据安全,Cookie相对不安全

JSP:

        1、指令

                作用:用于配置JSP页面,导入资源文件

                格式:<%@ 指令名称  属性名1=属性值1 属性名2=属性值2..%> 

                分类:

                        1、page :配置JSP页面的

                                contentType:等同于response.setContentType()

                                1、设置响应体的mine类型以及字符集

                                2、设置当前jsp页面的编码(只能是高级IDE才能生效,如果使用低级工具,则需要设置pageEncoding 属性设置当前页面的字符集)

                                import:导包

                                errorPage:当前页面发生异常后,会自动跳转到指定的错误页面

                                isErrorPage:标识当前 是否为错误页面

                                        true:是 可以使用内置对象excption

                                        false 否默认值 不可以使用内置对象excption

                        2、include:页面包含的。导入页面的资源文件

                                <%@include file=" "%>

                        3、taglib :导入资源

                <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

                                prefix:前缀 自定义

        2、注释

                1、HTML注释:

                        <!--  -->:只能注释HTML代码片段

                2、jsp注释:推荐使用

                        <%--  --%>

        3、内置对象

                在jsp页面中不需要创建,直接使用的对象

                一共9个:

                        变量名                                真实类型                        作用

      pageContext                PageContext                当前页面共享数据还可以获取其他八个内置对象

                        request                                HttpServletRequest     一次请求访问的多个资源(转发)

                        session                                HttpSession                一次会话的多个请求间

                        application                           ServletContext                所有用户间共享数据

                        response                             HttpServletResponse    响应对象

                        page                                    Object                        当前页面(Servlet)的对象this

                        out                                       JspWriter                      输出对象,数据输出到页面上

                        config                                 ServletConfig                  Servlet的配置对象

                        exception                           Throwable                        异常对象

                                

        

                                

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我司赤城弘一CEO受邀参加东盟与中日韩中小企业人工智能产业论坛并做主旨发言。

我司赤城弘一CEO受邀参加东盟与中日韩中小企业人工智能产业论坛并做主旨发言。 一、活动背景 为推动东盟与中日韩&#xff08;103&#xff09;中小企业服务联盟务实合作&#xff0c;帮助中小企业提高生产力和技术创新能力&#xff0c;进一步提高国际化发展水平&#xff0c;促进…

Web前端期末大作业---新农村建设网页设计

✅ 作者简介&#xff1a;一名普通本科大三的学生&#xff0c;致力于提高前端开发能力 ✨ 个人主页&#xff1a;前端小白在前进的主页 ⭐️ 个人社区 : 个人交流社区 &#x1f340; 学习格言: ☀️ 打不倒你的会使你更强&#xff01;☀️ &#x1f525;前言 期末来咯&#xff0c…

Unity脚本(一)

视频教程&#xff1a;https://www.bilibili.com/video/BV12s411g7gU/?p112 目录 脚本 特性 控制台Console 脚本生命周期 Assembly-CSharp.dll 调试 Component 脚本 脚本是附加在游戏物体上用于定义游戏对象行为指令的代码&#xff0c;需要继承自MonoBehaviour类 编…

使用VTK和Python进行体绘制

使用VTK和Python进行体绘制IntroductionVolume Rendering1. Imports2. Helper-functions3.Options4. Image-Data Input5. Prep-work6. Volume RenderingIntroduction 科学可视化技术是运用计算机图形学、图像处理、计算机视觉等方法&#xff0c;将科学、工程学、医学等计算、测…

亚马逊跨境电商可靠吗?2023年还可以做吗?

新的一年新的打算&#xff0c;不少小伙伴在问&#xff0c;亚马逊跨境电商可靠吗&#xff1f;2023年还可以做亚马逊跨境电商吗&#xff1f;为此我们小编就来简单说说自己的想法吧&#xff01; 亚马逊跨境电商可靠吗&#xff1f; 【回答】&#xff1a;首先我们需要肯定一点的是&…

【Unity3D日常开发】Unity3D中屏蔽不想显示的黄色警告消息

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群&#xff1a;1040082875 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 在开发中&#xff0c;会有一些脚本…

在vue项目中使用rem的完整步骤

首先要知道几个概念&#xff1a; 设计稿是物理像素&#xff0c;在移动端上是css像素&#xff0c;1css像素2物理像素/3物理像素&#xff1b; 要想实现一张设计稿的尺寸能在各个移动端上适配&#xff0c;因为不同的移动端的css像素和物理像素比不一样&#xff0c;所以固定的物理…

【前端】Vue项目:旅游App-(1)搭建项目、重置css、配置router和store(pinia)

文章目录创建项目搭建和配置项目&#xff1a;项目目录结构划分重置CSSnormalize.cssreset.css目录结构配置router对应页面组件index.js配置store创建项目 npm init vuelatest本项目相关选择&#xff1a; 安装相关依赖&#xff1a; npm install试着跑一下&#xff1a; npm ru…

提面录取占比:浙大MBA MPA MEM复试中不可忽视的关键因素之一。

对于复试考生来说&#xff0c;单纯的探讨某个专业有多少人报考没有太大意义&#xff0c;单纯的关注这个专业招多少人也没有太多意义&#xff0c;我们要更加关注在复试阶段还能剩余多少录取指标&#xff0c;因为这个才是复试考生直接相关的数据。不同项目和专业间目前对提前批面…

剖析免密登录,集群之间的免密登录

免密登录1.免密登录的原理2.实现2.1首先配置每个节点的hosts文件2.2 在server1生成秘钥2.3了解文件2.4 实验是否可行3.补充1.免密登录的原理 每台主机authorized_keys文件&#xff0c;该文件就是身份验证的钥匙&#xff0c;该文件里如果有另一台主机的公钥&#xff08;id_rsa.…

Pytest自动化测试框架之Allure报告

目录 简介 部署使用 1、安装&#xff1a; 2、基本使用 测试报告 简介 Allure Framework是一种灵活的、轻量级、多语言测试报告工具。 不仅可以以简洁的网络报告形式非常简洁地显示已测试的内容&#xff0c; 而且还允许参与开发过程的每个人从日常执行中提取最大程度的有…

Android设计模式详解之享元模式

前言 享元模式是对象池的一种实现&#xff0c;用来尽可能减少内存使用量&#xff0c;适合用于可能存在大量重复对象的场景&#xff0c;来缓存可共享的对象&#xff1b; 定义&#xff1a;使用共享对象可有效地支持大量的细粒度的对象&#xff1b; 使用场景&#xff1a; 系统…

STM32/51单片机实训day7——电机驱动|ULN2003A步进电机|Proteus电路设计|旋转角度控制函数|驱动函数|Keil5程序设计

目录 1 ULN2003A步进电机简介 2 步进电机电路设计 3 旋转角度控制函数 4 程序设计 motor.c motor.h 前期LCD参考文章&#xff1a;​​​​​​​ 内 容&#xff1a;编程实现控制步进电机旋转不同角度 学 时&#xff1a;3学时 知识点&#xff1a; GPIO配置、步进电机…

【pygame学习_5】窗口设计

1、引言 窗体是游戏的交互界面&#xff0c;一般我们会遇到窗口大小可调&#xff0c;窗口无边框&#xff0c;全屏显示&#xff0c;最小化设计&#xff0c;改名字&#xff0c;换图标等设计需求。 屏幕绘制有如下重要函数&#xff1a; 2、屏幕模式函数 pygame.display.set.mode …

Event Loop

javascript是单线程语言 那么&#xff0c;你可能要问&#xff0c;javascript为什么是单线程&#xff0c;难道不能实现多线程吗&#xff1f; 这跟历史有关系。javascript从诞生的时候就是单线程&#xff0c;原因大概是不想让浏览器变得太复杂&#xff0c;因为多线程需要共享资源…

dark room - 2020 年苹果设计奖得主,一个足够强大的照片视频编辑器

dark room - 2020 年苹果设计奖得主&#xff0c;一个足够强大的照片视频编辑器 2020年苹果设计奖得主 2015年App Store最佳应用 Darkroom 是一个高级照片和视频编辑器。它对业余摄影师来说很容易操作&#xff0c;但对专业摄影师来说足够强大。 下载 ➤ Darkroom 下载安装 ⇲…

七十二——八十八

七十二、JavaScript——面向对象简介 面向对象编程&#xff08;OOP) 1. 程序是干嘛的 - 程序是现实世界的抽象&#xff08;照片就是对人的抽象&#xff09; 2. 对象是干嘛的&#xff1f; - 一个事物抽象到程序后就变成了对象 - 在程序的试接中&#xff0c;一切皆对象 - 一个事物…

来到CSDN一周年(hacker的2022年终总结)

✅作者简介&#xff1a;CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1&#x1f3c6; &#x1f4c3;个人主页&#xff1a;hacker707的csdn博客 &#x1f4ac;个人格言&#xff1a;不断的翻越一座又一座的高山&#xff0c;那样的人生才是我想要的…

【数据结构】排序算法大总结

文章目录1. 排序的概念及运用2. 常见排序算法的实现2.1 插入排序2.1.1 直接插入排序2.1.2 希尔排序2.2 选择排序2.2.1 直接选择排序2.2.2 堆排序2.3 交换排序2.3.1 冒泡排序2.3.1 快速排序小区间优化hoare版本挖坑法前后指针法2.3.2 快排非递归2.4 归并排序2.4.1 归并排序递归2…

本地缓存天花板-Caffeine

前言 caffeine是一款高性能的本地缓存组件&#xff0c;关于它的定义&#xff0c;官方描述如下&#xff1a; Caffeine is a high performance, near optimal caching library. 翻译过来就是Caffeine是一款高性能、最优缓存库。 同时文档中也说明了caffeine是受Google guava启发…