浅谈HttpServlet之重写doGet、doPost

举报
QGS 发表于 2023/02/20 21:16:08 2023/02/20
【摘要】 浅谈HttpServlet之重写doGet、doPost
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对象

重写doGetdoPost

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

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

405错误表示前端发送的请求方式与后端请求的处理方式不一致。
重写HttpServlet的service方法,web页面享受不到405服务。

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>



GETPOST的区别

POST请求:在使用<form>表单,并且使用from标签的时候 method="post"。其他请求都是get请求。
Get请求发送数据的时候,数据会挂在URI的后面,并且URI后面有?,?后面是数据。这样会导致发送的数据回显在浏览器的地址栏上。
Post请求发送数据的时候,在请求体中发送。不会显示到地址栏上。
Get请求和Post请求,发送的请求数据格式是完全相同的。位置不同,格式都是统一的。

Get请求无法发送大数据量,只能发送普通字符,发送的字符串长度有限制,不同的浏览器限制不同。
Post请求可以发送任何类型的数据,没有长度限制。
GET请求,适合从数据端获取数据。
POST请求,比较适合向服务器端传送数据。(修改服务器端的资源)
Get请求是绝对安全的。Get请求只是为了从服务器获取数据
Post请求是危险的。Post请求是向服务器提交数据,如果这些数据从后门的方式进入到服务器当中,服务器很危险。

缓存
Get请求支持缓存。
Post请求不支持缓存。
发送Get请求,浏览器先从本地浏览器缓存中寻找资源,当找不到时向服务器请求资源。
如:文件上传POST请求
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。