杜立巴人,站长图片,神精榜小说
mvc模式: web应用程序启动时 就会加载并初始化actionservler。 用户提交表单时, 一个配置好的actionform对象被创建, 并被填入表单相应的数据, actionservler根据struts-config.xml文件 配置好的设置决定是否需要表单验证, 如果需要就调用actionform的validate() 验证后选择将请求发送到哪个action, 如果action不存在, actionservlet会先创建这个对象, 然后调用action的execute()方法。 execute()从actionform对象中获取数据, 完成业务逻辑, 返回一个actionforward对象, actionservlet再把客户请求 转发给actionforward对象指定的jsp组件, actionforward对象指定的jsp生 成动态的网页,返回给客户。
1、拦截器是基于java反射机制的, 而过滤器是基于函数回调的。 2、过滤器依赖于servlet容器, 而拦截器不依赖于servlet容器。 3、拦截器只能对action请求起作用, 而过滤器则可以对几乎所有请求起作用。 4、拦截器可以访问action上下文、 值栈里的对象,而过滤器不能。 5、在action的生命周期中, 拦截器可以多次调用, 而过滤器只能在容器初始化时被调用一次。
1)struts2框架的核心控制器是 strutsprepareandexecutefilter。 2)作用: 负责拦截由<url-pattern>/*</url-pattern> 指定的所有用户请求, 当用户请求到达时, 该filter会过滤用户的请求。 默认情况下, 如果用户请求的路径 不带后缀或者后缀以.action结尾, 这时请求将被转入struts2框架处理, 否则struts2框架将略过该请求的处理。 可以通过常量"struts.action.extension"修改action的后缀, 如: <constant name="struts.action.extension" value="do"/> 如果用户需要指定多个请求后缀, 则多个后缀之间以英文逗号(,)隔开。 <constant name="struts.action.extension" value="do,go"/>
方案一: httpservletrequest request = servletactioncontext.getrequest(); httpservletresponse response = servletactioncontext.getresponse(); httpsession session= request.getsession(); servletcontext servletcontext= servletactioncontext.getservletcontext(); 方案二: 类 implements servletrequestaware,servletresponseaware,sessionaware,servletcontextaware 注意:框架自动传入对应的域对象
1)actioncontext是当前的action的上下文环境, 通过actioncontext可以 获取到request、session、servletcontext等 与action有关的对象的引用; 2)servletcontext是域对象, 一个web应用中只有一个servletcontext, 生命周期伴随整个web应用; 3)pagecontext是jsp中的最重要的一个内置对象, 可以通过pagecontext获取其他域对象的应用, 同时它是一个域对象, 作用范围只针对当前页面, 当前页面结束时, pagecontext销毁, 生命周期是jsp四个域对象中最小的。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
浅析我对 String、StringBuilder、StringBuffer 的理解
使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)
Springboot整合freemarker 404问题解决方案
引入mybatis-plus报 Invalid bound statement错误问题的解决方法
网友评论