框架学习之Structs2文件配置以及工作原理

今天学了struts2,感觉到其强大之处,其实之前学了j2ee中的servlet之后,再学struts2就轻松点了,servlet中有个很不好的一点就是不够规范,而且代码的灵活性不是很好,例如在servlet中处理跳转页面的时候,就已经把要跳转的页面写死了,我们都知道,java项目被编译完class文件之后,是不能对class文件进行修改的,那就要改其源码了这在一个很大的项目中是不能忍受的。其的字符串的定义也是过于死板,不方便改。总的来说,框架的出现不是为了更快的开发,而是更好的规范代码。使得程序更加的便于修改,因为其很多的变量都是在xml中配置的,xml文件时不会被编译的,总之,记住一句话:配置优于编码,习惯由于规范。

还是总结学习struts2入门的几个方面。思维导图如下:

那么,struts2的运行原理是什么呢,通过查阅文档得知,一个struts2程序必须要有对应的包,这个可以在其提供给我们的案例中拿到struts2.xml(必要),log.xml,web.xml中配置过滤器filter的信息,eg


一开始的像.action的请求进来,然后被拦截器filter拦截,之后org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter这个类处理信息,此类访问struts.xml,然后在其配置好的action中访问相应的类做处理,如果不写类,则默认访问ActionSupport类并返回success做相应的页面跳转。至此,其工作原理大体就这样。

简单的说下其配置文件的信息,比较重要的是struts.xml和log4j2.xml,看下其提供的案例可知,log4j2.xml结构如下:



由此我们可以知道,此日志文件对xwork2,struct2,Root文件有打印的作用,我全改成error即可。

重点还是strut.xml,先来看下其结构:


之前说到,此类org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter会访问strut.xml文件, <constant name="struts.enable.DynamicMethodInvocation" value="true" />表示是否支持动态方法调用,默认是false,因为这样的话会把bean类暴露出去,安全性不是很好;2其会覆盖掉 struts1床来的通配符等等。

<constant name="struts.devMode" value="true" />表示是否是开发模式,在开发模式下,修改文件就会布置一次项目,一般只是在开发的时候用,在产品上线了就不用开发模式了。 <action name="first">
            <result >
              /index.jsp
            </result>
        </action>

执行到这句的时候,系统会自动的根据action的name,匹配对应的action,当然也是可以使用通配符实现配置,然后由对应的类处理,不写类的话,默认访问的是ActionSupport,实现execute方法,根据execute方法的返回值做对应的页面跳转。

总的来说,structs的配置和原理还是很重要的,加油,小冯


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值