`
yuwenlin2008
  • 浏览: 124294 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2_HelloWorld(与Struts1 的区别)

 
阅读更多

我们知道Struts是一个经典的MVC框架,其作用就是利用分层的思想,使用控制器将视图与模型分离,达到的目录就是更灵活,增强可扩展性。

 

Struts2是Struts是下一代产品,基于webwork的全新MVC框架。Struts1已经非常经典,但Struts2与之截然不同,那么先来说说它们的不同之处吧:

1.Action实现对比:Struts1要求Action必须继承一个抽象类;Struts2提供则是接口,而且并不是必须得实现的,可以是一个简单的POJO。

2.线程安全对比:Struts1的Action是单例的且线程不安全的,所有的请求都会由一个实例来处理;Struts2的Action为每个请求产生一个实例,没有线程安全的问题。

3.Servlet依赖对比:Struts1的Action必须依赖Servlet API,而Struts2不需要,如果要用也可以。

4.Action测试对比:Struts1必须依赖Web容器才能测试,Struts2不需要,单元测试就可以。

5.视图支持对比:Struts1仅支持JSP,Struts2不仅支持JSP,还包括Velocity,Freemarker等。

既然入门,那就先从HelloWorld说起吧。

6.表达式语言对比:Struts1支持JSTL,Struts2不仅支持JSTL,还支持更强大的OGNL。

 

Struts2的HelloWorld开发:

1.先从Apache的网站下载Struts2的最新版本,我下的是struts-2.3.16.1-all.zip

解压缩,先看其目录构成,主要有4个:

src:存放Struts2的源码,

lib:Struts2所依赖的所有jar包,

docs:Struts2的API文档,

apps:Struts2提供的学习例子,这是我们学习技术的第一手资料,下面就根据这个来开发第一个HelloWorld

2.使用Myeclipse搭建开发环境

当然首先要配置好Tomcat,Jdk,然后将apps目录下的struts2-blank.war用winrar解压开

开始新建一个web工程,取名HelloWorld

将struts2-blank/WEB-INF下的web.xml的内容拷贝到工程的web.xml中,如下:

<filter>
      <filter-name>struts2</filter-name>
      <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>

  <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>

 注意这里的filter-class与之前的Struts2.0版本不太一样,这里是ng.filter

将struts2-blank/WEB-INF/classes下的struts.xml文件拷贝到工程的src下,打开并修改内容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	<!--  
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />

    <package name="default" namespace="/" extends="struts-default">

        <default-action-ref name="index" />

        <global-results>
            <result name="error">/error.jsp</result>
        </global-results>

        <global-exception-mappings>
            <exception-mapping exception="java.lang.Exception" result="error"/>
        </global-exception-mappings>

        <action name="index">
            <result type="redirectAction">
                <param name="actionName">HelloWorld</param>
                <param name="namespace">/example</param>
            </result>
        </action>
    </package>

    <include file="example.xml"/>
	-->
    <!-- Add packages here -->
	<package name="default" namespace="/" extends="struts-default">

        <action name="hello">
            <result>
                /Hello.jsp
            </result>
        </action>
    </package>
    
</struts>

 将它原始的配置都给注释了,复制它的package,新建一个新的hello

再将根目录下的index.jsp改名为Hello.jsp,内容写上Hello Struts2

3.把工程部署到Tomcat,启动测试,

访问地址:http://localhost:8080/HelloWorld/hello 此处可以省略.action

成功可看到

Hello Struts2

1
0
分享到:
评论
2 楼 kuchaguangjie 2014-04-08  
struts2 2007 的东西了,
现在 springMVC 更好点.
1 楼 freezingsky 2014-04-07  
每次看到有人发放相关struts1和struts2的内容,我都在想,除非有人需要维护一套struts1的系统,并需要转为struts2的版本。否则,真没有必要去对比 ,虽然看着版本号不同,实质是二个版本带来的变革是根本的。

相关推荐

Global site tag (gtag.js) - Google Analytics