关于idea中tomcat的虚拟路径的个人理解及遇到的问题

idea设置虚拟路径的个人理解:

对于tomcat来说,一个项目部署到webapps下之后,就可以通过具体的路径进行对项目的访问
而idea会为每一个tomcat部署的项目单独建立一份配置文件
        * 查看控制台的log:Using CATALINA_BASE:   "C:\Users\12876\.IntelliJIdea2018.2\system\tomcat\_StageThree"
            在其中的conf\Catalina\localhost\起的虚拟路径名.xml文件
            <?xml version="1.0" encoding="UTF-8"?>
            <Context path="/day13_servlet" docBase="D:\IdeaProjects\StageThree\out\artifacts\day13_servlet_war_exploded" />

            path代表虚拟路径   docBase代表项目的真正所在位置

        * 相当于将项目真正位置的文件放在一个起的虚拟路径的文件夹中,放在了tomcat的webapps下(实际并不是这样)

遇到的问题:

当idea设置了虚拟路径 day13_servlet时form表单中的action="/day13_servlet/hello"
    而在继承httpServlet类中的注解只写@WebServlet("/hello"); ?

    解释:因为注解是从虚拟目录后开始算的.是从day13_servlet后开始的,所以只写/hello

   另一种解释:action是客户端的提交,客户端并不知道虚拟路径,所以要加上虚拟路径,而servlet是服务器内部的,是知道虚拟路径的,所以不需要加上虚拟路径,同理,servlet内部的转发属于服务器内部跳转,也是不需要加上虚拟路径的

猜你喜欢

转载自blog.csdn.net/qq_35472880/article/details/82694505