一.为Web应用增加Struts 2支持

下载和安装Struts 2步骤:

  1.   登录http://struts.apache.org/download.cgi站点,下载Struts 2的最新版,下载时有以下几个选项:
      • Full Distribution:下载Struts的完整版,通常建议下载该选项,该选项包括Struts2的实例应用,空示例应用,核心库,源代码和文档。
      • Example Applications:仅下载Struts2 的示例应用。
      • Essential Dependcies:仅下载Struts2的核心库。
      • Documentation:仅下载Struts2的相关文档
      • Source:下载Struts的全部源代码

      通常建议下载第一个选项 ,既下载Struts的完整版,将下载的文件解压,该文件夹包含以下文件结构:

          

      • apps:该文件夹下包含了基于Struts的示列应用。
      • docs:该文件夹下包含了Struts的相关文档。
      • lib    :该文件夹下包含了Struts框架的核心库类,以及Struts的第三方插件类库。
      • src   :该文件夹下包含了Struts2框架的全部源代码。

   2.   将Struts 2的lib文件夹下的commons-fileupload-1.2.1.jar,  commons-io-1.3.2.jar,freemarker-2.3.16.jar,javassist-3.7.ga.jar,ognl-3.0.jar, struts2-core-2.2.1.jar 和xwork-core-2.2.1.jar必须类库复制到Web应用的WEB-INF/lib路径下。如果需要在Web的应用中使用Struts2的更多特性, 则需要将相应的类库复制到此路径下,如果需要在DOS或者Shell中下手编译Struts2的相关程序,则还应该将struts-core-2.2.1.jar和xwork-core-2.2.1.jar添加到系统的CLASSPATH环境变量中。

   

    大部分时候,使用Struts2的Web应用并不需要利用到Struts2的全部特性,应此没有必要将lib路径下的JAR文件一次性复制到Web应用的WEB-INF/lib路径下。

    还有一点,可能有些人找不到javassist-3.7.ga.jar,这个JAR包是一个动态编译,生成Java字节码的类库,可登陆http://www.javassist.org/下载该JAR包,也可在Hibernate3.6的lib\bytecode\javassist路径下找到该包。

  3.   编辑Web应用的web.xml配置文件,配置Struts2的核心Filter,

      

<filter>  根元素用于注册一个filter
  <filter-name></filter-name>    子元素用于设置Filter的名称
  <filter-class></filter-class>   子元素用于设置Filter的完整类名
</filter> <filter-mapping>          根元素用于设置一个Filter所拦截的Web资源
  <filter-name></filter-name>    子元素用于设置Filter的名称,此名称必须要与filter中<filter-name></filter-name>的一样
  <url-pattern></url-pattern>    该子元素用于匹配用户请求的URL,例如“/Myservlet”
</filter-mapping>

    经过以上的三个步骤,就可以在一个Web应用中使用Struts2的基本功能了

    上面的步骤仅完成了Web应用增加了Struts2的支持,但依然没有使用Struts功能,使用Struts功能至少还需要一个struts.xml的配置文件,这个配置文件默认放在Web应用的类加载路径下(通常就是WEB-INF/classes路径)。

二.在Eclipse中使用Struts2

  让Web应用具有Struts2的功能,必须将Struts2框架的核心库类加载到Web应用中。刷新过后就可以看到如下界面

   在Struts2 2.5中原来的xwork单独的jar已经合并到了struts-core的jar包中了,出现如图界面,表示Web应用以已经加入了Struts2的基础类库,但是还是需要修改web.xml文件,让该文件负责加载Struts的框架。

  注意:在开始创建web应用时,如果选择的时3.0版本,是没有web.xml文件的,选择2.5版本是可以看到web.xml文件的。

  单击web.xml文件节点,编辑该文件,同时是在web.xml中定义Struts的核心Filter,并定义Filter所拦截的URL模式,(固定的)

<!--定义Struts2的核心Filter-->
<filter>
<filter-name>struts2</filter-name>

<!--在Struts2的版本为2.5之前是这样写的-->
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!--让Struts2的核心拦截所有的请求-->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

 

  

三.增加登录处理

  下面为StrutsDemo应用增加一个简单的登录处理流程,通过这个流程可以大致了解Struts2的开发步骤

  增加一个JSP页面,名为index.jsp

  

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<form action="login">
用户名:<input type="text" name="uname"><br>
密 码:<input type="text" name="upass"><br>
<input type="submit" value="登陆" />
</form>
</body>
</html>

  

  再设置一个登录成功的页面Helloword.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body> <h1>Hello Strtus2!!!!你好</h1>
</body>
</html>

  

  在设置一个登录失败的页面,error.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<h1>登陆出错</h1>
</body>
</html>

  配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>StrutsDemo</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list> <!--定义Struts2的核心Filter-->
<filter>
<filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>在Struts2.5之前是这样写的
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> 在Struts2.5之后是这样写的
</filter>
<!--让Struts2的核心拦截所有的请求-->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> </web-app>

  创建一个DemoLog类,用来验证登录账号和密码是否正确

package com.strtus2.action;

import com.opensymphony.xwork2.Action;

public class DemoLog implements Action {
private String uname;
private String upass;
@Override
public String execute() throws Exception {
System.out.println("姓名:"+uname);
System.out.println("密码:"+upass);
if(uname.equals("ykp")&&upass.equals("123")){ return SUCCESS;
}
return "error";
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpass() {
return upass;
}
public void setUpass(String upass) {
this.upass = upass;
} }

