web路径专题+会话技术

这篇具有很好参考价值的文章主要介绍了web路径专题+会话技术。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

web路径专题+会话技术

自定义快捷键

自定义idea快捷键

  1. 首先找到你想做的快捷键的位置, 鼠标停留上去, 浮出一个标签, 根据②和③来找到该按钮在keymap(键映射)中的位置
    web路径专题+会话技术
    web路径专题+会话技术
    web路径专题+会话技术

1. 工程路径问题及解决方案

问题:
web路径专题+会话技术

1.1 相对路径

1.使用相对路径来解决, 有一个非常重要的原则: 页面所有的相对路径, 在默认情况下, 都会参考当前浏览器地址栏的路径http://ip:port/工程路径/资源 来进行跳转.
2.如果加了base标签, 相对路径就会参考base标签配置的路径.
web路径专题+会话技术

1.2 相对路径缺点

  1. …/的困扰
    web路径专题+会话技术
    web路径专题+会话技术
  2. 相对路径总是会依赖浏览器的地址栏, 所有不推荐使用. 如果需要指定页面相对路径参考的路径, 可以使用base标签来指定

1.3 base标签

  1. base标签是HTML语言中的基准网址标记, 它是一个单标签, 位于网页头部文件的head标签内
  2. 一个页面最多只能使用一个base元素, 用来提供一个指定的默认目标, 是一种表达路径和连接网址的标记
  3. 常见的url路径形式分别有相对路径和绝对路径, 如果base标签指定了目标, 浏览器将通过这个目标来解析当前文档中所有的相对路径, 包括的标签有(a标签, img标签, link标签, form标签)
  4. 也就是说, 浏览器解析时会在路径前加上base给的目标, 而页面中的相对路径也都转换成了绝对路径. 使用了base标签就应带上href属性和target属性

浏览器对首位 / 的解析规则

浏览器对首位 / 的解析规则
web路径专题+会话技术

服务器对首位 / 的解析规则

服务器对首位 / 的解析规则
web路径专题+会话技术
默认的方式即参考当前的路径, 所以最好是加上/, 因为servlet并不总是直接在webpath下的

1.4 课堂作业

题目1: 由login.html跳转到user.html的所有方法
web路径专题+会话技术

  1. 不借助Servlet
    web路径专题+会话技术
  2. 借助Servlet
    web路径专题+会话技术
    web路径专题+会话技术
    默认的方式即参考当前的路径, 所以最好是加上/, 因为servlet并不总是直接在webpath下的

题目2: 由user.html返回到login.html的所有方法
web路径专题+会话技术
解决方案:
web路径专题+会话技术
web路径专题+会话技术
默认的方式即参考当前的路径, 所以最好是加上/, 因为servlet并不总是直接在webpath下的

1.5 注意细节

  1. web工程的相对路径和绝对路径
  • 相对路径
    • .表示当前目录
    • …表示上一级目录
  • 资源名
    • 表示当前目录 / 资源名
  • 绝对路径
    • http://ip:port/工程路径 / 资源路径
  1. 在实际开发中, 路径都是用绝对路径, 而不是相对路径
  2. 在web中, / 斜杠如果被浏览器解析, 得到的地址是: http://ip[域名]:port/, 比如<a href=“/”>fds</a>
  3. 在web中, / 斜杠如果被服务器解析, 得到的地址是: /工程路径/, 你也可以理解为http://ip[域名]:port/工程路径/, 下面几种情况就是如此:
  • <url-pattern>/servletUrl<url-pattern>
  • servletContext.getRealPath(“/”)
  • request.getRequestDispatcher(“/”)
    web路径专题+会话技术
  1. 在javaWeb中, 路径最后带 / 和不带 / 含义不同, 一定要小心
    比如<a href=“/a/servlet03”>网址</a> servlet03表示资源; <a href=“/a/servlet03/”>网址</a> servlet03表示路径
    web路径专题+会话技术
  2. 特别说明: response.sendRedirect(“/”); 这条语句虽然是在服务器执行的, 但是服务器把斜杠 / 发送给浏览器解析. 因此得到地址 http://ip[域名]:port/

