为什么写路径这事有点复杂?动态Web工程内编写路径【JavaWeb】

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 为什么写路径这事有点复杂?动态Web工程内编写路径【JavaWeb】

文章目录

一、为什么要写路径?

二、为什么写路径这事有点复杂?

三、准则

四、写路径的步骤

五、动态获取上下文路径


一、为什么要写路径?


f8343382b3844c06931dd115237d6ff7.gif


整个系统要根据功能拆分成许许多多独立的资源

资源之间既要完成自身的功能又要和其他资源配合

写路径就是为了从一个资源跳转到下一个资源

二、为什么写路径这事有点复杂?


1、先开发再部署


26996eac855d4006bccfa8420908fa5d.png


工程目录:我们写代码的地方,但是在服务器上运行的不是这个。

部署目录:经过Java源文件编译和目录重组后,IDEA就替我们准备好了可以在服务器上运行的部署目录。

区别:因为从工程目录到部署目录经过了目录重组,所以它们的目录结构是不同的。

基准:用户通过浏览器访问服务器,而服务器上运行的是部署目录,所以写路径的时候参考部署目录而不是工程目录。

对应关系:工程目录下的web目录对应部署目录的根目录,同时部署目录的根目录也是路径中的Web应用根目录。


fad9d34be7da45d69a597646417cf6da.png


2、路径的各个组成部分


从最前面一直到Web应用名称这里都是固定写法,到资源名这里要看具体是什么资源。


f6b3a249007c4c06b95e19e8784fa049.png


①具体文件

我们写代码的时候都是在工程目录下操作,所以参照工程目录来说最方便。按照工程目录的目录结构来说,从web目录开始按照实际目录结构写就好了(不包括web目录本身)。


d3d0a82c8e2a4254aaf4e95436db73df.png


②Servlet

访问Servlet的路径是我们在web.xml中配置的,大家可能注意到了,url-pattern里面的路径我们也是斜杠开头的,但是这个开头的斜杠代表Web应用根目录。


fdd47571d9ff45f8bd0948bd3473beec.png


同样是开头的斜杠,超链接路径中的开头斜杠代表服务器根目录,Servlet地址开头的斜杠,代表Web应用根目录,怎么记呢?请看下面的准则。


三、准则


用通俗的大白话来解释:一个路径由谁来解析,其实就是这个路径是谁来用。


7de3920f7c1d4acea871fa589770076d.png


那么具体来说,哪些路径是浏览器解析的,哪些路径是服务器解析的呢?


浏览器解析的路径举例:


所有HTML标签中的路径

重定向过程中指定的路径

服务器解析的路径举例:


所有web.xml中配置的路径

请求转发过程中指定的路径

四、写路径的步骤


c81272ee3cb34e96b5f8bdb7921daeb9.png


五、动态获取上下文路径


1、上下文路径的概念


上下文路径(context path)=/Web应用名称


2、动态获取


由于项目部署的时候,上下文路径是可以变化的,所以写死有可能发生错误。此时我们通过request对象动态获取上下文路径就不用担心这个问题了。调用下面这个方法,每一次获取的都是当前环境下实际的上下文路径的值。


request.getContextPath()



相关文章
|
5月前
|
Java 应用服务中间件 Apache
Maven程序 tomcat插件安装与web工程启动
Maven程序 tomcat插件安装与web工程启动
59 0
|
5月前
|
XML 网络协议 Java
JavaWeb -- HTTP -- WEB服务器TOMCAT
JavaWeb -- HTTP -- WEB服务器TOMCAT
|
3月前
|
存储 安全 搜索推荐
【JavaWeb 秘籍】Cookie vs Session:揭秘 Web 会话管理的奥秘与实战指南!
【8月更文挑战第24天】本文以问答形式深入探讨了Web开发中关键的会话管理技术——Cookie与Session。首先解释了两者的基本概念及工作原理,随后对比分析了它们在存储位置、安全性及容量上的差异。接着,通过示例代码详细介绍了如何在JavaWeb环境中实现Cookie与Session的操作,包括创建与读取过程。最后,针对不同应用场景提供了选择使用Cookie或Session的指导建议,并提出了保障二者安全性的措施。阅读本文可帮助开发者更好地理解并应用这两种技术。
57 1
|
3月前
|
Java 应用服务中间件 Apache
使用IDEA修改Web项目访问路径,以及解决Apache Tomcat控制台中文乱码问题
本文介绍了在IntelliJ IDEA中修改Web项目访问路径的步骤,包括修改项目、模块、Artifacts的配置,编辑Tomcat服务器设置,以及解决Apache Tomcat控制台中文乱码问题的方法。
177 0
使用IDEA修改Web项目访问路径,以及解决Apache Tomcat控制台中文乱码问题
|
3月前
|
C# 开发者 Windows
WPF遇上Office:一场关于Word与Excel自动化操作的技术盛宴,从环境搭建到代码实战,看WPF如何玩转文档处理的那些事儿
【8月更文挑战第31天】Windows Presentation Foundation (WPF) 是 .NET Framework 的重要组件,以其强大的图形界面和灵活的数据绑定功能著称。本文通过具体示例代码,介绍如何在 WPF 应用中实现 Word 和 Excel 文档的自动化操作,包括文档的读取、编辑和保存等。首先创建 WPF 项目并设计用户界面,然后在 `MainWindow.xaml.cs` 中编写逻辑代码,利用 `Microsoft.Office.Interop` 命名空间实现 Office 文档的自动化处理。文章还提供了注意事项,帮助开发者避免常见问题。
224 0
|
5月前
|
前端开发 JavaScript API
探索现代Web开发中的动态数据交互——前端与后端整合实战
本文探讨了现代Web开发中前端与后端整合的关键技术点,通过实际案例演示了如何利用JavaScript和Node.js实现动态数据交互,全面解析从数据请求到响应的全过程。
209 18
|
4月前
|
搜索推荐 UED Python
动态多条件查询:理解`filter_by`与`filter`提升Web应用搜索功能
通过深入理解filter_by与filter的异同,并结合使用它们,我们可以构建一个既灵活又强大的动态多条件查询系统。这不仅提升了Web应用的搜索功能,也为用户提供了更加个性化的搜索体验。希望本文能够启发你在自己项目中实现类似的功能,以满足用户多变的搜索需求。
|
5月前
|
JavaScript 程序员 应用服务中间件
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(2)
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(2)
58 7
|
4月前
|
搜索推荐 UED Python
动态多条件查询:理解`filter_by`与`filter`提升Web应用搜索功能
了解SQLAlchemy中`filter_by`与`filter`对提升Web应用搜索功能至关重要。`filter_by`简化了等值查询,而`filter`则支持复杂的表达式和逻辑组合。通过动态获取用户输入,构建基础查询并根据条件应用过滤,可以创建灵活的搜索系统。结合分页和排序,为用户提供定制化搜索体验。掌握这两者,能增强应用的交互性和实用性。
81 0
动态多条件查询:理解`filter_by`与`filter`提升Web应用搜索功能
|
5月前
|
XML 存储 JavaScript
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(1)
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(1)
64 5
下一篇
无影云桌面