最简单的struts2代码

 第一次发帖,第一次学习struts,和大家一起学习,昨晚本来写好了,保存到草稿,今天才发现没有了,why?

1.创建web工程

      俺使用的是Myeclipse6.0.1,file->new->web project

2.增加struts2的支持

     添加struts2框架所必须的包:Commons-logging-1.0.4.jar、freemarker-2.3.8.jar、ognl-2.6.11.jar、struts2-core-2.0.11.jar、xwork-2.0.4.jar(后面可能因为版本不同会有略小的差距),下载地址: http://struts.apache.org/2.x ,下载的文件夹lib下包含了Struts2的核心类库,以及Struts2的第三方插件,从lib下找到这这五个包复制到WEBROOT->WEB-INF->lib里。

3.配置web.xml文件

    打开WEBROOT->WEB-INF->web.xml文件,代码如下: 

 

 

 4.编写LoginAction.java

     在src目录下新建new一个名为action的package,在action里新建一个java类,名为LoginAction,代码如下:

 

5.添加并配置struts2的struts.xml配置文件

     在src根下新建文件struts.xml(不能改名)文件,代码如下:

6.创建jsp页面,在WEBINF下新建login.jsp,success.jsp,fail.jsp,login.jsp的代码如下:

7.运行调试

    启动tomcat,输入http://localhost:8080/struts1/login.jsp,这个各个服务器的端口设置不一样,8080是俺MyEclipse自带的tomcat的端口,不知道为啥Firefox里面出现Not found错误,IE好使。

8.总结

总结下struts2的基本流程:

struts2的框架由三个部分组成,核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件,struts2框架为我们提供了核心控制器FilterDispatcher,而我们需要实现的是业务控制器和用户实现的业务逻辑组件。

a.核心控制器FilterDispatcher

   我们在第三步配置的web.xml里面就配置了FilterDispatcher,它负责拦截所有的用户请求,也就是说我们输入url访问login.jsp的时候,拦截器发现login.jsp里面的<s:form action="/login.action">,它就会根据这个login.action去调用名为login的Action来处理该请求,而struts应用的Action都被定义在我们第五步时配置的struts.xml里面,<action name="login" class="action.LoginAction">

,name决定该Action处理哪个用户请求,而class属性决定了该Action的实现类,所以name就是login,class就是LoginAction

b.业务控制器

    业务控制器就是用户实现的Action类的实例,Action类包含了一个execute方法,该方法返回一个字符串,该字符串就是逻辑视图名,当业务控制器处理完用户的请求后,根据处理的结果不同,execute方法返回不同字符串,每个字符串对应一个视图,也就是LoginAction中如果return "success",由于struts中定义了,<result name="success">success.jsp</result>,就会跳转到success.jsp页面,fail同理,事实上struts会定义很多的action,然后根据不同的action返回不同的字符串就可以响应不同的请求了。

c.处理流程

 

 

 源码下载地址:http://download.csdn.net/source/1860862

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值