首先再次了解接口的定义:
一、接口是什么?
接口是抽象的抽象(抽象类是具体的抽象)。
例如制作一款运动手表,接口就是产品需要实现的功能。我这款手表要实现与APP的结合,要实现来电的提醒,要实现闹铃的设置,要实现心率的实时监控,要实现步数的记录...... 我不会告诉你任何具体的实现方法,我只会给你一个产品功能的框架,而如果你是我团队的一员,要来制作这款运动手表,那么你就一定要把我定义的内容全部实现。
即“如果你是......, ,就必须......”
这就是接口,在程序中,它就相当于是一个类的行为规范。
————————————————
版权声明:以上为CSDN博主「葡萄籽PP」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
以上文字链接:https://blog.csdn.net/www_chinese_com/article/details/83472366
二、servlet UML关系图,通过图的关系清晰看到他们之间的联系:
从图中,可以看出:
1.抽象类HttpServlet继承抽象类GenericServlet,其有两个比较关键的方法,doGet()和doPost()
2.GenericServlet实现接口Servlet,ServletConfig,Serializable
3.MyServlet(用户自定义Servlet类)继承HttpServlet,重写抽象类HttpServlet的doGet()和doPost()方法
注:任何一个用户自定义Servlet,只需重写抽象类HttpServlet的doPost()和doGet()即可,如上图的MyServlet
三、servlet的执行过程
流程分析:
浏览器向服务器发送Get或Post请求
服务器上的容器接收HTTP请求,从而产生两个对象:HttpServletRequest和HttpServletResponse
加载servlet,实例化Servlet后,执行init()方法
调用Servlet中的Service()方法
service()方法根据请求类型调用doGet()或者doPos()方法
doGet()或者doPost()处理后,由web容器调用返回给浏览器
执行destroy(),销毁线程
————————————————
版权声明:本文为CSDN博主「酸柠檬淋上醋」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hhhhhaa444/article/details/112980618
6.4、Mapping问题
1. 一个Servlet可以指定一个映射路径
```xml
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
```
Localhost:8080/s1/hello
2. 一个Servlet可以指定多个映射路径
```xml
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</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>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello4</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello5</url-pattern>
</servlet-mapping>
```
3. 一个Servlet可以指定通用映射路径
```xml
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello/*</url-pattern>
</servlet-mapping>
```
重启
4. 默认请求路径
```xml
<!--默认请求路径-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
```
5. 指定一些后缀或者前缀等等….
```xml
<!--可以自定义后缀实现请求映射
注意点,*前面不能加项目映射的路径
hello/sajdlkajda.qinjiang
-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>*.qinjiang</url-pattern>
</servlet-mapping>
```
测试
6. 优先级问题
指定了固有的映射路径优先级最高,如果找不到就会走默认的处理请求;
```xml
<!--404-->
<servlet>
<servlet-name>error</servlet-name>
<servlet-class>com.kuang.servlet.ErrorServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>error</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
```
启动
————————————————
版权声明:本文为CSDN博主「mumaren4682」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_23889885/article/details/106210916