Intellij 配置Tomcat Web项目访问路径

在Intellij中配置Tomcat参考这篇文章
IntelliJ 2016.2 IDEA 中进行 Java Web 项目开发配置

过程中有几个问题需要搞明白

Intellij 配置Tomcat Web项目访问路径_第1张图片
应用上下文
  1. 如果使用默认的应用上下文那么访问应用时候的url就是 http://localhost:8080/
  2. 如果把上下文改为自己的项目名称 /MyProject 那么访问的url就是 http://localhost:8080/MyProject
Intellij 配置Tomcat Web项目访问路径_第2张图片
项目结构
  • 下面这个form表单原本写的有点问题,action原本写的是 "/request" 和 web.xml中的 url-pattern写的一样,当我点击提交的时候,网页提示404找不到资源。

先看一下下面的URL:
http://192.168.1.1:8080/hello/index.html
一个URL由
服务器地址: http://192.168.1.1:8080
WEB应用上下文: /hello
网页或请求: /index.html
三个部分组成。
WEB应用发布时,WEB应用上下文可以自行指定,如放在ROOT/下的话,WEB应用上下文就是空,如:
http://192.168.1.1:8080/index.html
它的WEB应用上下文就是空。
HTML协议中要求,form的action属性,以“/”开头是绝对路径,不以“/”开头的是相对路径。
绝对路径是相对于服务器地址而言的,相对路径是相对于当前网页或请求而言的。
举一个例子,你的当前网页位置是:
http://192.168.1.1:8080/hello/page/index.html
其中/hello是WEB应用上下文;/page/index.html是网页。
在这个网页上有一个请求需要指向
http://192.168.1.1:8080/hello/servlet/checkUser.cgi
index.html中的form应该怎么写呢?
可以写成绝对路径(相对于http:/192.168.1.1:8080)


...

也可以写成相对路径(相对于http://192.168.1.1:8080/hello/page)

...

由上可以看出,原本写的 "/request" 是相对于服务器地址而言的,因此当我点击提交时,由

跳向了

导致找不到资源。
将 action 从 "/request'改为"request"后,从相对于服务器地址改为了相对于项目地址,即
/request 对应着 localhost:8080/request
request 对应着 localhost:8080/MyProject/request

所以现在我们可以有两种写法(前提是Application Context 设置为 /MyProoject)

  1. /MyProject/request (以"/"开头,再加上项目名)
  2. request (不以"/"开头,直接写)
Intellij 配置Tomcat Web项目访问路径_第3张图片
form.html
Intellij 配置Tomcat Web项目访问路径_第4张图片
web.xml

建议配置

  1. Application Context 设置为 /项目名
  2. form action="/项目名/requset"
  3. web.xml中设置url-pattern为 /request
    这样设置,无论从intellij中启动web项目,还是手动启动comcat,访问servlet都没有问题

而关于 servlet的url-pattern匹配规则详细描述,查看这篇文章,写的很详细了

你可能感兴趣的:(Intellij 配置Tomcat Web项目访问路径)