Java学习笔记 --- Servlet(1)
创始人
2024-05-30 13:22:46
0

一、Servlet技术 

1、Servlet基本介绍

1、Servlet 是 JavaEE 规范之一。规范就是接口

2、Servlet 就 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。

3、Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。

 

2、手动实现Servlet程序

1、编写一个类去实现 Servlet 接口

2、实现 service 方法,处理请求,并响应数据

package com.javaweb.servlet;import javax.servlet.*;
import java.io.IOException;public class HelloServlet implements Servlet {@Overridepublic void init(ServletConfig servletConfig) throws ServletException {}@Overridepublic ServletConfig getServletConfig() {return null;}/*** service方法是专门用来处理请求和响应的* @param servletRequest* @param servletResponse* @throws ServletException* @throws IOException*/@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("hello Servlet 被访问");}@Overridepublic String getServletInfo() {return null;}@Overridepublic void destroy() {}
}

 

3、到 web.xml 中去配置 servlet 程序的访问地址


HelloServletcom.javaweb.servlet.HelloServletHelloServlet/hello

 

3、url地址到Servlet程序的访问 

 

4、Servlet的生命周期

1、执行 Servlet 构造器方法

2、执行 init 初始化方法

      第一、二步,是在第一次访问,的时候创建 Servlet 程序会调用。

3、执行 service 方法

      第三步,每次访问都会调用。

4、执行 destroy 销毁方法

      第四步,在 web 工程停止的时候调

 

5、GET 和 POST 请求的分发处理

package com.javaweb.servlet;import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;public class HelloServlet implements Servlet {@Overridepublic void init(ServletConfig servletConfig) throws ServletException {}@Overridepublic ServletConfig getServletConfig() {return null;}/*** service方法是专门用来处理请求和响应的* @param servletRequest* @param servletResponse* @throws ServletException* @throws IOException*/@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("hello Servlet 被访问");// 类型转换(因为它有 getMethod()方法)HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;// 获取请求的方式String method = httpServletRequest.getMethod();if ("GET".equals(method)) {doGet();} else if ("POST".equals(method)) {doPost();}}/*** 做 get 请求的操作*/public void doGet(){System.out.println("get 请求");System.out.println("get 请求");}/*** 做 post 请求的操作*/public void doPost(){System.out.println("post 请求");System.out.println("post 请求");}@Overridepublic String getServletInfo() {return null;}@Overridepublic void destroy() {}
}

 

6、通过继承HttpServlet实现Servlet程序

一般在实际项目开发中,都是使用继承 HttpServlet 类的方式去实现 Servlet 程序。

1、编写一个类去继承 HttpServlet 类

2、根据业务需要重写 doGet 或 doPost 方法

3、到 web.xml 中的配置 Servlet 程序的访问地址 

Servlet 类的代码:

package com.javaweb.servlet;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class HelloServlet2 extends HttpServlet {/*** doGet()在 get 请求的时候调用* @param req* @param resp* @throws ServletException* @throws IOException*/@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("HelloServlet2 的 doGet 方法");}/***  doPost()在 post 请求的时候调用* @param req* @param resp* @throws ServletException* @throws IOException*/@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("HelloServlet2 的 doPost 方法");}
}

web.xml 中的配置:

    HelloServlet2com.javaweb.servlet.HelloServlet2HelloServlet2/hello2

 

7、使用IDEA创建Servlet程序

配置 Servlet 的信息:

 

8、Servlet 类的继承体系

 

 

二、HTTP协议

        协议是指双方,或多方,相互约定好,大家都需要遵守的规则,叫协议。 所谓 HTTP 协议,就是指,客户端和服务器之间通信时,发送的数据,需要遵守的规则,叫 HTTP 协议。 HTTP 协议中的数据又叫报文。

 

1、请求的HTTP协议格式

客户端给服务器发送数据叫请求。 服务器给客户端回传数据叫响应。

请求又分为 GET 请求,和 POST 请求两种

 

GET 请求

1、请求行

      (1) 请求的方式 GET

      (2) 请求的资源路径[+?+请求参数]

      (3) 请求的协议的版本号 HTTP/1.1

2、请求头 key : value 组成 不同的键值对,表示不同的含义

 

POST 请求

1、请求行

      (1) 请求的方式 POST

      (2) 请求的资源路径[+?+请求参数]

      (3) 请求的协议的版本号 HTTP/1.1

2、请求头 key : value 组成 不同的键值对,表示不同的含义

3、请求体 ===>>> 就是发送给服务器的数据

 

2、常用请求头的说明 

 Accept: 表示客户端可以接收的数据类型

Accpet-Languege: 表示客户端可以接收的语言类型

User-Agent: 表示客户端浏览器的信息

Host: 表示请求时的服务器 ip 和端口号

 

3、哪些是 GET 请求,哪些是 POST 请求

GET 请求有哪些:

1、form 标签 method=get

2、a 标签

3、link 标签引入 css

4、Script 标签引入 js 文件

5、img 标签引入图片

6、iframe 引入 html 页面

7、在浏览器地址栏中输入地址后敲回车

 

POST 请求有哪些:  

1、form 标签 method=post

 

4、响应的 HTTP 协议格式

1、响应行

      (1) 响应的协议和版本号

      (2) 响应状态码

      (3) 响应状态描述符

2、响应头

      key : value 不同的响应头,有其不同含义 空行

3、响应体 ---->>> 就是回传给客户端的数

 

5、常用的响应码说明

200 表示请求成功

302 表示请求重定向

404 表示请求服务器已经收到了,但是你要的数据不存在(请求地址错误)

500 表示服务器已经收到请求,但是服务器内部错误(代码错误)

 

6、MIME 类型说明

MIME 是 HTTP 协议中数据类型。

MIME 的英文全称是"Multipurpose Internet Mail Extensions" 多功能 Internet 邮件扩充服务。

MIME 类型的格式是“大类型/小 类型”,并与某一种文件的扩展名相对应。

常见的 MIME 类型:

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...