培训机构Day27

news/2025/1/11 19:31:28/

今天看老师给我们实现了登录功能前后端实现,在不借助成熟框架来实现对于初学者来说难度确实很大。需要大量时间练习。

知识点:

设计模式:面向对象的语言。对某个特定领域特定场景问题的最佳解决方案。
1.单例模式。singleton。单个实例,单个对象。
1.1 懒汉式:将实例化延迟到第一次获取实例。可以通过双检锁(Double-check)实现线程安全。
1.2 饿汉式:提前创建类的唯一实现,线程安全的。
1.3 登记式:spring框架。可以对任意类进行单例。通用的。

volatile:表示禁止指令重排,禁止优化。一旦有写操作,其它线程第一时间可以看到。

int a = 10;
int b = 20;
int c = 30;

sout(a+b+c)

xxx.properties
xxx.xml
xxx.yml

============================================
监听器:监听特定的事件,当事件发生时,进行特定的业务处理。listener
1.ServletContextListener:最常用。只会触发一次。应用启动时触发。
2.ServletContextAttributeListener:监听全局域对象存储数据,修改数据,移除数据。
3.ServletRequestListener:监听请求创建和销毁的。反复触发。
4.ServletRequestAttributeListener:监听请求域对象存储数据,修改数据,移除数据。
5.HttpSessionListener:监听会话域的创建与销毁。
6.HttpSesssionAttributeListener:监听会话域对象存储数据,修改数据,移除数据。

域对象四种:存储数据的容器。
1.页面域。PageContext,仅限于当前jsp页面。通过页面域,可以获取其余三个域对象。pageContext
2.请求域。HttpServletRequest,每次请求,都会创建全新的请求域对象。request
3.会话域。HttpSession,从首次请求应用开始,直到离开应用,称之为一个会话。session
4.全局域。ServletContext。一个应用有唯一的一个全局域。application

jsp内置对象:9个内置对象。
1.pageContext:页面域
2.request:请求域
3.session:会话域对象
4.application:全局域对象
5.response:响应对象。


EL表达式取数据的顺序:页面域->请求域->会话域->全局域


会话保持技术:
1.Session:HttpSession。当用户离开应用(关闭浏览器窗口),会话消失。或者超过默认超时时间。安全的。
编号:jsessionid=xxxxxxxxxxxxxxxxxxxxxxxx

2.Cookie:客户端浏览器,在每次请求时,可以向服务器传输不大的数据。存储数据在客户端。


---3.使用参数传递。


---4.手动将jessionid设置到请求头中。


5.使用token代替cookie。


过滤器:filter
1.中文编码过滤器。
2.身份验证。

1.请求转发forward:服务器端转发,原来的请求对象和响应对象不变,直接转发到下一个servlet,客户端无感知,地址不变。
适合场景:两个Servlet是共同完成一个事情。


2.重定向redirect:服务器告知客户端改变请求地址,而是创建一个新的请求,客户端地址会发生改变。
适合场景:一个新的请求,完成一个新的事情。

1.认证过滤器,设置过滤/admin/*,尽量不要拦截/*。要求后台所有业务请求必须以/admin/开头,且静态资源文件必须不能以/admin开头。


 


http://www.ppmy.cn/news/1562312.html

相关文章

分享几个高清无水印国外视频素材网站

在数字内容创作日益盛行的今天,高质量的视频素材成为了视频制作、广告创意和多媒体项目中不可或缺的元素。对于追求专业水准的创作者而言,高清、无水印的视频素材是确保作品质量的基石。以下将分享几个优质的视频素材网站,为您的创作之路提供…

k8s里面etcd的作用

etcd 是 Kubernetes 集群中一个至关重要的组件,它是一个开源的分布式键值存储系统,主要用于存储和管理 Kubernetes 集群的配置和状态信息。以下是 etcd 在 Kubernetes 中的具体作用和功能: ### 1. **集群状态存储** etcd 是 Kubernetes 集群的持久化存储后端,负责存储和管…

VUE3 VITE项目在 npm 中,关于 Vue 的常用命令有一些基础命令

如果你正在使用 Vite 构建的 Vue 3 项目,并且想要使用相关的 Vue 和 Vite 工具,下面是一些常用的命令和步骤来创建和管理 Vue 项目。 1. 使用 npm create 创建 Vue 3 项目(Vite) 如果你还没有创建项目,可以使用以下命…

AI多模态技术介绍:视觉语言模型(VLMs)指南

本文作者:AIGCmagic社区 刘一手 AI多模态全栈学习路线 在本文中,我们将探讨用于开发视觉语言模型(Vision Language Models,以下简称VLMs)的架构、评估策略和主流数据集,以及该领域的关键挑战和未来趋势。通…

[Qt] 多元素控件 | 容器类控件 | 布局管理器layout

目录 一.多元素控件 1、List Widget 【使用 ListWidget】 2、Table Widget 【使用 QTableWidget】 3、Tree Widget 【使用 QTreeWidget】 二、容器类控件 1、Group Box 【给麦当劳案例加上分组框】 2、Tab Widget 【使用标签页管理多组控件】 三、布局管理器 1、…

容器技术思想 Docker K8S

容器技术介绍 以Docker为代表的容器技术解决了程序部署运行方面的问题。在容器技术出现前,程序直接部署在物理服务器上,依赖管理复杂,包括各类运行依赖,且易变,多程序混合部署时还可能产生依赖冲突,给程序…

Golang HTML 模板使用指南

Golang HTML 模板使用指南 1. 基础模板示例 1.1 简单页面模板 <!-- templates/layout.html --> <!DOCTYPE html> <html> <head><title>{{.Title}}</title><meta charset"utf-8"><meta name"viewport" con…

【Pandas】pandas Series rsub

Pandas2.2 Series Binary operator functions 方法描述Series.add()用于对两个 Series 进行逐元素加法运算Series.sub()用于对两个 Series 进行逐元素减法运算Series.mul()用于对两个 Series 进行逐元素乘法运算Series.div()用于对两个 Series 进行逐元素除法运算Series.true…