HttpServlet

shuyepl 2022-06-07 15:25:00
Categories: Tags:

内容简介:HTTP 协议和 HttpServlet 类的简单了解

HTTP 协议

W3C 制定的一种超文本传输协议,B (浏览器)和 S(服务器)之间相互传输数据都要遵守, 这样 B(浏览器) 和 S(服务器) 可以实现解耦合,超文本的意思是不是普通的文本,而是声音、图像、视频等流媒体。

HTTP 协议包括:

请求协议中包含的内容我想了一下, 行头行体 好像背起来还可以

请求:浏览器向服务器发送数据 – > request

响应:服务器向浏览器发送数据 – > response

GET 请求和 POST 请求

到目前为止 ,对于 POST 请求,只有使用表单,且在表单中指明使用 POST 时,才会发送 POST 请求,而对于 GET 请求的情况就比较多了,像下面的情况都是 GET 的请求

两个请求的区别

模板方法设计模式

模板方法定义核心的算法骨架,具体的实现可以延迟到子类中去实现(定义为抽象方法)。模板类一般是抽象类,模板类中的模板方法一般是要加 final 修饰的,防止子类修改。

HttpServlet

jakarta.servlet.http 包下的类:

如果在 HttpServlet 的子类中没有重写父类的 doGet 等方法,那么,在子类调用 doGet 方法的时候就会报错,因为 HttpServlet 中不允许使用它内部的 doGet 等方法(这些方法就只会报错),这些方法必须要在子类中重写

doPost 和 doGet 方法不要在 HttpServlet 的子类中一起重写,这样没有意义(下面说到子类的,没有明确说明都是指的 HttpServlet 的子类)

HttpSevlet 类是用模板方法构造起来的类,所以,我们在编写继承了 HttpServlet 类的子类时,只需要重写相应的 doPost 方法,或者 doGet 方法等方法就可以了

Servlet 类的开发步骤

web 应用的欢迎页面

在访问路径中没有指定具体访问资源的时候(直接访问站点,也就是相应的 webapp ),会自动访问我们设置的访问页面

如何设置:在 web.xml 文件中将欢迎页面的文件配置到 welcome-file-list 标签中就行了,这里我直接在 web 文件夹下创建一个 index.html 文件,内容如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>这是站点的欢迎页面</title>
</head>
<body>
    <h1>欢迎访问我的页面</h1>
</body>
</html>

然后是 web.xml 中的内容

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">
    
    <!--这里下面的内容就是在配置欢迎页面了-->
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
</web-app>

然后在浏览器中直接访问该 web 应用的站点就可以直接访问这个页面了

001

从上面的内容中我们可以看到, welcome-file 标签中要填写的是欢迎页面的文件,而且该文件是从 webapp 的根目录进行查找的

欢迎页面可以配置多个:在 welcome-file-list 标签中可以配置多个 welcome-file 标签,这些标签的优先级越靠上的越高,上面的页面没有找到的,就向下查找

<welcome-file-list>
    <welcome-file>page1/page2/page.html</welcome-file>        <!--这个优先级比下面的标签高-->
    <welcome-file>index.html</welcome-file>                    <!--如果上面的页面没有找到,就会找这个页面-->
</welcome-file-list>

注意:如果我们配置的欢迎页面在 webapp 的根目录下,而且名字为 index.html 时可以不用配置欢迎页面,当我们访问站点的时候会自动访问这个页面(因为 Tomcat 服务器已经为我们配置好了)

配置欢迎页面的地方有两个:

当两个配置同时存在是,局部优先,CATALINA_HOME/conf/web.xml 文件中的配置信息为

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

欢迎页面就是一个资源,可以是静态资源( html ),也可以是动态资源( servlet )

WEB_INF 目录

这个目录下的文件是受保护的,在浏览器中不能通过路径直接访问


参考链接:https://www.bilibili.com/video/BV1Z3411C7NZ?p=22&share_source=copy_web