  再在src里面创建一个xml文件(上面显示要把此文件放在Web应用的类加载路径中,但是为什么此处却放在src中?因为现在在Eclipse工具的管理下,当Eclipse生成,部署Web项目时,会自动将src路径下除了 *.java外的所有文件复制到Web的WEB-INF/classes路径下)

<?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" namespace="/" extends="struts-default">
<action name="login" class="com.strtus2.action.DemoLog">
<result name="success">/Helloword.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>

  运行结果

  运行项目时一直出现了404错误,访问任何资源都是找不到,控制台一直显示找不到org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

  百度后才知道Struts2的版本不同,此处的写法也不同,如下:

  

Struts 2的下载和安装的更多相关文章

  1. Spring 下载与安装以及spring 3.2.9 jar包详解

    一.Spring简介  Spring官网改版后,很多项目的完整zip包下载链接已经隐掉了,虽然Spring旨在引导大家用更“高大上”的maven方式来管理所依赖的jar包,但是完全没想到中国的国情,在 ...

  2. Maven的下载,安装,配置,测试,初识以及Maven私服

    :Maven目录分析 bin:含有mvn运行的脚本 boot:含有plexus-classworlds类加载器框架 conf:含有settings.xml配置文件 lib:含有Maven运行时所需要的 ...

  3. spring下载和安装

    下载和安装Spring请按例如以下步骤进行.   (1)登录网站,下载Spring的最新稳定版本号.最新版本号为spring-framework-4.0.建议下载spring-framework-sp ...

  4. UE4新手引导之下载和安装虚幻4游戏引擎

    1) 进入虚幻4的官方主页(https://www.unrealengine.com/) 这里你可以获得关于虚幻4的最新资讯,包括版本更新.博客更新.新闻和商城等.自2015年起,该引擎已经提供免费下 ...

  5. git-2.10.2-64-bit介绍&&git下载&&git安装教程

    Git介绍 分布式:Git系统是一个分布式的系统,是用来保存工程源代码历史状态的命令行工具. 保存点:Git的保存点可以追踪源码中的文件, 并能得到某一个时间点上的整个工程项目的状态:可以在该保存点将 ...

  6. JDK下载、安装、配置环境变量笔记

    自己总是在下载.安装.配置JDK的环境变量,但是这些需要的专业知识并不难,但有很多细节很重要,总是记不住,而且这些细节一旦出错影响还是很严重的,在网上查到的信息很多都比较零散,而且讲解得也不是很详细, ...

  7. my SQL下载安装,环境配置,以及密码忘记的解决,以及navicat for mysql下载,安装,测试连接

    一.下载 在百度上搜索"mysql-5.6.24-winx64下载" 二.安装 选择安装路径,我的路径“C:\Soft\mysql-5.6.24-winx64” 三.环境配置 计算 ...

  8. 如何下载和安装CocoaPods

    朋友自己学习了一段时间就去公司实习了去了之后公司用的是CocoaPods,他一脸茫然的向我求助,我这才想起来写着一遍为了帮助更多的朋友 CocoaPods是什么? 当你开发iOS应用时,会经常使用到很 ...

  9. CocoaPods介绍。如何安装Ruby环境,如何下载和安装CocoaPods?

    CocoaPods介绍? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其 ...

随机推荐

  1. flink笔记(三) flink架构及运行方式

    架构图 Job Managers, Task Managers, Clients JobManager(Master) 用于协调分布式执行.它们用来调度task,协调检查点,协调失败时恢复等. Fli ...

  2. Python 删除文件与文件夹

    版权所有,未经许可,禁止转载 章节 Python 介绍 Python 开发环境搭建 Python 语法 Python 变量 Python 数值类型 Python 类型转换 Python 字符串(Str ...

  3. selenium2Library无法启动chrome

    使用其他浏览器都没有影响,唯独chrome启动不起来,去掉IE-连接-局域网设置-自动检测设置就OK了

  4. Cobalt Strike简单使用(9,29第十五天)

    本文转自:https://www.cnblogs.com/yuanshu/p/11616657.html 一.介绍: 后渗透测试工具,基于Java开发,适用于团队间协同作战,简称“CS”. CS分为客 ...

  5. 2016蓝桥杯决赛C/C++A组第四题 路径之谜

    题意: 小明冒充X星球的骑士,进入了一个奇怪的城堡.城堡里边什么都没有,只有方形石头铺成的地面. 假设城堡地面是 n x n 个方格.[如图1.png]所示. 按习俗,骑士要从西北角走到东南角.可以横 ...

  6. UVA - 11400 Lighting System Design(照明系统设计)(dp)

    题意:共有n种(n<=1000)种灯泡,每种灯泡用4个数值表示.电压V(V<=132000),电源费用K(K<=1000),每个灯泡的费用C(C<=10)和所需灯泡的数量L(1 ...

  7. 进度5_家庭记账本App_数据库的添加和查看

    今天继续在昨天的基础上完成了家庭记账单的在数据库中的添加和查看功能 在之前的基础上舍弃了Fragment,重新在百度上找到了学习资料,并且自我完成了实践 首先在之前的基础上创建CostListAdap ...

  8. s5pc100开发板linux内核移植

    相关软件下载地址:http://pan.baidu.com/s/16yo8Y 应用于FSC100开发板 交叉编译工具:arm-cortex_a8-linux-gnueabi-gcc linux-2.6 ...

  9. [转自官方文档] Django——render()

    每个视图都需要做2件事,返回一个包含被请求页面内容的HttpResponse对象或者一个404 快捷函数  render( 请求, 模板, 内容) 载入模板,填充上下文,再返回它生成的HttpResp ...

  10. 干货分享:Essay Introduction的正确打开方式

    其实在学术essay写作过程中,很多留学生经常不知道如何写introduction,所以有些开头的模板句就出现了,比如,With the development of society/With the ...