tomcat 或eclipse 修改访问地址不带项目名称(即/)

目标: 访问地址不带项目名称(即/)

有三种方法

第一种(eclipse修改)

这种方法的好处是,修改项目,再加载在tomcat里面时不需要配置

这里写图片描述
这里写图片描述

第二种(eclipse 中的tomcat 修改)

这里写图片描述
这第二种方法其本质与第三种方法相同,都是把server.xml 所加载的项目 的path修改了名称

第三种(在tomcat的server.xml里面修改)

这里写图片描述

下面是对MVC 的一些通读,来自老大的多年经验

Mvc的核心任务就是将 HTTP 请求的 URL 映射到某一个入口函数,概述中已经提到,映射的配置信息是通过注解 @ActionName已及@MethodName来设置的,两个注解也非常
简单,配置起来应该没有什么障碍。
@ActionName是配置到类名上,一般相同业务的访问会有一个公共部分,这样的请求基本都会放到同一个Action中,相同的部分就可以配置到@ActionName上。
@MethodName用来配置具体执行该业务的方法,所以加到方法上。
但是,依然在某些时候,你会在你的应用出现 404 错误,为了能让你在编写项目是,心里非常有底,这里将详细的解释一下JSP/Servlet 以及 Nutz.Mvc 映射部分的工作原理,在你遇到讨厌的 404 时,只要通读本文,相信就能找到问题的症结。

什么是 URL

任何 URL 都由如下部分组成
http://www.csdn.net /app /module /action

http:// - 协议,也可以是 https://;
www.csdn.net - 域名或者IP地址,由DNS服务器负责转发;
/app - Context的path,这个匹配到server.xml中每个的path属性,由HTTP服务负责转发;
/module /action - 从这里以后的匹配将交给相应的Context的web.xml,由HTTP
服务器根据web.xml来转发;
因此,我们主要研究的就是 /module /action 的部分是如何转发的。

web.xml中的映射url-pattern

通常,在 web.xml 中,我们可以声明各种 HttpServlet 子类,为了能让某一个子类接受 URL,就需要配置映射,众所周知你可以通过 ,为你的 Servelet 增加一组至多组的配置:
[web.xml]

MyServletName
/*

同样,根据 Servlet 的规范,你的 可以有如下几种形式的值:
假设你的 Context 的 URL 为 : http://localhost:8080/testweb

1、 web.xml 中的全匹配 - /*

转发到本 Context 的任何请求都会调用这个 Servlet,比如:
/abc
/abc /dosome
/index .jsp
/img /logo .png
如果请求为:
http://localhost:8080/testweb/abc/getlist
调用 request 对象不同方法将会返回的值:
req.getRequestURL() “http://localhost:8080/testweb/abc/getlist
req.getRequestURI() “/testweb/abc/getlist”
req.getPathInfo() “/abc/getlist”
req.getServletPath() “”

2、 web.xml 中的目录匹配 - /abc/*

转发到本Context的任何请求只要以/abc/开头,都会调用这个Servlet,比如:
/abc
/abc /dosome
/abc /index .jsp
/img /logo .png
如果请求为:
http://localhost:8080/testweb/abc/getlist
调用 request 对象不同方法将会返回的值:
req.getRequestURL() “http://localhost:8080/testweb/abc/getlist
req.getRequestURI() “/testweb/abc/getlist”
req.getPathInfo() “/getlist”
req.getServletPath() “/abc”
因此我们可以认为,req.getPathInfo()的值是:
http://localhost:8080/testweb/abc/getlist.nut
—————————–^ 匹配 /abc/*,从这个位置之后的字符串

3、 web.xml 中的后缀匹配 - *.shtml

转发到本Context的任何请求只要以.shtml 结尾,都会调用这个Servlet,比如:
/abc .shtml
/abc /dosome.shtml
如果请求为:
http://localhost:8080/testweb/abc/getlist.shtml
调用 request 对象不同方法将会返回的值:
req.getRequestURL() “http://localhost:8080/testweb/abc/getlist.shtml
req.getRequestURI() “/testweb/abc/getlist.shtml”
req.getPathInfo() null
req.getServletPath() “/abc/getlist.shtml”

4、 web.xml 中的精确匹配 - /abc/getlist.shtml

转发到本 Context 的任何请求必须为 /abc/getlist.shtml,才会调用这个 Servlet
如果请求为:
http://localhost:8080/testweb/abc/getlist.shtml调用 request 对象不同方法将会返回的值:
req.getRequestURL() “http://localhost:8080/testweb/abc/getlist.shtml
req.getRequestURI() “/testweb/abc/getlist.shtml”
req.getPathInfo() null
req.getServletPath() “/abc/getlist.shtml”

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
添加项目到Eclipse Tomcat可能会遇到一些问题。首先,确保已经正确地安装了EclipseTomcat。在Eclipse中,打开“窗口”菜单,选择“首选项”。展开“服务器”节点,选择“运行时间环境”,确保正确设置了Tomcat的路径。如果没有正确设置路径,可以通过单击“添加”按钮,并选择Tomcat的安装路径来添加它。 接下来,确保已经正确地将项目添加到Eclipse中。在Eclipse中,选择“文件”菜单,选择“导入”。展开“一般”节点,选择“现有项目到工作区”。单击“下一步”,然后通过浏览按钮选择项目的根目录。确保选择了正确的项目,并且项目的目录结构正确地显示在“项目”列表中。然后单击“完成”按钮,将项目导入到Eclipse中。 如果项目已经成功导入到Eclipse中,但无法添加到Tomcat服务器上运行,可能是由于Tomcat服务器的配置问题。确保您在Tomcat服务器中正确地配置了项目。您可以通过在Eclipse的“项目资源”视图中右键单击项目,选择“属性”,然后展开“服务器”节点,选择您配置的Tomcat服务器,点击“应用并关闭”。这将确保项目与Tomcat服务器相关联。 如果以上步骤都正确执行,但项目仍无法添加到Tomcat服务器上,则可能是由于其他原因引起的。尝试重新启动EclipseTomcat服务器。确保没有其他进程在占用Tomcat服务器的端口。还可以尝试重新安装EclipseTomcat,以确保没有损坏的文件或配置。 如果问题仍然存在,请搜索相关的错误消息或日志以获取更多信息,并尝试在开发者社区或论坛上寻求帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值