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

Struts2入门与配置

    博客分类:
  • JAVA
阅读更多
  年前在上海静静等待回家的日子 , 闲来无事,在好友李三年的友情提示下,写了这篇Struts2的入门级的文章,希望能对Struts2初学者有一定帮助。

    /* 赏心悦目的注释 ,凡是注释里的内容,骨灰级的朋友可一跃而过。*/

       闲话少说进入正题

       一、开发环境的搭建

             1、JDK的安装与环境配置

             2、Tomcat的安装与环境配置

             3、Myeclipse的安装与环境配置(囧轻轻鄙视一下自己的盗版行为 囧 )

             /* 赏心悦目的注释

                读到这里,如果你激情万千,开始准备去完成这第一步里所有的内容,那么笔者建议你还是停止阅读此篇文章,抓紧时间,从Java基础学起,祝你旅途愉快^-^

              */

       二、Struts2的下载与安装

             下载地址:http://struts.apache.org/download.cgi#struts216

             解压缩后的目录包含:apps、docs、lib、src四个文件夹和一堆文本文档。

             /*赏心悦目的注释

                apps里包含了5个war包,可以直接部署在tomcat里运行,需要说明的是,运行Struts2,要求JDK5.0及以上版本,tomcat5.5及以上版本。这5个应用程序是我们学习Struts2的好DEMO,一些不负责的教材就是拿这些项目的源码充斥起来的。

                docs是Struts2的帮助文档,全英文的,看不懂英文的战友还要加强对英文的学习才行啊,想学好Java而英文不好最终吃亏的还是自己,我已经吃了很多。

                lib里包含运行Struts2程序所依赖的全部jar包。

                src里包含此压缩包里全部源代码,采用maven管理,不熟悉maven战友们可以搜索相关资料进行学习,笔者也有专门文章对其进行讲解。

                    把压缩包解压缩到硬盘,你就顺利完成了安装过程,HOHO,是不是感觉被忽悠了,开个玩笑,其实大部分开源应用都是这样“安装”的,只不过有的需要一些环境变量的配置而已。


              */

       三、创建一个山寨级Struts2应用程序

           笔者的开发环境 :jdk1.6.0_04、tomcat6.0、eclipse3.3.1.1、MyEclipse6.0 (囧再一次轻轻鄙视一下自己的盗版行为 囧 )、Struts2.1.6、WindowsXP SP2

             任务 :完成用户登陆验证,当用户名为Helloworld,密码为Helloworld,通过验证,页面进入index页面,若用户名或密码错误,页面跳回login页面,并给出提示信息。



1、创建一个Web project,在根目录下创建login.jsp,代码如下:



Jsp代码
<%@ page language="java" pageEncoding="UTF-8"%>  
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html>  
  <head>  
    <title>登录</title>  
    <style>*{margin:0px;padding:0px;font-size:12px;}</style>  
  </head>  
    
  <body>  
    <form action="login.action" method="post">  
    用户名:<input type="text" name="uname"/><br/>  
    密 码:<input type="password" name="upwd"/><br/>  
    <input type="submit" value="登录" />  
    </form>  
  </body>  
</html> 

<%@ page language="java" pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <title>登录</title>
    <style>*{margin:0px;padding:0px;font-size:12px;}</style>
  </head>
 
  <body>
  <form action="login.action" method="post">
    用户名:<input type="text" name="uname"/><br/>
    密 码:<input type="password" name="upwd"/><br/>
    <input type="submit" value="登录" />
    </form>
  </body>
</html>

       熟悉Struts1的战友都熟悉,表单提交的action一般都是以.do的结尾,在Struts2中这个后缀被改成了.action,这与WebWork是一致的,从这点也反映出Struts2与WebWork的亲缘关系,当然,这个后缀也是可以通过配置来修改的。

       修改tomcat根目录下conf/server.xml,在<Host>结点之间添加如下代码:



Xml代码
<Host name="localhost"  appBase="webapps" 
            unpackWARs="true" autoDeploy="true" 
            xmlValidation="false" xmlNamespaceAware="false"> 
        <Context path="/struts2app" docBase="H:\workspaceforMyEclipse\struts2app\WebRoot" reloadable="true" /> 
</Host> 

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
<Context path="/struts2app" docBase="H:\workspaceforMyEclipse\struts2app\WebRoot" reloadable="true" />
</Host>

         /*赏心悦目的注释

          path是项目虚拟路径,可以通过http://localhost:8080/struts2app访问项目的欢迎页,docBase是项目的物理路径,即项目在硬盘中的存放路径,路径中的WebRoot是项目的根目录,reloadable的参数值为true和false,当设置为true的时候,tomcat可以运行监测程序去监测项目文件是否有改动,如果有改动,tomcat会重新加载,当然,这样的效率是很低的,只有在开发中才这样设置,真正部署的时候,这个值是设为false的。经过这样修改,我们不需要将项目文件拷贝到tomcat的webapp目录下,tomcat启动后会自动加载Context结点项目,方便了我们的开发。

        */



       修改WebRoot/WEB-INF/web.xml,修改项目欢迎页。



Xml代码
<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.4"   
    xmlns="http://java.sun.com/xml/ns/j2ee"   
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
  <welcome-file-list> 
         <welcome-file>login.jsp</welcome-file> 
  </welcome-file-list> 
</web-app> 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <welcome-file-list>
         <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
</web-app>       

        现在启动tomcat,访问http://localhost:8080/struts2app/

      如果看到login.jsp页面的内容,说明前面的配置是正确的。

      停止tomcat服务。



2、添加Struts2配置

     在Struts2的解压缩文件夹内的lib文件夹里, 我们找到下列5个jar包

commons-logging-1.0.4.jar
freemarker-2.3.13.jar
ognl-2.6.11.jar
struts2-core-2.1.6.jar
xwork-2.1.2.jar
      把他们复制到项目根目录下的\WEB-INF\lib\文件夹内。这5个jar包是我们运行Struts2应用程序所依赖的最基本的5个jar包。

      在工程的src目录下我们创建一个struts.xml文件,文件代码如下:



Xml代码
<?xml version="1.0" encoding="UTF-8" ?> 
 
<!DOCTYPE struts PUBLIC  
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
    "http://struts.apache.org/dtds/struts-2.0.dtd"> 
<struts> 
    <package name="default" extends="struts-default"> 
        <action name="login" class="com.songlu.LoginAction"> 
            <result name="success">/index.jsp</result> 
        </action> 
    </package> 
</struts> 

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

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="login" class="com.songlu.LoginAction">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>

       /*赏心悦目的注释

          关于这个文件的作用以及各个结点和结点属性的含义,笔者觉得现在解释只会扰乱初学者的思路,挫伤学习积极性,增加学习的恐惧。笔者认为,按照笔者的讲述让初学者第一个Struts2应用程序成功跑起来才是更重要的,这会对初学者产生极大的成就感,这种成就感是很有战略意义的。

            笔者有专门的文章对其进行介绍,但不建议你现在就去阅读和理解他们,至少你应该先完成现在这个应用程序,在感受成就感的同时,泡一杯咖啡,然后慢慢阅读我写的相关文章。

        */

      在src目录下,我们创建一个名为LoginAction的类,他的包名com.songlu

      /*赏心悦目的注释

          如果你是个愤青,或对宋陆不满,你可以改成com.liyuchun或者com.furong,当然,你要同时修改之前写的struts.xml中相关代码,但是,建议你还是不要改,你可以瞄一瞄页面左上角的那个头像,相信他还是比liyuchun、furong要顺眼很多。


        */

      LoginAction的代码如下:



Java代码
package com.songlu;  
 
public class LoginAction {  
    private String uname;  
    private String upwd;  
    public String getUname() {  
        return uname;  
    }  
    public void setUname(String uname) {  
        this.uname = uname;  
    }  
    public String getUpwd() {  
        return upwd;  
    }  
    public void setUpwd(String upwd) {  
        this.upwd = upwd;  
    }  
      
