Struts是一个基于MVC模型的架够在WEB中的实现,单词本身有支持的意思.下面简单介绍一下,struts的基本工作原理和内部主要几个对象的调用和实现方式.
1.框架和技术的个人理解:所谓框架或技术或是标准都是原来技术的基础上进行一些新的发现和规划,让其在一个规则中办事(开发),那么,就可以适应更大或更新的系统需求,而技术的本原都是不变化的.所以,不要将技术作为自己的负担,必要的时候,技术并不是最重要的.自我的发挥和业务的分析才是一个开发者最需要得到的东西.就struts框架一样,只不过是Apache公司为你多写了几个JAVA类,然后以开源包的形式进行发布,以实现地层的控制平台,其实,如果自己有能力也可以写的.
2.框架简要描述:框架为系统的标准,为适应修改的维护以及扩展的需求,主要原因的是,框架是分离和分层设计,思想为各自完成各自的事情,相互之间通过控制中心来调用和控制使用.
3.struts框架核心组建(JAVA类):struts中核心主要有6个组建和3个标记库:
组建:
3.1.ActionServlet接受用户请求,委托RequestProcessor.
3.2.RequestProcessor上述ActionServlet委托其完成业务处理的任务,负责读取Struts-config.xml的处理逻辑,并依照此处理业务进行处理过程.
3.3.ActionForm保持与用户请求的表单数据一致,或者说,保持用户的请求数据于request对象中(可以使用session或Application),使一次用户请求保持于服务器中.
3.4.Acion依据上述ActionForm的内容进行与JavaBean的交互并根据结果返回一个AcionFoward类型的对象给RequestProcessor.
3.5.AcionFoward为指定的View视图的选择结果.
3.6.AcionMapping为Acion程序中excute()方法使用findForward()方法时候,传入业务逻辑参数与实际VIEW参数的影射关系.
标记库:
3.7.struts-html.tld:扩展的HTMLForm的JSP标记库.
3.8.struts-bean.tld:扩展的JAVABEAN标记库.
3.9.struts-logic.tld:扩展测试属性的标记库.
JSP的几个比较常用的对象简单介绍:
3.10.page对象:仅仅为当前页面使用,脱离当前页面,对象消失.
3.11.request对象:为用户一次请求,就是说,当用户提交请求一旦一个request对象建立,不论中间经过多少个页面处理或控制台处理(除非使用:response.sendRedirect(URL)进行转发,因为那样相当于不是一次用户请求了)
3.12.session对象:为一个用户登陆的全局变量,只要这个用户没有退出系统,此变量为可以一直使用,非必要信息(用户基本信息)尽量少使用此变量以减少服务器开销.
3.13.Applicate为服务器全局变量,系统启动的时候,自动启动该变量保存于servletContext对象中,在开发的时候是配置于服务器的配置文件中的.
基于Tomcat的struts框架几个核心配置文件:
3.14.Server.xml:为部署工程目录部署和系统开发端口以及,以及系统全局加载信息.
3.15.Web.xml:这个配置文件在服务器上默认有一个,为服务器目录保护以及服务器的默认加载信息的配置,用户的Web.xml配置于其目录下的WEB-INF下,为用户许默认启动的Servlet和参数信息.
3.16.struts-config.xml配置struts框架的组建以及标记库和控制器等信息.
4.struts框架中大致的工作流程:
4.1.首先用户提交一个xxx.do(默认的配置属性,在用户自定义的Web.xml中),服务器端通过ActionServlet使用doGet()/doPost()方式进行接受,并调用自身的一个process()方法,它负责调用对象RequestProcessor,有关*.do的方式在Web.xml是这样写的:
<!--ActionServletConfiguration-->
<servlet>
<servlet-name>actionServlet</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servlet>
<!--ActionServletMapping-->
<servlet-mapping>
<servlet-name>actionServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
解释:
<servlet-name>:表示这个Servlet的一个逻辑名称,为了和下面的协议想对应的K
[1] [2] 下一页