MVC框架

javaEE基础知识

MVC的工作流程就是Controller接受用户的请求,然后决定哪个Model来处理,最后数据处理的结果通过View来返回给用户。

Servlet

Servlet其实是运行在Web容器中的小程序,在以前的的版本servlet的配置要在web.xml中进行,3.0以后的版本可以通过注解来修改Servlet的属性。属性有name、urlPatterns、loadOnStartup等等

Servlet的访问流程,首先是服务器通过对mapping的匹配找到servlet的name,然后通过name找到servlet的class文件去执行。

Servlet,有对应HTTP的接口(GET、POST、DELETE、OPTIONS、HEAD、PUT、TRACE)CONNECT
init()接口
在servlet实例化之后会自动调用
service()接口
用来执行任务的主要方法,需在init()方法调用后调用,每次服务器端接收到一个请求就会创建一个新的进程并调用服务。
doGet()/doPost()方法
根据不同的HTTP请求方式会动用不同的方法
destory()方法
当Servlet容器检测到一个Servlet对象应该从服务中被移除时就会调用destory方法。
getServletConfig方法返回一些初始化参数
getSerletInfo返回一些作者版本等信息。

Servlet的生命周期

首先用户发送一个请求,然后容器(比如说tomcat)就回去找到对应的servlet,如果有对应的servlet那么服务器就会创建一个新的进程去创建Servlet实例调用init方法调用service方法然后返回数据。

filter

filter的配置也类似于servlet,可以使用web.xml也可以在高版本下使用注解,但是比较推荐使用web.xml
注解的参数有urlPatterns/value,initParams

概述就是
服务器根据应用程序配置文件设置的过滤规则进行检查,若客户请求满足过滤条件,则对请求/响应进行拦截,可以选择传递给资源处理器也可以选择直接返回请求,传给资源处理器的话响应的信息将逐级返回。

生命周期

1、在应用启动的时候就进行装载Filter类而servlet是在请求时才创建,根据配置文件中的每个过滤器,只创建一个实例
2、容器创建好Filter实例之后,调用init方法。随后被Web容器保存等待用户请求资源。
3、当用户访问的资源正好被Filter的url-pattern拦截时,容器会取出filter类调用dofilter方法,下次需要拦截的时候直接取出实例调用方法(单例多线程)
4、当应用被停止了或者重新装载了,则会执行Filter的destory方法,Filter对象销毁。