博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自己动手设计java web框架(一)-封装请求拦截器DispatchServlet
阅读量:7081 次
发布时间:2019-06-28

本文共 1298 字,大约阅读时间需要 4 分钟。

hot3.png

前言:

    之前刚刚学习java web编程之时,感觉Servlet不怎么好用,有时候用起来很麻烦,当时由于自己的经验不足实行起来有点困难,所以就放在了一旁,现在因为自己也做过些些许许项目,有了一点经验,而且正好放假了有一些时间,于是决定实现下自己之前的想法。

什么是拦截器?

    在开始动手之前,要讲一下什么是拦截器?在这个框架中拦截器的作用主要是用来拦截网页的请求的一个Servlet。在最开始的学习的Servlet程序中,每一个路径都需要在web.xml中配置它所对应的Servlet,这样做在Url路径多的时候,会让web.xml变得非常大,并且非常非常多的Servlet,让服务器端显得非常庞大冗余,所以这时候就需要定义一个Servlet,也就是上面所说的拦截器,通过这个Servlet,可以拦截所有的请求,并且把这些请求交给某些具体的方法处理,并且返回。

自定义拦截器:

    首先,我们需要自己创建一个java web应用程序,如下图

,然后可以通过Tomcat跑起来,之后我们需要自己创建一个Servlet来作为我们的拦截器

因为这里我们需要自己封装个servlet来处理请求,所以这个Servlet就不是继承于HttpServlet,而是继承于HttpServlet的父类GenericServlet,并且序列化这个类,这里不清楚Servlet的工作原理的同学可以看下我的这篇博客:http://my.oschina.net/u/2505383/blog/649585,之后我们就需要通过web.xml来进行配置

规定我们部署的目录下所有的请求交给这个Servlet进行处理。

编写拦截器:

   上面操作完了之后,我们就需要对DispatchServlet中的service方法进行重写:

主要是进行ServletRequest -> HttpServletRequet 之后交给另外一个函数进行处理

public void service(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws ServletException, IOException {        String url = servletRequest.getRequestURI();        String method = servletRequest.getMethod();    /**     * 之后会做对请求进行分发     */}

在这个函数中我们可以通过 servletRequest.getRequestURI()获取请求路径,servletRequest.getMethod()获取请求方式,获取到路劲和方法,我们在这之后会对请求路径进行处理,让这个路径执行它所对应的方法。

总结:

    框架重的拦截器基本原理这里差不多就讲完了,下一节会给大家讲到自定义注解,以及通过反射获取注解对应的方法。

转载于:https://my.oschina.net/u/2505383/blog/715312

你可能感兴趣的文章
Python Day 8: html 基本知识
查看>>
2012年4月19日
查看>>
UVA 11090 Going in Cycle!! 二分答案 + bellman-ford
查看>>
final,static,super,this
查看>>
LeetCode解题思路:442. Find All Duplicates in an Array
查看>>
解决BCG库示例程序中的一个诡异编译错误
查看>>
Linux常用命令
查看>>
gradle-遇到的问题
查看>>
C#生成唯一的字符串或者数字
查看>>
sql server标识一个字符在这一列中是第几次出现
查看>>
如何使用MFC连接Access数据库
查看>>
js与多行字符串
查看>>
基于bootstrap的后台管理系统
查看>>
基于物联网的窨井盖监测系统
查看>>
隐藏书签与书签隐藏
查看>>
Java接口回调机制详解
查看>>
PHPCMS V9静态化HTML生成设置及URL规则优化
查看>>
Mysql命令大全
查看>>
转---c#,从不是创建它的线程访问
查看>>
Linq三种查询
查看>>