初识Struts2—HelloWorld

前言

  之前在学校里面也有学过Struts2,由于一直迷恋在.net方向,上课也没有认真听。现在由于工作需要,要学会使用Struts2。在学习之前,了解一下Struts2还是有必要的。

  详细的介绍百度百科里面都有,我也就不去复制过来了。但是,工作原理还是得详细了解了解。

初识Struts2—HelloWorld

  一个请求在Struts2框架中的处理大概分为以下几个步骤

    1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求

    2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)

    3、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action

    4、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy

    5、ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类 ,这里,我们一般是从struts.xml配置中读取。

    6、ActionProxy创建一个ActionInvocation的实例。

    7、ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。

  以上工作原理资料并非原创,本人只是复制过来方便查看。

创建JavaWeb项目

  这个很简单,开发环境都搭建好的,点几下菜单,输入项目名称就OK了。MyEclipse — File — New — Web Project

初识Struts2—HelloWorld

引入Struts2架包

  下载好Struts2的包之后,解压...     到了这步的时候,我深深的迷茫了,解压完毕看到lib文件夹里面二三十个jar包,我到底应该引入哪些呢,难道要全部引入?我找了找度娘,有人就给出方案了,就是打开Struts2带的那些例子(apps文件夹),把struts2-blank解压出来,就引入WEB-INF - lib 文件夹下面的jar包就是了。

  为了以后简单一点,自己创建一个User Library。MyEclipse — Window — Preferneces — Java — Bulid Path — User Libraries

初识Struts2—HelloWorld

  然后,在项目里面引入User Libraries,右击项目 — Build Path — Add Library — User Library — 选择刚刚创建的User Library吧。

初识Struts2—HelloWorld

新建Action

  右击项目 — New — Class,Class要继承自com.opensymphony.xwork2.ActionSupport,要重写execute方法。

初识Struts2—HelloWorld

  HelloAction.java代码如下:

1 package com.haijun.action;

2 

3 import com.opensymphony.xwork2.ActionSupport;

4 

5 public class HelloAction extends ActionSupport {

6     public String execute() throws Exception{

7         return SUCCESS;

8     }

9 }

 

web.xml和struts.xml配置

  web.xml给加上struts2拦截器配置

1   <filter>

2     <filter-name>struts2</filter-name>

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

4   </filter>

5   <filter-mapping>

6     <filter-name>struts2</filter-name>

7     <url-pattern>/*</url-pattern>

8   </filter-mapping>

  struts.xml如下(hello.jsp随便新建一个):

 1 <?xml version="1.0" encoding="UTF-8"?>

 2 <!DOCTYPE struts PUBLIC

 3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

 4     "http://struts.apache.org/dtds/struts-2.3.dtd">

 5 

 6 <struts>

 7   <package name="default" extends="struts-default">

 8     <action name="hello" class="com.haijun.action.HelloAction">

 9       <result>/hello.jsp</result>

10     </action>

11   </package>

12 </struts>

运行结果

  以上这些流程都做过之后,一个HelloWorld项目就没问题了。现在来试试看,debug一下。右击项目 — Debug As — MyEclipse Server Application — Tomcat 6.x。然后打开浏览器,输入http://localhost:8080/HelloStruts2/hello,能成功跳转到hello.jsp表示成功。

 

我的开发环境为:MyEclipse 6.0.1,Struts 2.3.8,Tomcat 6.0,jdk 1.6

 

你可能感兴趣的:(helloworld)