HttpServlet

  • 因为每次执行前端请求,都需要获取前端的请求方式,都需判断前端的请求方式和后端是否一致,随意这段代码就可以封装起来。

  • 写一个HttpServlet类去继承GenericServlet,然后在这里面强制类型转换,获取前端请求方式,判断请求方式是get还是post,如果前端请求方式和后端不一致,那么提示错误信息。

  • 以后的Servlet直接继承HttpServlet就可以了,如果需要get请求,那么久重写doGet()方法,如果需要post请求,那么久重写doPost方法就可以了,如果前端请求和后端不一致,那么就会自动报错,一致就会走子类重写后的方

  • 代码 :

     import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter; public class HttpServlet extends GenericServlet {
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { //强制类型转换
HttpServletRequest request=(HttpServletRequest) servletRequest;
HttpServletResponse response=(HttpServletResponse) servletResponse; //再次调用service方法,将强制类型转换后的参数传进去,利用方法重载机制,重写一个service方法。
service(request,response);
} public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取前台的请求方式
String method=request.getMethod(); //判断请求方式,执行不同的方法
if(("GET").equals(method)){
doGet(request,response);
}else if(("POST").equals(method)){
doPost(request,response);
}
} public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
//设置字符集,创建字符输出流
response.setContentType("text/html;charset=UTF-8");
PrintWriter out=response.getWriter(); //输出错误提示信息
out.print("前端请求方式与后端不一致");
throw new RuntimeException("前端请求方式与后端不一致");
} public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
//设置字符集,创建字符输出流
response.setContentType("text/html;charset=UTF-8");
PrintWriter out=response.getWriter(); //输出错误提示信息
out.print("前端请求方式与后端不一致");
throw new RuntimeException("前端请求方式与后端不一致");
}
}

JAVAEE_Servlet_13_HttpServlet的更多相关文章

随机推荐

  1. 20201228 买卖股票的最佳时机 IV(困难)

    给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 k 笔交易. 注意:你不能同时参 ...

  2. 从微信小程序到鸿蒙js开发【15】——JS调用Java

    鸿蒙入门指南,小白速来!0基础学习路线分享,高效学习方法,重点答疑解惑--->[课程入口] 目录:1.新建一个Service Ability2.完善代码逻辑3.JS端远程调用4.<从微信小 ...

  3. Kubernetes 实战 —— 01. Kubernetes 介绍

    简介 P2 Kubernetes 能自动调度.配置.监管和故障处理,使开发者可以自主部署应用,并且控制部署的频率,完全脱离运维团队的帮助. Kubernetes 同时能让运维团队监控整个系统,并且在硬 ...

  4. 二叉树、平衡二叉树、红黑树、B树、B+树与B*树

    转: 二叉树.平衡二叉树.红黑树.B树.B+树与B*树 一.二叉树 1️⃣二叉查找树的特点就是左子树的节点值比父亲节点小,而右子树的节点值比父亲节点大,如图: 基于二叉查找树的这种特点,在查找某个节点 ...

  5. 记录安装freeswitch的日常

    已知安装版本:Linux:Centos7 Freeswitch:1.10.2 解: 注意:(最好呢是先下载好包,然后上传到这个所用的环境中) 1.安装对应依赖 yum install -y git a ...

  6. Ext.Net一般处理程序上传文件

    引言 最近公司项目全部转向前端化,故所有aspx页面业务逻辑尽可能的转到用户控件前台页面完成.以方便每次发布项目时只是替换前端页面不会影响客户体验. 既然转到前台逻辑,那么必须走后台的业务也就单独封装 ...

  7. 翻译:《实用的Python编程》04_00_Overview

    目录 | 上一节 (3 程序组织) | 下一节 (5 Python对象的内部工作原理) 4. 类和对象 到目前为止,我们的程序仅使用了内置的 Python 数据类型.本节,我们介绍类(class)和对 ...

  8. IDEA 远程调试服务器代码

    在 /home/ttx/app/uco-azj/catalina/30017/bin/set_env.sh export CATALINA_OPTS="-Xms1g -Xmx2g -XX:+ ...

  9. 爬虫必知必会(6)_提升scrapy框架爬取数据的效率之配置篇

    如何提升scrapy爬取数据的效率:只需要将如下五个步骤配置在配置文件中即可 增加并发:默认scrapy开启的并发线程为32个,可以适当进行增加.在settings配置文件中修改CONCURRENT_ ...

  10. 对于如何从SM2的pfx证书文件中解析公钥和私钥,并从二次加密的密文中解密

    首先呢,由于我的域名之前处理点问题,然后备案第二个网站时候,第一个网站没法访问,所以备案没过,阿里云告诉我要删除一个网站的备案,但是他没告诉我要删除主体,所以我的备案主体成了空壳主体,要传真或者发快递 ...