java web 配置访问路径_Intellij 配置Tomcat Web项目访问路径

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

2890d0e67e0d

应用上下文

如果使用默认的应用上下文那么访问应用时候的url就是 http://localhost:8080/

如果把上下文改为自己的项目名称 /MyProject 那么访问的url就是 http://localhost:8080/MyProject

2890d0e67e0d

项目结构

下面这个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" 是相对于服务器地址而言的,因此当我点击提交时,由

2890d0e67e0d

跳向了

2890d0e67e0d

导致找不到资源。

将 action 从 "/request'改为"request"后,从相对于服务器地址改为了相对于项目地址,即

/request 对应着 localhost:8080/request

request 对应着 localhost:8080/MyProject/request

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

/MyProject/request (以"/"开头,再加上项目名)

request (不以"/"开头,直接写)

2890d0e67e0d

form.html

2890d0e67e0d

web.xml

建议配置

Application Context 设置为 /项目名

form action="/项目名/requset"

web.xml中设置url-pattern为 /request

这样设置,无论从intellij中启动web项目,还是手动启动comcat,访问servlet都没有问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值