关于idea中Java Web项目的访问路径问题

作者:WinstonLau 时间:2023-01-04 21:23:32 

说明

这里只以 servlet 为例,没有涉及到框架,但其实路径的基本原理和框架的关系不大,所以学了框架的同学如果对路径有疑惑的也可以阅读此文

项目结构

在 idea 中新建一个 Java Web 项目,项目的初始结构如下 ( 不同版本的 idea 可能略有区别 ) :

关于idea中Java Web项目的访问路径问题

默认访问路径

  • 当我们将项目的基本配置设置好后,启动 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,此时项目结构如下:

关于idea中Java Web项目的访问路径问题

说明: 这里并没有严格按照 Java Web 项目的结构那样建立 classes 和 lib 文件夹,然后进行配置,但对于这里要说明的问题而言并没有影响

servlet文件的访问路径

在 src 目录下新建一个名为 com.lwx.servlet 的包,然后在这个包下新建一个名为 DemoServelt 的 servlet 类,此时项目结构如下:

关于idea中Java Web项目的访问路径问题

  • servlet 文件的访问路径我们可以在 web.xml 中自己配置(使用的是 url-pattern 标签),或者是使用注解的形式(使用的是 urlPatterns 属性),不管采用哪种形式,其对应的值都和我们的访问路径有关(如果两种形式同时采用,实测只有 web.xml 中的配置生效,也就是说此时如果以注解中配置的路径来访问 servlet 是会报 404 的)

  • 对于 idea 来说,servlet 的访问路径比较简单,直接在 localhost:8080 后面加上我们自己配置的值即可

  • 如果我们在 web.xml 中对其所做配置如下,则访问路径为 localhost:8080/DemoServlet

关于idea中Java Web项目的访问路径问题

特别注意:如果这里的 url-pattern 的值写的是 /*,那么当我们在浏览器的地址栏输入 localhost:8080 甚至是 localhost:8080/index.jsp 或者是 localhost:8080 后面跟上任何合法的字符串,访问的都是 DemoServlet 这个 servlet 类(细心的同学就会发现这里虽然输入了 localhost:8080/index.jsp ,但访问的并不是 index.jsp 这个文件,而是 DemoServlet 类)

如果我们使用注解的方式对其所做配置如下,则访问路径为 localhost:8080/DemoServlet

关于idea中Java Web项目的访问路径问题

特别注意:name 属性的值需要和对应的类名一致

idea中独有的路径配置

打开 Run —> Edit Configurations —> Deployment,在右侧有个 Application context,这里的值也是和路径有关的

关于idea中Java Web项目的访问路径问题

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

标签:idea,javaweb,访问,路径
0
投稿

猜你喜欢

  • Java 实现拦截器Interceptor的拦截功能方式

    2023-04-25 04:35:15
  • C#解决多IfElse判断语句和Switch语句问题的方法分享

    2023-04-06 18:36:22
  • 使用HandlerMethodArgumentResolver用于统一获取当前登录用户

    2023-04-20 12:09:16
  • Spring Data JPA中 in 条件参数的传递方式

    2023-11-08 06:45:47
  • Spark内存调优指南

    2022-07-28 09:22:25
  • C#操作 JSON方法汇总

    2023-01-23 06:49:59
  • java与c#的语法区别详细介绍

    2022-05-02 14:01:10
  • SpringBoot中dubbo+zookeeper实现分布式开发的应用详解

    2023-09-13 19:04:45
  • Java 字符终端上获取输入三种的方式分享

    2021-12-31 04:52:45
  • 浅谈Spring事务传播行为实战

    2022-07-04 01:54:44
  • Android简单实现天气预报App

    2022-11-05 05:50:32
  • pagehelper插件显示total为-1或1的问题

    2021-11-04 01:02:39
  • Kotlin基础学习之循环和异常

    2023-05-26 00:42:12
  • java 2d画图示例分享(用java画图)

    2023-07-25 22:03:52
  • 详解SpringBoot中添加@ResponseBody注解会发生什么

    2023-07-02 22:08:13
  • Maven 主模块和子模块pom.xml依赖声明

    2022-09-12 21:20:10
  • Opencv图像处理之轮廓外背景颜色改变

    2022-02-17 01:33:34
  • MyBatis多对多关联映射创建示例

    2023-08-09 06:40:10
  • Kotlin Option与Either及Result实现异常处理详解

    2022-03-31 17:33:18
  • android里TextView加下划线的几种方法总结

    2022-03-25 10:42:18
  • asp之家 软件编程 m.aspxhome.com