Servlet的路径映射

先看代码块: 

  <servlet>
    <servlet-name>Controller</servlet-name>
    <servlet-class>com.ricardo.login.demo.web.controller.UserController</servlet-class>//包名+类名
  </servlet>
 
  <servlet-mapping>
    <servlet-name>Controller</servlet-name>
    <url-pattern>/login</url-pattern>//用户输入的或者浏览器跳转的路径
  </servlet-mapping>

<servlet></servlet>的作用是在服务器加载时将对应的Servlet加载,如果没有在web.xml中声明的Servlet是不能够正常进行访问的。其中的<servlet-name>Controller</servlet-name>看上去好像是Servlet的名称 ,其实只是Servlet的一个内部映射名称而已,<servlet-class>com.ricardo.login.demo.web.controller.UserController</servlet-class>是Servlet类的真实路径( 包名+类名 ),当我们直接将类名+包名交给用户访问的时候,因为名称相对比较长,用户比较容易出错,由于是直接写包名+类名,就会很容易将具体的访问路径暴露出来,这样,安全性就会大大的降低。相反,正是由于有了一个内部映射这样的机制,当我们修改内部的代码,改变类的路径的时候,只要保证映射的名称正常,对用户来说没有任何影响。

<serlvet-mapping></servlet-mapping>正是基于这样的原因而产生,其中<serlvet-mapping></servlet-mapping>中的<servlet-name></servlet-name>必须和<servlet></servlet>中的<servlet-name></servlet-name>保持一致,<url-pattern>/login</url-pattern>中的/login才是用户真正访问的路径,也就是浏览器通过该名称找到Servlet真正的路径!

  整一个的解析过程如下:

  当用户在浏览器输入一个url,如 http://localhost:8080/login时,服务器将其提交到Tomcat,Tomcat根据用户提交的url在web.xml中进行查找,首先是在<servlet-mapping>中查找,当找到<url-pattern>中有跟用户输入的url匹配时,获取mapping中的<servlet-name>中的值,这里是Servlet-Request,并且根据获取得到的值在<Servlet>中查找一个<servlet-name>与其匹配的值,然后获取<servlet-class>中的确切的类,生成Servlet对象,然后进行访问。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值