本身动手设计java web框架(一)-封装请求拦截器DispatchServlet

前言:

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

什么是拦截器?

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

自定义拦截器:

    首先,咱们须要本身建立一个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 以后交给另一个函数进行处理url

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

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

总结:

    框架重的拦截器基本原理这里差很少就讲完了,下一节会给你们讲到自定义注解,以及经过反射获取注解对应的方法。.net

相关文章
相关标签/搜索