struts2.0

   技术的发展是很迅速的,更新和淘汰,促进了计算机科学的迅猛发展。struts的1.1版本还在应用学习的时候,2.0已经攻城略地了,这里我们从一个很一般的角度来阐述一下struts框架,而且并不局限于这个框架所包含的。
   现在web 程序发展很快,应用很广,为web项目而开发的框架也相当多,struts只是这众多的里面的一个。我们从文件结构来看这个struts2.0有什么神奇之处。首先看web.xml,现在只要是放在web server上的项目,不管拿什么开发的,这个东西一般少不了的。这个来描述什么的呢?来看下struts的例子。
<filter>
  <filter-name>struts</filter-name>
  <filter-class>com.filter.NewFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>GB2312</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>struts</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

这个里面讲了点什么事情呢?说明这个项目你打算用struts来写,url的格式呢接受任何形式。假如不用struts来写,比如用ofbiz来写,这个地方怎么写呢,如下:

  <filter>
        <filter-name>ContextFilter</filter-name>
        <display-name>ContextFilter</display-name>
        <filter-class>org.ofbiz.webapp.control.ContextFilter</filter-class>
        <init-param>
            <param-name>disableContextSecurity</param-name>
            <param-value>N</param-value>
        </init-param>
        <init-param>
            <param-name>allowedPaths</param-name>
            <param-value>/control:/select:/index.html:/index.jsp:/default.html:
                               /default.jsp:/images:/includes/maincss.css</param-value>
        </init-param>
        <init-param>
            <param-name>errorCode</param-name>
            <param-value>403</param-value>
        </init-param>
        <init-param>
            <param-name>redirectPath</param-name>
            <param-value>/control/main</param-value>
        </init-param>       
    </filter>
    <filter-mapping>
        <filter-name>ContextFilter</filter-name>
            <url-pattern>/*</url-pattern>
    </filter-mapping>
可以看出来,这两个xml文件描述的东西其实差不多,就是声明一下用哪个类来作为项目的基石。对于struts, <filter-class>com.filter.NewFilter</filter-class>
NewFilter负责解释处理。
对于ofbiz, <filter-class>org.ofbiz.webapp.control.ContextFilter</filter-class>
ContextFilter负责整体处理。

再来看看struts.xml,
<struts>
    <include file="struts-default.xml"/>
    <package name="com" extends="struts-default">   
        <action name="hello" class="com.HelloWorld">
          <result>Hello.jsp</result>
        </action>
    </package>
</struts>
这个文件描述的内容是,有什么请求?--hello,
请求调用了哪个java类?--- com.HelloWorld,
完成之后页面去向哪里?---hello.jsp。

所有的mvc的框架模式,都必须回答这三个问题,还是说ofbiz的例子,它是怎么回答这个呢,有个文件叫controller.xml。如下
  <request-map uri="login">
      <security https="true" auth="false"/>
      <event type="java" path="org.ofbiz.webapp.control.LoginWorker" invoke="login"/>
      <response name="success" type="view" value="main"/>
      <response name="error" type="view" value="login"/>
    </request-map>

 <view-map name="login" type="screen" page="component://customize/widget/screens/CommonScreens.xml#login"/>

从上可以看出,它描述的也是上面三个问题,有什么请求?---login
请求调用了那个java类?-- org.ofbiz.webapp.control.LoginWorker,
完成后去了哪里?--login, page="component://customize/widget/screens/CommonScreens.xml#login

   除了上面两个文件,我们再看到的其他文件,就是jsp和java,jsp写的是表现层,这个大家都知道,java写的后台。没什么可说的了。


 

你可能感兴趣的:(java,框架,jsp,struts,filter,login)