JSP总结
JSP总结文章目录JSP总结一.jsp工作原理和生命周期二.jsp内置对象三.incude指令和include行为四.jsp作用域五.cookie和session一.jsp工作原理和生命周期工作原理执行过程以hello.jsp为例把 hello.jsp转译为hello_jsp.javahello_jsp.java 位于d:\tomcat\work\Catalina\localhost_\org\apache\jsphello_jsp.java是一个servlet把hello_jsp.java编译为hello_jsp.class执行hello_jsp生成html通过http协议把html 响应返回给浏览器生命周期二.jsp内置对象JSP有9个内置对象request封装客户端的请求其中包含来自GET或POST请求的参数response封装服务器对客户端的响应pageContext通过该对象可以获取其他对象session封装用户会话的对象application封装服务器运行环境的对象out输出服务器响应的输出流对象configWeb应用的配置对象pageJSP页面本身相当于Java程序中的thisexception封装页面抛出异常的对象。参考博客JSP九大内置对象七大动作三大指令三.incude指令和include行为include指令JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分会被同时编译执行。 语法格式如下% include file文件相对 url 地址 %include动作jsp:include动作元素用来包含静态和动态的文件。该动作把指定文件插入正在生成的页面。语法格式如下jsp:include page相对 URL 地址 flushtrue /还是不懂举个例子通过前面知道JSP最后会被转译成Servlet,假如在一个hello.jsp中引入另外一个foot.jsp页面如果是指令include%include filefooter.jsp %footer.jsp的内容会被插入到 hello.jsp 转译 成的hello_jsp.java中最后只会生成一个hello_jsp.java文件footer.jsp的内容会被插入到 hello.jsp 转译 成的hello_jsp.java中最后只会生成一个hello_jsp.java文件如果是动作includejsp:include pagefooter.jsp /footer.jsp的内容不会被插入到 hello.jsp 转译 成的hello_jsp.java中还会有一个footer_jsp.java独立存在。hello_jsp.java 会在服务端访问footer_jsp.java,然后把返回的结果嵌入到响应中。footer.jsp的内容不会被插入到 hello.jsp 转译 成的hello_jsp.java中还会有一个footer_jsp.java独立存在。 hello_jsp.java 会在服务端访问footer_jsp.java,然后把返回的结果嵌入到响应中。四.jsp作用域JSP有4个作用域分别是pageContext当前页面通过pageContext.setAttribute(key,value)的数据只能在当前页面访问在其他页面就不能访问了。requestContext一次请求常用写法是request.setAttribute(name,fjh);request.getAttribute(name)sessionContext当前会话sessionContext 指的是会话从一个用户所以页面间传递数据也是可以通过session传递的。与requestContext类似的也可以用如下方式来做pageContext.setAttribute(name,gareen,pageContext.SESSION_SCOPE);pageContext.getAttribute(name,pageContext.SESSION_SCOPE)applicationContext全局所有用户共享applicationContext 指的是全局代表与整个Web应用程序相关的对象和属性它实质上是跨越整个Web应用程序包括多个页面、请求和会话的一个全局作用域在JSP中使用application对象 application对象是也可以通过 request.getServletContext()来获取。application映射的就是web应用本身。ServletContext接口的实例所以 application request.getServletContext() 会返回true与requestContext类似的也可以用如下方式来做pageContext.setAttribute(name,fjh,pageContext.APPLICATION_SCOPE);pageContext.getAttribute(name,pageContext.APPLICATION_SCOPE)五.cookie和sessioncookie的运用场景有的网站登陆的时候会有记住密码选项一周内或者一个月内保持登陆状态。如果你选了那么一周之内都不需要再输入账号密码。这个功能就是靠cookie来实现的什么是cookieCookie是一种浏览器和服务器交互数据的方式。Cookie是由服务器端创建但是不会保存在服务器。创建好之后发送给浏览器。浏览器保存在用户本地。下一次访问网站的时候就会把该Cookie发送给服务器。创建cookie:Cookie c new Cookie(“name”, “fjh”);创建一个cookie,名字是name 值是fjhc.setMaxAge(24 * 60 * 60);表示这个cookie可以保留一天如果是0表示浏览器一关闭就销毁c.setPath(/);Path表示访问服务器的所有应用都会提交这个cookie到服务端如果其值是 /a, 那么就表示仅仅访问 /a 路径的时候才会提交 cookieresponse.addCookie©;通过response把这个cookie保存在浏览器端获取cookie:Cookie[] cookies request.getCookies();什么是session?Session对应的中文翻译是会话。会话指的是从用户打开浏览器访问一个网站开始无论在这个网站中访问了多少页面点击了多少链接都属于同一个会话。 直到该用户关闭浏览器为止都属于同一个会话考虑这个场景fjh到健身房去练胸肌首先领了钥匙然后进了更衣间把衣服裤子手机钱包都放在盒子里面。plw也到健身房去练翘臀。首先领了钥匙然后 进了更衣间把衣服裤子手机《Java 21天从入门到精通》也放在了一个盒子里但是这个盒子是和fjh的是不同的。健身房就相当于服务器盒子就是会话Session。切换到我们常见的购物网站的场景plw登陆天猫之后在购物车里看到的物品是蜡烛和皮鞭fjh登陆天猫之后在购物车里看到的物品是手铐和《Java 21天从入门到精通》是不是很清楚了cookie和session又有什么关系获取区别呢ookie 和 Session都是用来跟踪浏览器用户身份的会话方式但是两者的应用场景不太一样。Cookie 一般用来保存用户信息比如①我们在 Cookie 中保存已经登录过得用户信息下次访问网站的时候页面可以自动帮你登录的一些基本信息给填了②一般的网站都会有保持登录也就是说下次你再访问网站的时候就不需要重新登录了这是因为用户登录的时候我们可以存放了一个 Token 在 Cookie 中下次登录的时候只需要根据 Token 值来查找用户即可(为了安全考虑重新登录一般要将 Token 重写)③登录一次网站后访问网站其他页面不需要重新登录。Session 的主要作用就是通过服务端记录用户的状态。典型的场景是购物车当你要添加商品到购物车的时候系统不知道是哪个用户操作的因为 HTTP 协议是无状态的。服务端给特定的用户创建特定的 Session 之后就可以标识这个用户并且跟踪这个用户了。Cookie 数据保存在客户端(浏览器端)Session 数据保存在服务器端。Cookie 存储在客户端中而Session存储在服务器上相对来说 Session 安全性更高。如果使用 Cookie 的一些敏感信息不要写入 Cookie 中最好能将 Cookie 信息加密然后使用到的时候再去服务器端解密。回到健身房的储物柜这一段fjh和plw都有自己的盒子那么他们怎么知道哪个盒子是自己的呢通过钥匙就能找到自己的盒子了。盒子对应服务器上的Session。钥匙对应浏览器上的Cookie摘引how2j

