Servlet原理和Mapping一些问题
1. Servlet原理
(1)浏览器发出Http请求给web容器 (首次访问给Servler)
(2) Request调用Servlet的Service方法,拿到请求之后并且把请求后的响应交给Response
(3)web容器读取响应信息并且响应给客户端
我们自己编写的实现类,重写这些方法只有两个作用:
(1)接收并处理请求
(2)给出响应的信息
Mapping一些相关问题
1.一个Servlet可以指定一个映射路径
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.lyh.Servlet.HelloServlet</servlet-class>
</servlet>
<!-- Servlet的请求路径-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello1</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Error</servlet-name>
<servlet-class>com.lyh.Servlet.Error</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Error</servlet-name>
<url-pattern>/Error1</url-pattern>
</servlet-mapping>
2.一个Servler可以指定多个映射路径
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello1</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello2</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello3</url-pattern>
</servlet-mapping>
3.一个Servler可以指定通用的映射路径
<!-- servlet的请求路径-->
<!-- 在<url-pattern>中可以通过自定义后缀实现映射 如*.wanghailin
注意点: *为通配符前面不能加项目映射的路径-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/*</url-pattern>//这样可以使http://localhost:8080/....都可以访问到这个页面
</servlet-mapping>
4.指定一些前缀或者后缀
<!-- servlet的请求路径-->
<!-- 在<url-pattern>中可以通过自定义后缀实现映射 如*.liyuhang
注意点: *为通配符前面不能加项目映射的路径-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>*.liyuhang</url-pattern>//***.liyuhang可以访问到这个页面
</servlet-mapping>
5.优先级问题:
指定了固有的映射路径优先级最高,如果找不到就会走默认的处理请求