小结: 在编写资源路径时, 要考虑这么几点:

  1. 这个路径 前面有没有 /
  2. 如果有, 这个路径是在哪里被解析的, 是在服务器还是在浏览器. 如果是在浏览器端被解析的, 被解析成 http://ip:port/; 如果是在服务器端被解析的, 被解析成 /工程路径/.
  3. 如果没有 / , 并且在浏览器被解析, 则以浏览器当前的地址栏 去掉 资源部分作为一个相对路径的参考路径.
  4. 这个路径 最后有没有 / , 如果最后有 / , 表示一个路径; 如果没有 / , 表示定位一个资源

1.6 重定向作业

题目: 写出login.html在通过Servlet重定向情况下, 如何通过表单提交,找到user.html, 写出所有方法
web路径专题+会话技术
解决方案:
web路径专题+会话技术

写法3:

1.7 web工程路径优化

web路径专题+会话技术

2. Cookie技术

2.1 Cookie简单示意图

  1. Cookie是服务器在客户端保存的用户信息, 比如登录名, 浏览历史等, 就可以以cookie的方式保存
  2. Cookie信息就像是小甜饼(cookie)一样, 数据量并不大, 服务器端在需要的时候可以从客户端读取
    web路径专题+会话技术

位置
web路径专题+会话技术
web路径专题+会话技术

web路径专题+会话技术

2.2 Cookie常用方法

  1. Cookie有点像一张表(K-V), 分两列, 一个是名字, 一个是值, 数据类型都是String, 都是小量的数据, 如图
    web路径专题+会话技术
  2. 如果创建一个Cookie(在服务端创建)
    Cookie cookie = new Cookie(String name, String val);
    cookie.setMaxAge();//保存时间
  3. 如何将一个Cookie添加到客户端
    response.addCookie(cookie);
  4. 如何读取cookie(在服务端读取cookie信息)
    request.getCookies();

2.2 Cookie创建

新建一个Web工程->添加Web框架->新建lib, 引入servlet包Add as Library->配置tomcat->创建Servlet->浏览器抓包
web路径专题+会话技术
web路径专题+会话技术
web路径专题+会话技术

2.3 Cookie读取

web路径专题+会话技术
web路径专题+会话技术