    public String execute(){  
        return "success";  
    }  


package com.songlu;

public class LoginAction {
private String uname;
private String upwd;
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpwd() {
return upwd;
}
public void setUpwd(String upwd) {
this.upwd = upwd;
}

public String execute(){
return "success";
}



       修改WebRoot/WEB-INF/web.xml,添加Struts2过滤器



Xml代码
<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
 
    <filter> 
        <filter-name>struts</filter-name> 
        <filter-class> 
            org.apache.struts2.dispatcher.FilterDispatcher  
        </filter-class> 
    </filter> 
    <filter-mapping> 
        <filter-name>struts</filter-name> 
        <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <welcome-file-list> 
        <welcome-file>login.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<filter>
<filter-name>struts</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
        <welcome-file>login.jsp</welcome-file>
    </welcome-file-list>
</web-app> 
       在根目录下创建login.jsp,代码如下:



Jsp代码
<%@ page language="java" pageEncoding="UTF-8"%>  
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html>  
  <head>  
    <title>主页</title>  
  </head>  
    
  <body>  
    欢迎你${uname}!  
  </body>  
</html> 

<%@ page language="java" pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <title>主页</title>
  </head>
 
  <body>
  欢迎你${uname}!
  </body>
</html>

        启动tomcat,请求:http://localhost:8080/struts2app/

      这时候应该会报404错误,原因很简单,tomcat根本没有启动成功,而是报了一大堆异常。

Struts2 Unable to load configuration. - bean - jarWEB-INF/lib/struts2-core-2.1.2.jar!/struts-default.xml:46:178

是不是感觉又被忽悠了?别怪我啊战友们,这是apache的失误。按照官方文档说明,运行Struts2必须加载5个核心jar包,也就是咱们一开始拷贝的5个jar包,如果你用的是Struts2之前的版本是没有问题的,但是如果按照笔者所说去下载这个新版本,就会报如上错误,因为还需要加载另外两个jar包,可是官方的说明文档没有更新,笔者在试验的时候也在这里被晃了一下。

       解决方案:在Struts2的解压缩文件夹内的lib文件夹里, 我们找到下列2个jar包

commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
       把他们复制到项目根目录下的\WEB-INF\lib\文件夹内。

         重新启动tomcat,请求:http://localhost:8080/struts2app/

       这个时候应该可以正常看到登陆页,如果还有异常,那你就要仔细检查之上步骤有没有遗漏或错误。

       在用户名输入文本框内输入:李宇春,点击登陆按钮!

         提交->欢迎你李宇春

         至此,一个Struts2应用程序算是真正运行成功了。恭喜恭喜!同喜同喜!

       接下来,你可以泡杯咖啡,然后去阅读一些关于struts.xml这个文件的文章资料,或者去阅读一些关于maven的文章资料。当你学累的时候,可以回来继续看本文章,完成应用程序剩余部分,即登陆的验证。











分享到:
评论

相关推荐

    1_Struts2入门与配置

    这个压缩包文件的标题"1_Struts2入门与配置"表明它可能包含了Struts2框架的基础学习资料和配置文件,而“工具”标签可能意味着它包括了开发所需的库文件。 Struts2的核心功能包括动作调度、结果处理、异常处理和...

    浪曦_Struts2应用开发系列_第1讲.Struts2入门与配置_swf

    浪曦_Struts2应用开发系列_第1讲.Struts2入门与配置_swf

    浪曦_Struts2应用开发系列_第1讲.Struts2入门与配置2

    浪曦_Struts2应用开发系列_第1讲.Struts2入门与配置2

    浪曦_Struts2应用开发系列_第1讲.Struts2入门与配置1

    浪曦_Struts2应用开发系列_第1讲.Struts2入门与配置

    第1讲.Struts2入门与配置

    本讲主要介绍Struts2的基础知识以及如何进行入门配置。 首先,Struts2是Struts1的升级版,它继承了Struts1的优点并解决了其在灵活性和可扩展性上的不足。Struts2的核心是Action类,它处理用户请求并调用业务逻辑。...

