手动搭建struts的环境

 

今天看着视频学习如何手动配置struts的环境,凭着记忆把过程再做一遍记录吧............

 

 

准备工作:

下载Struts2.2.1.1-all.zip 。地址是http://struts.apache.org/

 

 

开始之前我们先来了解一下struts2.2.1.1-all.zip这个文件夹里面有什么东东吧。解压Struts2.2.1.1-all.zip 、

我们可以看到struts2.2.1.1里面有4个文件夹和一些.txt文档,我们主要说说这4个文件夹吧。

apps:里面是一些可以跑起来的例子,这个用处很大,以后你就知道WHY了

docs:顾名思义就知道是一些帮助信息啦,这是在struts的官网下截取出来的一些帮助信息

 lib:这里放的是struts的一些架包,我们待会需要的架包也是从这里面取得的。

src:这里放的是源码,struts是一个开源项目,有些这些源码我们可以自己生成struts2.2.1.1的API了,就不用冰天雪地跪玻璃碴子求struts2.2.1.1的API啦,哈哈、、、、

 

 

 

好了,下面开始啦、、、、、

1、新建web项目,命名为struts2(命名是自己喜欢吧)

 

2、我们需要把一下架包丢到到struts2项目的WEBROOT——WEB_INF——lib目录下

(这是struts2.2.0版本的配置方式,实践证明也能在struts2.2.1.1版本中跑起来)

需要加入的架包有:

common-fileupload-1.2.1.jar//common-io-1.3.2.jar//common-loggin-1.0.4.jar//ognrl-3.0.jar/struts2-core-2.2.1.1.jar//xwork-core-2.2.1.1.jar//freemarker-2.3.16.jar共7个。这些东西就在struts的lib中找。

 

3、在WEBROOT的目录下new一个login.JSP页面.页面中添加一个表单,其中action=“login”代码如下:

    <form action="login">
     username:<input type="text" name="username"><br>
     Password:<input type="password" name="password"><br>
     <input type="submit" value="submit">
    </form>

 

4、修改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>
  对于<url-pattern>我做小小的解释,这里是对所有信息进行拦截过滤(深入解释还没研究出来啊,嘻嘻)

 

5、在src下建立一个xmlfile名为struts.xml。其实执行解释的时候不是解释这个的,实际解释的是WebRoot/WEB-INF/classes下的Struts.xml的,这儿不用建,它随src下的struts改变而改变,为什么要在src下建呢?我的理解是,strut2项目下没有class啊,就算有你也不能这样写吧,貌似在src下面写可以便于书写还是什么的(以后理解再完善)

 

6、这里我们需要对struts.xml进行配置了。先给代码哈、、、

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
 <package name="struts2" extends="struts-default">
  <action name="login" class="">
  <result name="success"></result>
  </action>
 </package>
</struts>

解释下:

这里面的

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">来源于struts2.2.1.1的apps里面的例子,我们知道的,apps下是一些可以跑起来的例子,所以他也肯定配置好了struts.xml了,是吧,我们直接把这头部拿来用用,可以吧、、

然后<struts></struts>就像一个大房子,<package>是里面的房间,根据不同的name,可以找到对应的房间,然后房间里面有很多的桌子<action>,form就是根据action的name对号入座的。好了,先解释这么多,不懂的往后看,待会给你走一回。

 

7、下面我们在src下建一个package:com.xin.struts2。并在这个package下建一个LoginAction.class。老规矩,先上代码:

package com.xin.struts2;

public class LoginAction {
 public String username;
 public String Password;
 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 public String getPassword() {
  return Password;
 }
 public void setPassword(String password) {
  Password = password;
 }
 public String execute(){
  return"success";       //注释一下,这里返回的success和struts.xml中的<result name="success">对应
 } 
}

这里我就不解释了,学过java都知道是什么回事。

 

8、现在我们的struts.xml中的action中的class的路径可以填上了:<action name="login" class="com.xin.struts2.LoginAction">

 

9、下面我们new一个result.jsp。这个页面用于显示结果,上代码:

    username:${requestScope.username}<br>
    password:${requestScope.password}

10、貌似现在已经好了吧,部署一下看能跑起来不,其实是不能的。因为还缺少一个架包,在struts2.2.1.1这个版本里面javassist依赖被OGNL排除了的,所以要引入javassist_3.7.ga.jar。那么这个架包哪找呢?我们可以从可以运行的实例中找到。打开struts的apps,打开其中一个.war文件,找到WEBROOT下的lib,里面肯定有的

 

11、好了,现在可以部署让程序跑起来了。我上传了这个简单的源代码,希望对像我这样的菜鸟有帮助吧。

 

 

 

 

下面我来叙述一下这个运行过程是怎么样走的、、、、、、、、、

1、首先,我们运行login.jsp,提交表单的信息,其中action被web.xml拦截,这是wen.xml的filter-mapping中/*的功劳

2、来到web.xml,它的filter获取到action的信息是login,然后就去找struts.xml中对应的action

3、struts.xml中的struts可以有很多个package,package又可以包含很多个action,它会根据web.xml传过来的action的name选着对应跳转的页面。这里的package.name是struts。里面的action.name 是login,根据class找到对应的LoginAction.java

4、在LoginAction.java中是对username和password的处理,不做过多解释。这里的execute方法返回的值告诉我们要到那个result

5、回到struts.xml了,根据<result>的 name我们指定相应的跳转页面,这里跳转到/result.jsp

 

 

好了,整个流程跑完了,回头一看,这么长啊,我晕了~~~

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值