2.3.1 JSESSIONID

  1. 提示: 访问Servlet(比如 http://localhost:8088/cs/updateCookie)不会生成JSESSIONID, 访问http://localhost:8088/cs/才会生成
  2. 要关闭浏览器再开一个新的, 才能产生一个新的session绘画

web路径专题+会话技术

2.3.2 读取指定Cookie

web路径专题+会话技术
web路径专题+会话技术

2.4 Cookie修改

web路径专题+会话技术

2.5 Cookie生命周期

  1. Cookie的生命周期是指如何管理Cookie什么时候被销毁(删除)
  2. setMaxAge()
  1. 正数, 表示在指定的秒数后过期, 但仍存在于浏览器中
    web路径专题+会话技术
  2. 0表示马上在浏览器端删除Cookie
    web路径专题+会话技术
    这里为何会有两个Set-Cookie?
    web路径专题+会话技术
  3. 负数, 表示浏览器关闭, Cookie就会被删除(默认值是-1)
    web路径专题+会话技术
    web路径专题+会话技术
    web路径专题+会话技术

2.6 Cookie的有效路径

规则如下:
cookie1.setPath = /工程路径
cookie2.setPath = /工程路径/aaa
请求地址: http://ip:端口/工程路径/资源
cookie1 会发送给浏览器
cookie2 不会发送给浏览器
请求地址: http://ip:端口/工程路径/aaa/资源
cookie1 会发送给服务器
cookie2 会发送给服务器

web路径专题+会话技术
web路径专题+会话技术
web路径专题+会话技术

2.7 Cookie作业布置

web路径专题+会话技术
web路径专题+会话技术

2.8 Cookie注意事项

  1. 一个Cookie只能标识一种信息, 它至少含有一个标识该信息的名称(Name)和设置值(Value)
  2. 一个Web站点可以给一个浏览器发送多个Cookie, 一个浏览器也可以存储多个Web站点提供的Cookie
    web路径专题+会话技术
  3. Cookie总的数量没有限制, 但是每个域名的Cookie数量和每个Cookie的大小是有限制的(不同的浏览器限制不同), Cookie不适合存放数据量大的信息

2.8.1 Cookie中文乱码问题

如果存放中文的cookie, 会报错, 可以通过url编码和解码解决
web路径专题+会话技术
web路径专题+会话技术

3. Session技术

  1. Session是服务器端技术, 服务器在运行时会为每一个用户的浏览器创建一个其独享的session对象/集合
  2. 由于session为各个用户浏览器独享, 所以用户在访问浏览器的不同页面时, 可以从各自的session中读取/添加数据, 从而完成相应任务

3.1 Session原理示意图

  1. 当用户打开浏览器, 访问某个网站, 操作session时, 服务器就会在内存(在服务端)为该浏览器分配一个session对象, 该session对象被这个浏览器独占
  2. 这个session对象也可看作是一个容器/集合, session对象默认存在时间30min(Tomcat的conf/web.xml中配置的), 也可修改
    web路径专题+会话技术
  • session可以做什么?
    • 网上商城的购物车
    • 保存登陆用户的信息
    • 将数据放入到Session中, 供用户在访问不同页面时, 实现跨页面访问数据
    • 防止用户非法登录到某个页面
  • Session存储结构示意图

web路径专题+会话技术

  1. 你可以把Session看作是一种容器类似HashMap, 有两列(K-V), 每一行就是session的一个属性.
  2. 每个属性包含有两个部分, 一个是该属性的名字(String), 另一个是该属性的值(Object)

3.2 Session常用方法

  1. 创建和获取Session
    HttpSession hs = request.getSession()
    第一次调用是创建Session会话, 之后调用是获取创建好的Session对象
  2. 向session添加属性
    js.setAttribute(String name, Object obj)
  3. 从session得到某个属性
    Object obj = hs.getAttribute(String name)
  4. 从session删除某个属性
    hs.removeAttribute(String name)
  5. isNew();
    判断是不是刚创建出来的Session
  6. 每个Session都有1个唯一标识Id值. 通过getId() 得到 Session的会话 id值

3.2 Session底层机制

项目重新发布Session会清空
web路径专题+会话技术
web路径专题+会话技术
web路径专题+会话技术
web路径专题+会话技术
web路径专题+会话技术

3.3 Session生命周期

3.3.1 Session生命周期说明

  1. public void setMaxInactiveInterval(int interval), 设置Session的超时时间(以秒为单位), 超过指定的时长, Session就会被销毁
  2. 值为正数的时候, 设定Session的超时时长
  3. 负数表示永不超时
  4. public int getMaxInactiveInterval()获取Session的超时时间
  5. public void invalidate() 让当前Session会话立即无效
  6. 如果没有调用setMaxInactiveInterval()来指定Session的生命时长, Tomcat会以Session的默认时长为准, Session的默认超时时间为30min, 可以在tomcat的web.xml中配置
    web路径专题+会话技术
  7. Session的生命周期指的是: 客户端/浏览器两次请求的最大间隔时长, 而不是累积时长, 即当客户端访问了自己的session, session的生命周期将从0开始重新计算
  8. 底层: Tomcat用一个线程来轮询会话状态, 如果某个会话的空闲时间超过设定的最大值, 则将该会话销毁

3.3.2 Session生命周期实例

web路径专题+会话技术

web路径专题+会话技术
web路径专题+会话技术
web路径专题+会话技术
解读: Session的生命周期

  1. 指的是两次访问session的最大间隔时间
  2. 如果你在session没有过期的情况下, 操作session, 则会重新开始计算生命周期
  3. session是否过期, 是由服务器来维护和管理
  4. 如果我们调用了invalidate(), 会直接将该session删除/销毁
  5. 如果希望删除session对象的某个属性, 使用removeAttribute(“xx”)

3.4 Session作业

web路径专题+会话技术
web路径专题+会话技术
web路径专题+会话技术文章来源地址https://www.toymoban.com/news/detail-411518.html

到了这里,关于web路径专题+会话技术的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Visual Studio Code】---自定义键盘快捷键设置

    在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。 而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。 开发系统:Windows11 软件版本:Sublime Text 4 使用快捷键进入键盘快捷键设置

    2024年02月16日
    浏览(70)
  • VScode函数跳转,再返回,快捷键设置和自定义

    Win10: ctrl + 鼠标左键 Ubuntu:同上操作 win10: alt + leftarrow ← leftarrow ← ubuntu下: ctrl + alt + - 注意ubuntu下的, - 使用数字小键盘好像不咋好使,使用主键盘区的 - 才可以! 🤷‍♂️因此,在ubuntu下进行自定义设置返回原处按键,设置成和win10下面的操作一致,即 alt + leftarr

    2024年02月11日
    浏览(38)
  • web架构师编辑器内容-快捷键操作的实现

    元素选择 前提都是在元素被选中的情况下 拷贝图层 - ⌘C / Ctrl+C : 新建当前选择的元素的一个数据结构 粘贴图层 - ⌘V / Ctrl+V : 将新建的元素添加到 components 数组中 删除图层 - Backspace / Delete : 在 components 数组中删除选择的元素 取消选中 - ESC : currentElement 设置为空 元素移

    2024年01月23日
    浏览(44)
  • Allegro-PCB自定义快捷键设置和常用键盘命令

    一、用env文件设置快捷键 1、Cadence 设计系统程序安装在 D:Cadence 下,则 evn 文件将在D:CadenceSPB_17.4sharepcbtext目录下 2、在Allegro中我们可以用alias或funckey命令来定义一个快捷键,以代替常用的设计命令,在env文件中修改。alias 命令不能用来定义字母,原因是字母键要用来输入

    2023年04月17日
    浏览(52)
  • 如何在windows10实现键盘控制音量快捷键 - F12增大音量、F11减低音量、F10静音 - 使用微软官方的PowerToys实用工具中的Keyboard Manager自定义快捷键

    微软官方限定,“ 快捷键至少必须有2个键 ”--- 建议使用右边的alt+F12来单手操作 安装powertoys (微软官方出品,内含“ 键盘管理器 ”,官网介绍链接) 迅雷下载: https://github.com/microsoft/PowerToys/releases/download/v0.68.0/PowerToysSetup-0.68.0-x64.exe 百度网盘下载: 链接:https://pan.baid

    2024年02月09日
    浏览(70)
  • FinalShell SSH工具安装教程及编辑窗口修改背景颜色,自定义背景图片,修改字体,修改快捷键(详细图文教程)

    FinalShell 在 Windows 上提供了一个方便、安全、功能完备的远程管理工具。它的中文支持和自定义功能让其适合国内 Linux 系统管理者使用。与 Xshell 等软件相比,FinalShell 更注重功能实用性。 参考其它博主的安装教程,链接为:添加链接描述 下载FinalShell安装包的链接:添加链接

    2024年02月12日
    浏览(74)
  • [QT编程系列-7]:C++图形用户界面编程,QT框架快速入门培训 - 3- QT窗体设计 - 自定义工具栏、状态栏、快捷键、图标

    目录 3. QT窗体设计 3.2 自定义工具栏 3.2.1 目标 3.2.2 实现过程 3.2 自定义状态栏 3.2.1  目标 3.2.2  过程 3.3 自定义动作快捷键 3.4 自定义图标 在Qt中,ToolBar(工具栏)是一种常见的GUI元素,用于提供应用程序的常用工具按钮和操作。工具栏通常包含一系列图标按钮,用于执

    2024年02月15日
    浏览(54)
  • 【MacOS 系列】mac常用快捷键收集,包含提高开发效率、精选快捷键、内置截图快捷键

    Command(或 Cmd)⌘ Shift ⇧ Option(或 Alt)⌥ Control(或 Ctrl)⌃ Caps Lock ⇪ 注意: window和Mac的区别: WIN键即为command键 ctrl即为control键 option即为alt键 只有shift两者是一样的 1、查看隐藏的文件夹 command+shift+. 2、剪切 先 command+C 复制 然后 command+option+v 粘贴 (比复制多了个 option)

    2024年02月12日
    浏览(82)
  • vscode自动换行快捷键(附常用快捷键)

    自动换行:alt+z(标签过长需要拖动编辑器下方滚动条阅读时不太方便,可以一键换行) 1.新建文件:chtr+n 2.新开窗口:ctrl+shift+n 3.分屏:ctrl+1/2/3 4.关闭当前窗口:ctrl+w 5.关闭所有已保存窗口:ctrl+k+w 6.显示/隐藏左侧边栏:ctrl+b 7.文件重命名:鼠标选中+f2 8.自动换行:alt+z(

    2023年04月15日
    浏览(67)
  • Maya常用快捷键有哪些?Maya快捷键大全

    Maya是有名的三维动画制作软件,很多小白学习Maya不知道快捷键,总是一个一个的点击,大大的影响了制作速度,快捷键可以提升制作效率,大家一定要熟记啊!本期内容小编为大家讲解Maya常用快捷键有哪些?感兴趣的小伙伴一起来学习吧。 Maya常用快捷键如下: 低质量显示

    2024年02月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包