HttpServlet

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

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

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

  • 代码 :

  1. import javax.servlet.GenericServlet;
  2. import javax.servlet.ServletException;
  3. import javax.servlet.ServletRequest;
  4. import javax.servlet.ServletResponse;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import java.io.IOException;
  8. import java.io.PrintWriter;
  9. public class HttpServlet extends GenericServlet {
  10. @Override
  11. public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
  12. //强制类型转换
  13. HttpServletRequest request=(HttpServletRequest) servletRequest;
  14. HttpServletResponse response=(HttpServletResponse) servletResponse;
  15. //再次调用service方法,将强制类型转换后的参数传进去,利用方法重载机制,重写一个service方法。
  16. service(request,response);
  17. }
  18. public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  19. //获取前台的请求方式
  20. String method=request.getMethod();
  21. //判断请求方式,执行不同的方法
  22. if(("GET").equals(method)){
  23. doGet(request,response);
  24. }else if(("POST").equals(method)){
  25. doPost(request,response);
  26. }
  27. }
  28. public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
  29. //设置字符集,创建字符输出流
  30. response.setContentType("text/html;charset=UTF-8");
  31. PrintWriter out=response.getWriter();
  32. //输出错误提示信息
  33. out.print("前端请求方式与后端不一致");
  34. throw new RuntimeException("前端请求方式与后端不一致");
  35. }
  36. public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
  37. //设置字符集,创建字符输出流
  38. response.setContentType("text/html;charset=UTF-8");
  39. PrintWriter out=response.getWriter();
  40. //输出错误提示信息
  41. out.print("前端请求方式与后端不一致");
  42. throw new RuntimeException("前端请求方式与后端不一致");
  43. }
  44. }

JAVAEE_Servlet_13_HttpServlet的更多相关文章

随机推荐

  1. 1090 Highest Price in Supply Chain——PAT甲级真题

    1090 Highest Price in Supply Chain A supply chain is a network of retailers(零售商), distributors(经销商), ...

  2. 必知必会之Java注解

    必知必会之Java注解 目录 不定期更新中-- 元注解 @Documented @Indexed @Retention @Target 常用注解 @Deprecated @FunctionalInte ...

  3. Vue学习笔记-jsonl转换显示工具JsonView安装及使用

    一  使用环境: windows 7 64位操作系统 二  jsonl转换显示工具JsonView安装及使用 1.下载: https://github.com/gildas-lormeau/JSONV ...

  4. [信号与系统]傅里叶变换、DFT、FFT分析与理解

    目录 一.前言 二.傅里叶变换 1.傅里叶级数 2.傅里叶级数系数求解 2.1.求解方法 2.2.三角函数的正交性 2.3.系数求解过程 2.4.关于傅里叶级数的个人感悟 3.引入复指数 4.总结 三 ...

  5. Java内存模型(JMM)是什么?JMM 通过控制主内存与每个线程的本地内存之间的交互,来提供内存可见性保证

    Java内存模型就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能保证效果一致的机制及规范. Java内存模型是根据英文Java Memo ...

  6. NodeJs 入门到放弃 — 入门基本介绍(一)

    码文不易啊,转载请带上本文链接呀,感谢感谢 https://www.cnblogs.com/echoyya/p/14450905.html 目录 码文不易啊,转载请带上本文链接呀,感谢感谢 https ...

  7. Python 学习笔记(3)

    Python 文件I/O 读取键盘输入: Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘: 1. raw_input #函数从标准输入读取一个行,并返回一个字符串(去掉结尾 ...

  8. EFCodeFirst Migrations数据库迁移

    EFCodeFirst Migrations数据库迁移 数据库迁移 1.生成数据库 修改类文件PortalContext.cs的静态构造函数,取消当数据库模型发生改变时删除当前数据库重建新数据库的设置 ...

  9. mysql索引的性能分析

    [前言]上一篇博客介绍了InnoDB引擎的索引机制,主要围绕B+树的建立,目录项记录里主键和页号,到页目录下的二分法定位数据:二级索引里的主键和索引列,及其回表操作.这一篇分析一下索引的性能,围绕如何 ...

  10. go 报错 import cycle not allowed

    运行时报错,import cycle not allowed : 查了goole大概知道了原因,还是导包类的问题,我检察了一下我的代码库,发现我昨天划分几个工具文件,里面的两个文件相互引用,就导致报i ...