Struts 2之HelloWorld(上)

.下载和安装DWR的步骤:

     登录http://struts.apache.org/download.cgi#Struts206站点,下载Struts2最新的版本.

将下载到的Zip文件解压缩,该文件就是一个典型的web结构,该文件包含以下文件结构:

apps:该文件夹下面包含了基于Struts 2的示例应用,这些示例应用对于学习者是非常用用的资料.

docs:该文件夹下面包含了Struts2的相关文档,包括Struts 2的快速入门,Struts 2的文档,以及API文档等内容.

lib:该文件夹下面包含了Struts2 框架的核心类库,以及Struts2的第三方插件类库.

src:该文件夹下面包含了Struts框架的全部代码.

     lib文件夹下面的必要类库复制到web应用的WEB-INF/lib路径下,不需要将所有的Struts的全部jar包都放到lib路径下面,将几个核心的jar包放到该路径下就可以了.在这里,用到的可以是:commons-logging-1.0.4.jar,commons-fileupload-1.2.1.jar,free
marker-2.3.13.jar,ognl-2.6.11.jar,struts2-core-2.0.8.jar,xwork-2.1.2.jar.
这里如果需要在DOS或者是在shell窗口下面手工编译Struts2的相关的程序,则还应该将Struts-core-2.0.8.jarxwor-2.0.1.jar添加到系统的CLASSPATH环境变量中.

     编辑Web应用的web.xml配置文件,配置Struts2的核心Filter,下面是增加了Struts2的核心Filter配置的web.xml配置文件的代码:

经过上面三个步骤,我们就可以再一个Web应用中使用Struts2的基本内容了.

.从用户请求开始

Struts2支持大部分视图技术,当然也支持传统的JSP视图技术.helloworld应用将使用最基本的视图技术:JSP技术.当用户需要登录本系统的时候,用户需要一个简单的表单提交页面,这个表单提交页面包含了两个表单域,用户名和密码,下面的代码是一个最简单的表单提交页面,仅仅包含有两个表单域,甚至没有任何的动态内容.实际上,整个页面完全可以是一个静态的HTML页面,但是考虑到需要在该页面的后面增加动态的内容,因此依然将该页面用JSP为后缀保存,下面是用户请求登录的JSP页面的代码

正如前面介绍的,该页面没有任何的动态的内容,完全是一个静态的HTML页面,但是,我们注意到该表单的action属性:login.action.这个action属性比较特殊,它不是一个普通的Servlet,也不是一个动态的JSP页面.当表单提交给login.action的时候,Struts2FilterDispatcher将自动起作用,将用户请求转发到相应的Struts2 Action.(Struts2 Action默认拦截所有后缀为.action的请求,因此,如果我们需要将某个表单提交给Struts2 Action处理,则应该将该表单的action属性设置为*.action的格式).

整个页面就是一个标准的HTML页面,整个单独的页面还没有任何与用户交互的能力.下面,我们就开始手工的创建一个Struts2Web应用.

,创建Struts2Web应用

Struts2Web应用就是一个普通的Web应用,然后增加Struts2的功能,该应用就可以充分利用Struts2MVC框架了.

(1)    创建WEB应用

手工的创建一个Struts2应用,建立一个Web应用请按照如下步骤进行:

     在任何的目录中新建一个文件夹,使用这个文件夹建立一个web应用,名字一定要使用英文.

     在第一步建立好的文件夹中新建一个名字为”WEB-INF”的文件夹.

     进入Tomcat,或者任何的其他的WEB容器当中,找到任何一个WEB应用,WEB-INF下面的web.xml文件复制到第二步所创建的WEB-INF文件夹下面.

     修改复制的web.xml文件,将该文件修改成只有一个根元素的xml文件,修改之后的web.xml文件代码如下://TODO

     在第二步所建的WEB-INF路径下,新建两个文件夹,classeslib,它们分别用于保存单个的.class文件和Jar文件.

经过了上面的步骤,我们已经建立了一个空的WEB应用,这个时候,我们就可以将这个建立好的web应用复制到Tomcatwebapps路径下面了,这个WEB应用将可以自动的部署到tomcat当中.