    struts2学习笔记二(第2讲.Struts2入门与配置续)

    本篇学习笔记将深入探讨Struts2的入门与配置,继续上一讲的内容。 首先,Struts2的基础入门涉及到以下几个核心概念: 1. **Action类**:在Struts2中,业务逻辑通常封装在Action类中。Action类是处理用户请求的主体...

    struts2学习笔记一(第1讲.Struts2入门与配置)

    NULL 博文链接:https://zhaolianyang.iteye.com/blog/859212

    struts2入门demo

    通过这个简单的入门案例,你可以学习到如何创建Action、编写配置文件、设计交互页面,并理解Struts2框架如何将所有这些组件协同工作。对于想要深入学习Struts2的人来说,这是一个很好的起点,可以帮助他们快速掌握...

    struts2入门和配置

    入门Struts2,首先需要了解的是它的核心概念。Struts2的核心组件包括Action、Result、Interceptor(拦截器)等。Action是业务逻辑的执行者,负责处理用户请求;Result则定义了Action执行后的响应结果,如转发到一个...

    struts2入门例子

    这个"struts2入门例子"旨在帮助初学者理解Struts2的基本架构和核心功能,通过实际操作来学习如何配置Struts2框架以及实现页面跳转。 在Struts2中,`struts.xml`是核心配置文件,它是整个应用的入口点,负责定义动作...

    struts2初始使用环境配置

    4. `struts2-spring-plugin.jar`(如果与Spring框架集成) 创建Struts2配置文件`struts.xml`。该文件位于`src/main/resources`或`WEB-INF/classes`目录下,它定义了Action、结果类型、拦截器等配置。基本的`struts....

    struts2入门级的例子

    3. **Struts2配置文件(struts.xml)**: 这个XML文件是Struts2应用的核心,用于配置Action、结果类型、拦截器等。在这个例子中,你会看到如何定义一个Action,指定它的类和执行方法,以及可能的返回结果。 4. **...

    struts2入门实例教程详解

    ### Struts2入门实例教程详解 ...通过以上步骤,我们不仅能够理解Struts2与Struts1在实现机制上的区别,还能掌握如何利用Struts2创建一个简单的Web应用程序。这为后续深入学习Struts2框架提供了坚实的基础。

    Struts2入门案例 实现简单的Struts2入门jar包.rar

    6. ** strut2入门案例**:这个入门案例可能是创建一个简单的“Hello, World”程序,演示如何配置Struts2框架,创建Action类,编写对应的JSP页面,并在web.xml中进行必要的初始化设置。这个例子会帮助初学者快速理解...

    浪曦Struts2系列视频教程

    教程名称:浪曦Struts2系列视频教程课程目录:【】1 Struts2入门与配置【】10 Struts2的核心 拦截器【】11 Struts2的核心 拦截器续【】12 Struts2的文件上传和下载【】13 Struts2的文件上传和下载续【】14 Struts2的...

    Struts2入门教程.pdf

    - **集成iBatis**:探索Struts2与iBatis的集成方案。 - **集成jQuery**:介绍jQuery在Struts2中的应用,包括CSS操作、DOM操作等内容。 #### 十三、案例分析 - **投票管理系统**:通过具体的案例分析,展示了Struts...

    struts2入门学习配置

    本篇将深入讲解Struts2的基础知识和配置过程,帮助初学者快速入门。 首先,理解Struts2的核心概念是至关重要的。Struts2框架基于拦截器模型,通过一系列拦截器堆栈来处理HTTP请求,这些拦截器负责执行如验证、异常...

    Struts2入门demo

    3. **配置文件**:Struts2使用`struts.xml`配置文件来定义Action类与URL的映射,以及Action的属性、结果页面等信息。这是Struts2应用的基础配置。 4. **拦截器(Interceptor)**:Struts2的拦截器机制允许在Action...

Global site tag (gtag.js) - Google Analytics