关于idea中Java Web项目的访问路径问题
作者:WinstonLau 发布时间:2023-01-04 21:23:32
说明
这里只以 servlet 为例,没有涉及到框架,但其实路径的基本原理和框架的关系不大,所以学了框架的同学如果对路径有疑惑的也可以阅读此文
项目结构
在 idea 中新建一个 Java Web 项目,项目的初始结构如下 ( 不同版本的 idea 可能略有区别 ) :
默认访问路径
当我们将项目的基本配置设置好后,启动 Tomcat,会发现直接出现的是 index.jsp 页面,此时浏览器的地址栏显示的是:
localhost:8080
,也就是说项目默认跳转到了 index.jsp 页面,而且打开 web.xml 文件后,我们发现这里并没有配置 index.jsp 为首页,这点要注意非常重要的一点:做开发测试时,如果用了 index.jsp 这个页面做测试,一定要分清楚项目是启动的时候直接就跳转到了这个页面,还是经过了其它的路径才跳转到了这个页面,如果没有这个意识的话,很可能在实际开发中会出现问题,所以一般不推荐用 index.jsp 作为测试页面
还是之前的设置不变,当我们在浏览器输入
localhost:8080/index.jsp
时,会发现显示的仍然是 index.jsp 页面,也就是说,jsp 页面的访问路径是直接从项目的 web 目录的下一级目录开始的,我们这里的 index.jsp 由于就是直接处于 web 目录的下一级,所以直接在 localhost:8080/ 后面加上文件名即可
jsp页面的访问路径
由之前的分析可知,如果我们在 web 目录下新建一个名为 jsps 的目录,然后里面有一个名为 demo.jsp 的文件,那么我们要想访问到这个文件,在浏览器地址栏中输入的就是 localhost:8080/jsps/demo.jsp
,此时项目结构如下:
说明: 这里并没有严格按照 Java Web 项目的结构那样建立 classes 和 lib 文件夹,然后进行配置,但对于这里要说明的问题而言并没有影响
servlet文件的访问路径
在 src 目录下新建一个名为 com.lwx.servlet 的包,然后在这个包下新建一个名为 DemoServelt 的 servlet 类,此时项目结构如下:
servlet 文件的访问路径我们可以在 web.xml 中自己配置(使用的是 url-pattern 标签),或者是使用注解的形式(使用的是 urlPatterns 属性),不管采用哪种形式,其对应的值都和我们的访问路径有关(如果两种形式同时采用,实测只有 web.xml 中的配置生效,也就是说此时如果以注解中配置的路径来访问 servlet 是会报 404 的)
对于 idea 来说,servlet 的访问路径比较简单,直接在 localhost:8080 后面加上我们自己配置的值即可
如果我们在 web.xml 中对其所做配置如下,则访问路径为
localhost:8080/DemoServlet
特别注意:如果这里的 url-pattern 的值写的是 /*
,那么当我们在浏览器的地址栏输入 localhost:8080
甚至是 localhost:8080/index.jsp
或者是 localhost:8080 后面跟上任何合法的字符串,访问的都是 DemoServlet 这个 servlet 类(细心的同学就会发现这里虽然输入了 localhost:8080/index.jsp
,但访问的并不是 index.jsp 这个文件,而是 DemoServlet 类)
如果我们使用注解的方式对其所做配置如下,则访问路径为 localhost:8080/DemoServlet
特别注意:name 属性的值需要和对应的类名一致
idea中独有的路径配置
打开 Run
—> Edit Configurations
—> Deployment
,在右侧有个 Application context
,这里的值也是和路径有关的
Application context
中填写的值会直接加到 localhost:8080
的后面,以之前的例子来说,本来 DemoServlet 这个 servlet 类的访问路径是 localhost:8080/DemoServlet
,如果在 Application context
中填写的是 /haha
,那么其访问路径就变成了 localhost:8080/haha/DemoServlet
,对于 jsp 页面的访问路径也是同样的道理
来源:https://blog.csdn.net/WinstonLau/article/details/80239271
猜你喜欢
- 1.构造器也就是在上一篇讲的那个例子,调用默认的无参构造函数2.静态工厂方法1)创建需要执行的方法的类public class HelloW
- List集合相信大家在开发过程中几乎都会用到。有时候难免会遇到集合里的数据是重复的,需要进行去除。然而,去重方式有好几种方式,你用的是哪种方
- 异常算术异常类:ArithmeticExecption空指针异常类:NullPointerException类型强制转换异常:ClassCa
- Java类之间的关系图在Java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们
- .net.Frameword中提供了一个专门产生随机数的类System.Random,此类默认情况下已被导入,编程过程中可以直接使用。我们知
- 1 基本概念ThreadLocal类提供了线程局部变量。这些变量与普通变量的不同之处在于,每个访问一个变量(通过其get或set方法)的线程
- 问题描述最近IDEA抽风了,不管是新建SpringBoot工程,还是导入项目。IDEA代码里面都会飘红~Build项目时,会提示错误:错误:
- 一、解决的痛点 1、免搭建后端开发环境。 &n
- 前言本文将重点讲解一下Spring中@PropertySource注解的使用,如何通过PropertySource注解加载指定的配置文件。以
- Java float和double精度范围大小要想理解float和double的取值范围和计算精度,必须先了解小数是如何在计算机中存储的:举
- SpringBoot2底层注解一、@ImportResource@Conditional注解,是根据条件进行装配。满足了 Condition
- 一、查询中排除标识字段1.1 测试查询@Testpublic void findAllTest() { List&
- java常量池技术java中常量池技术说的通俗点就是java级别的缓存技术,方便快捷的创建一个对象。当需要一个对象时,从池中去获取(如果池中
- this:this理解为:当前对象 或 当前正在创建的对象可以调用的结构:属性、方法;构造器this调用属性、方法:先了解一下形参:形参的意
- 本文主要介绍的是通过使用java的相关类可以实现对文件或文件夹的压缩。zlib是一种数据压缩程序库,它的设计目标是处理单纯的数据(而不管数据
- 一:算术运算符1.算术运算符有哪些①基本四则运算符:+ - * / %②增量赋值运算符:+= -= *= /= %=③自增/自减运算符++
- 本文实例讲述了Java解析Excel内容的方法。分享给大家供大家参考。具体实现方法如下:import java.io.File;
- 1. 日志框架的选择:(这两个框架,springBoot已经整合,无需引入jar包)2. 在resources目录下配置logback-sp
- MAC设置JDK环境变量1、sudo vim ~/.bash_profile2、设置内容 (写自己的JDK路径,有两种方式查看)JAVA_H
- 一、开源项目 Javascript .NET地址: http://javascriptdotnet.codeplex.com/ 它是Goog