相关新闻

EDA 工程师竞业锁定、空窗 2 年:合规赚钱完整方案(零违约风险,杜绝赔付违约金)

EDA 工程师竞业锁定、空窗 2 年:合规赚钱完整方案(零违约风险,杜绝赔付违约金)

EDA 工程师竞业锁定、空窗 2 年:合规赚钱完整方案(零违约风险,杜绝赔付违约金)先确立核心法理底线: 竞业限制禁止三类行为(无论全职 / 兼职 / 外包 / 顾问 / 项目合作)入职存在实质竞争关系的 E…

2026/11/4 8:43:47 阅读更多 →
加载jar包中的Properties文件

加载jar包中的Properties文件

通过类加载器获取文件URL通过UrlConnection获取输入流将输入流转化为Properties类输出文件内容以下是输出SpringJar包中所有spring.factories文件内容的程序。Testpublic void getAllMetaInf()throws IOException {//Spring的接口实现类的名字都放在这个文件内,并不…

2026/11/4 2:06:16 阅读更多 →
attention代码

attention代码

s计算score的方式有以下几种:import torch class Attn(nn.module):def __init__(self, method ,hidden_size):super(Attn, self).__init__()self.method methodself.hidden_size hidden_sizeif self.method not in [dot, general, concat]:raise ValueError(self.…

2026/11/3 6:33:51 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/4 1:35:24 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/3 10:57:27 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/3 11:35:49 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/4 6:23:50 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/3 10:47:27 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/3 10:57:33 阅读更多 →

日新闻

周新闻

月新闻