1、web
- web前端提交,后台需要的东西:那个类处理,传递过来的参数。
- 后台处理完毕,需要给前台的数据。页面、json数据、html数据、stream等等。
2、servlet
- web.xml中含有的信息:类、路径、过滤器等
- 处理完毕后,返回的页面、数据都在相应的类中处理
从上面的描述中看到servlet的弊端。需要修改的话就直接修改代码。
下面就谈谈struts2
struts2的核心是拦截器,在拦截器中处理各种问题。
filter类的方法:init、destory、config
==============================处理都是根据配置文件来进行
前台传递url地址:在init的方法内,dom读取配置文件、获得对象的信息、根据反射创建对象。建立管理http协议下面对象的类(actionContext,包含httpServletRequest、 httpServletResponse等对象,存放url中的参数)。
调用所有dofilter方法后,完成struts2给我们提供的基本功能要求,例如文件上传,验证等,然后完成我们自己的功能,通常就是操作数据库的增删改差功能。
方法返回一个标志(strus2中是字符串),要进入的页面或者json等各种数据。 这些也在配置文件中。。。。。。。
处理完成
好处:怎样就将处理业务与控制事务跳转页面、传递到前台的数据分开。
将需要的创建类对象的信息、返回的数据的信息,都放在了配置文件中。
于是struts就提供了各种返回数据的配置方法,和各种需要返回的数据的插件。例如json的返回
struts2基本
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 核心filterservletActionContext获得页面基本对象,request、response等。。。。
页面通过什么方式发送:redirect、dispatch等
struts2页面视图配置:struts2-default.xml中,在自己写的package中继承strus2的视图包,我们就能使用转发、重定向等视图发送模式。
struts2常量信息配置文件在:struts2核心包下面的default.xml中。
包的定位:struts2将url分成两部分。第一步:分解url,将URl最后一个/取出来,当成action。第二步:剩下来的url依次取最后/找包,直到找到为止,然后在該包下面找action。注意:nameSpace="/"也是有名字的包,nameSpace=""是默认包
配置文件struts2默认值:
class默认值:actionSupport 命名空间默认值是:nameSpace=”“ result中:name默认值是:success type默认值是:dispatch
struts拦截器
struts将各种拦截器自动实施上去。。。。。默认拦截器<default-interceptor-ref name="defaultInterceptor">