浅谈HttpServlet之重写doGet、doPost

简介: 200表示请求响应成功,正常结束。404表示访问资源不存在。405表示前端发送的请求方式与后端请求的处理方式不一致。

200表示请求响应成功,正常结束。

404表示访问资源不存在。

405表示前端发送的请求方式与后端请求的处理方式不一致。

500表示服务器端的程序出现异常。

Servlet(接口)- GenericServlet implements Servlet(抽象类) - HttpServlet extends GenericServlet(抽象类)

HttpServletRequest对象,封装了请求协议的全部内容。

HttpServletResponse对象,专门响应HTTP协议到浏览器的。

Servlet生命周期

第一次请求

Tomcat服务器通过反射机制,创建Servlet对象。

Tomcat服务器调用Servlet对象的init方法。

Tomcat服务器调用Servlet对象的Service方法处理请求。

第…次请求

Tomcat服务器调用Servlet对象的Service方法处理请求

Tomcat服务器关闭

Tomcat服务器调用Servlet对象的destroy方法,做销毁之前的准备工作。

Tomcat服务器销毁Servlet对象

重写doGet和doPost

6.png


若HttpServlet方法中没有init方法,会继续执行GenericServlet类中的init方法。

若HttpServlet方法中没有service方法,会继续执行GenericServlet类中的service方法。

//request.getMethod()方法获取的是请求方式。可能是其中之一:GET POST PUT DELETE HEAD OPTINS TRACE

405错误表示前端发送的请求方式与后端请求的处理方式不一致。

重写HttpServlet的service方法,web页面享受不到405服务。

4.png5.png

Web.Xml配置

<servlet>

   <servlet-name>HtServlect</servlet-name>

   <servlet-class>com.javaweb.Servlect.HtServlect</servlet-class>

</servlet>

<servlet-mapping>

   <servlet-name>HtServlect</servlet-name>

   <url-pattern>/Ht</url-pattern>

</servlet-mapping>

Index.html配置

<!DOCTYPE html>

<html lang="en">

<head>

   <meta charset="UTF-8">

   <title>Title</title>

</head>

<body>

<h1>get请求</h1>

<a href="/JavawebServlect/Ht">get请求</a>

<h1>Post 请求</h1>

   <form action="/JavawebServlect/Ht" method="post">

     username<input type="text" name="username"><br>

     <input type="submit" value="login">

   </form>

</body>

</html>





1.png2.png3.png



GET和POST的区别

POST请求:在使用<form>表单,并且使用from标签的时候 method="post"。其他请求都是get请求。

Get请求发送数据的时候,数据会挂在URI的后面,并且URI后面有?,?后面是数据。这样会导致发送的数据回显在浏览器的地址栏上。

Post请求发送数据的时候,在请求体中发送。不会显示到地址栏上。

Get请求和Post请求,发送的请求数据格式是完全相同的。位置不同,格式都是统一的。

Get请求无法发送大数据量,只能发送普通字符,发送的字符串长度有限制,不同的浏览器限制不同。

Post请求可以发送任何类型的数据,没有长度限制。

GET请求,适合从数据端获取数据。

POST请求,比较适合向服务器端传送数据。(修改服务器端的资源)

Get请求是绝对安全的。Get请求只是为了从服务器获取数据

Post请求是危险的。Post请求是向服务器提交数据,如果这些数据从后门的方式进入到服务器当中,服务器很危险。

缓存

Get请求支持缓存。

Post请求不支持缓存。

发送Get请求,浏览器先从本地浏览器缓存中寻找资源,当找不到时向服务器请求资源。

如:文件上传POST请求

目录
相关文章
|
SQL Java 数据库连接
Hive教程(08)- JDBC操作Hive
Hive教程(08)- JDBC操作Hive
1544 0
|
Oracle JavaScript Java
JDK的版本迭代特性(JDK9 - JDK20)
JDK的版本迭代特性(JDK9 - JDK20)
|
存储 弹性计算 Linux
阿里云账号注册、完成实名认证、试用云服务器和购买云服务器流程参考
本文为大家介绍新手用户从注册阿里云账号,完成实名认证,然后试用云服务器和购买云服务器的主要流程,适合初次购买和试用阿里云服务器的新手用户参考。
阿里云账号注册、完成实名认证、试用云服务器和购买云服务器流程参考
|
Java 编译器 Spring
面试突击78:@Autowired 和 @Resource 有什么区别?
面试突击78:@Autowired 和 @Resource 有什么区别?
15063 5
|
10月前
|
算法
记一次requests.get()返回数据乱码问题
【10月更文挑战第21天】使用`requests.get()`请求网页时遇到乱码问题,尝试通过设置`encoding`和使用`apparent_encoding`自动判断编码均无效。最终发现问题是由于请求头中的`Accept-Encoding`包含了`br`(Brotli压缩格式),导致响应内容未被正确解压。移除`Accept-Encoding`中的`br`后,问题得到解决。
308 7
|
11月前
|
存储 安全 API
12种最基本Web API:开发者的必学清单⭐
这些Web API 为创建高度互动和用户友好的网页应用开辟了无限可能。从存储和支付到地理位置和图形,掌握这些 API 可以提升您的Web开发技能。
531 2
|
11月前
|
关系型数据库 MySQL 索引
如果我需要一个联合索引,应该如何创建
【10月更文挑战第15天】如果我需要一个联合索引,应该如何创建
377 0
|
存储 消息中间件 API
RocketMQ实战:一个新的消费组初次启动时从何处开始消费呢?
RocketMQ实战:一个新的消费组初次启动时从何处开始消费呢?
RocketMQ实战:一个新的消费组初次启动时从何处开始消费呢?
|
JSON Java 测试技术
SpringBoot 整合 JUnit5
Spring Boot 2.2.0 版本开始引入 JUnit 5 作为单元测试默认库作为最新版本的JUnit框架,JUnit5与之前版本的Junit框架有很大的不同。由三个不同子项目的几个不同模块组成。 JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage JUnit Platform: Junit Platform是在JVM上启动测试框架的基础,不仅支持Junit自制的测试引擎,其他测试引擎也都可以接入。 JUnit Jupiter: JUnit Jupiter提供了JUnit5的新的编程模型,是JUnit5新特性的核心。
|
IDE Java 开发工具
Lombok - Generating equals/hashCode implementation but without a call to superclass
Lombok - Generating equals/hashCode implementation but without a call to superclass
1763 0