春节在家慢慢学习点东西,也许能有点提升也说不好,慢慢的学习STRUTS等框架
没钱买书,看的是马士兵的视频,感觉教的还不错,在这里我罗列一下STRUTS的关键概念。
主要有感于网络上的框架介绍过于的的专业和艰深,用比较容易理解的方法写一写我对于这些的看法。
闲话少说,至少先来看下STRUTS的基础流程吧:
一 、我觉得至关重要的STRUTS的框架流程
Struts我感觉其实就是一个Filter(过滤器),也就是在每当用户请求一个URL的时候,激活过滤器中的doFilter()方法,然后根据Struts下载来的JAR包中的已经写好的程序进行下一步的动作。
具体的Filter配置存在于WEB工程的一般Filter配置文件WEB.xml文件中,Struts的包中存在一个已经写好的过滤器StrutsPrepareAndExcuteFilter
注意的是将StrutsPrepareAndExcuteFilter的过滤范围设置为 /* 要过滤所有的URL使得Struts能起到控制程序流程的作用
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispather.ng.filter.StrutsPrepareAdExcuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
StrutsPrepareAndExcuteFilter这个过滤器会读取文件名为struts.xml的配置文件,在配置文件中会指示程序的流程.
在struts.xml文件中我们需要配置相关的ACTION对应,这样才能将用户的URL跳转到我们所期望的那些类里。简单的配置如下:
<package name = "default" namespace = "/" extends = "struts-default">
<action name = "index" class = "com.xxx.xx.xx.xxxAction">
<result name = "success">/success.jsp</result>
</action>
</package>
这里的配置就相较而言比较容易看懂了,首先最外层是一个包,这是用于区分多个拥有相同action name的Action准备的,虽然我到现在为止不知道有什么用,应为不会有人故意把名字取成一样的吧
这个namespace属性也非常好理解,我理解为类似于一级目录的东西,而其中的action name自然就不用多说了,就是类似于最终目录的东西也就是说,在访问的时候只要是namespaceaction name这样的请求就会被认为是请求我们所配置的这个Action
关于Class这个属性,顾名思义就是我们所配置的这个Action的具体对应的那个类。在一般情况下这会让跳转到xxxAction类的方法中,这个方法会返回一个String类型的结果作为Action执行的结果
接下来就是这个Result标签了,看上面的Action的返回就知道这是根据返回的数值调整下一个要去的页面了