将定义好的JSP页面(就是上面有两个输入框,用户名和密码的那个)复制到第一步所建立的文件夹下面,JSP页面将成为该WEB应用的一个页面.web将有如下的文件结构:

Struts2qs

|-WEB-INF

|      |-classes

|      |-lib

|      |-web.xml

|-login.jsp

上面的Struts2qsWeb应用所对应的文件夹的名字,可以进行更改,login.jsp是该web应用下JSP的名字,也可以修改,其他文件夹,配置文件都不可以更改.(这个地方有点出入,我们可以在web.xml文件中加入一个标签welcom-file-list),然后启动Tomcat,在浏览器中输入http://localhost:8080/struts2/可以看到定义好的页面.

(2)    增加Struts2功能

为了给web应用增加Struts2的功能,只需要将Struts2安装到web应用中就可以了,web应用中安装struts2框架核心,只需要经过以下三个步骤:

     修改web.xml文件,web.xml文件中配置Struts2的核心Filter

     Struts2框架的类库复制到web应用的WEB-INF/lib路径下

     WEB-INF/classes下面增加struts.xml文件.(Eclipse环境下面是要放到src文件夹下面的,这样eclipse进行部署的时候,就会自动的将struts.xml刷到tomcatclasses文件夹下面去.放到别的地方会报错的)

下面是增加了Struts2功能之后的web应用的文件结构:

Struts2qs

|-WEB-INF

|      |-classes(struts.xml)

|      |-lib(上面列出的Struts2运行时候需要的jar)

|      |-web.xml

|-login.jsp

这里需要指出的是,Struts2web应用默认需要java 5运行环境,需要web容器支持ServletAPI2.4JSP API2.0,如果需要使用更低版本的java运行时环境,则需要使用struts2框架的jdk 1.4支持,为了简单起见,建议使用java5运行时环境,使用Tomcat5.5或者更高的版本.

.实现控制器

(1)实现控制器类

Struts2下面的控制器不再像Struts1下面的控制器,需要继承一个Action父类,甚至可以无需实现任何接口,struts2的控制器就是一个普通的pojo.

实际上Struts2Action就是一个包含有execute方法的普通的java.该类里面包含的多个属性用于封装用户的请求参数,下面是处理用户请求的Action类的代码:

上面的Action类是一个在普通不过的java,该类里面定义了两个属性,usernamepassword,并且为这两个属性提供了对应的gettersetter方法,除此之外,Action类里还包含了一个没有参数的execute方法,这个大概也就是struts2Actionpojo唯一的区别.实际上,这个execute方法仍旧是一个非常普通的方法,既没有与ServletApi耦合,也没有与Struts2 Api 耦合.

表面上看起来,Action的两个属性只是提供了对应的gettersetter方法,很难理解请求参数在什么时候复制给该Action属性,事实上,因为Struts2的拦截器机制,它们负责解析用户的请求参数,并将请求参数赋值给Action对应的属性.

(2) 配置Action

上面定义了Struts2Action,但是该Action还没有配置到Web应用当中,还不能够处理用户的请求,为了能让该Action能够处理用户的请求,还需要将该action配置到struts.xml文件当中.

前面已经介绍过了,struts.xml文件应该放置到classes路径下面,该文件主要防止Struts2Action定义.在定义Struts2Action的时候,除了需要制定该action的实现类之外,还需要定义ACTION处理结果和资源之间的映射关系,下面是该应用的struts.xml文件的代码:

上面的映射文件定义了nameloginAction.

(3)增加视图资源完成应用

经过上面的两个步骤,这个最简单的struts2应用几乎可以运行了,但是还需要为该web应用增加两个jsp文件,分别是error.jspwelcome.jsp,将这两个jsp页面文件放到web应用的根目录下(/WEB-INF在同一个文件夹下面).这两个页面就可以是最简单的jsp页面,分别显示登录成功和登录失败就可以了. 

下面是fail.jsp的内容

下面是success.jsp的内容:

 

部署--> 运行-->成功

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值