Struts 2的下载和安装
一.为Web应用增加Struts 2支持
下载和安装Struts 2步骤:
- 登录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的下载和安装的更多相关文章
- Spring 下载与安装以及spring 3.2.9 jar包详解
一.Spring简介 Spring官网改版后,很多项目的完整zip包下载链接已经隐掉了,虽然Spring旨在引导大家用更“高大上”的maven方式来管理所依赖的jar包,但是完全没想到中国的国情,在 ...
- Maven的下载,安装,配置,测试,初识以及Maven私服
:Maven目录分析 bin:含有mvn运行的脚本 boot:含有plexus-classworlds类加载器框架 conf:含有settings.xml配置文件 lib:含有Maven运行时所需要的 ...
- spring下载和安装
下载和安装Spring请按例如以下步骤进行. (1)登录网站,下载Spring的最新稳定版本号.最新版本号为spring-framework-4.0.建议下载spring-framework-sp ...
- UE4新手引导之下载和安装虚幻4游戏引擎
1) 进入虚幻4的官方主页(https://www.unrealengine.com/) 这里你可以获得关于虚幻4的最新资讯,包括版本更新.博客更新.新闻和商城等.自2015年起,该引擎已经提供免费下 ...
- git-2.10.2-64-bit介绍&&git下载&&git安装教程
Git介绍 分布式:Git系统是一个分布式的系统,是用来保存工程源代码历史状态的命令行工具. 保存点:Git的保存点可以追踪源码中的文件, 并能得到某一个时间点上的整个工程项目的状态:可以在该保存点将 ...
- JDK下载、安装、配置环境变量笔记
自己总是在下载.安装.配置JDK的环境变量,但是这些需要的专业知识并不难,但有很多细节很重要,总是记不住,而且这些细节一旦出错影响还是很严重的,在网上查到的信息很多都比较零散,而且讲解得也不是很详细, ...
- my SQL下载安装,环境配置,以及密码忘记的解决,以及navicat for mysql下载,安装,测试连接
一.下载 在百度上搜索"mysql-5.6.24-winx64下载" 二.安装 选择安装路径,我的路径“C:\Soft\mysql-5.6.24-winx64” 三.环境配置 计算 ...
- 如何下载和安装CocoaPods
朋友自己学习了一段时间就去公司实习了去了之后公司用的是CocoaPods,他一脸茫然的向我求助,我这才想起来写着一遍为了帮助更多的朋友 CocoaPods是什么? 当你开发iOS应用时,会经常使用到很 ...
- CocoaPods介绍。如何安装Ruby环境,如何下载和安装CocoaPods?
CocoaPods介绍? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其 ...
随机推荐
- Pycharm连接Mysql失败. [08001] Could not create connection to database server.
使用Pycharm连接MySQL时遇到如下问题,错误代码[08001] 查了很多资料归纳一下可能是如下几个原因 0.mysql.server没开 找到对应系统下的mysql.server 启动/重启命 ...
- 八十一、SAP中的ALV的简介(ABAP List Viewer)
一.ALV是SAP中的一个表格,全称为:ABAP List Viewer或者SAP List Viewer,就是可视化表格. ALV是SAP系统中心的列表标准,可以在ABAP程序中进行报表输出.除去列 ...
- [题解] LuoguP3784 [SDOI2017]遗忘的集合
要mtt的题都是...... 多补了几项就被卡了一整页......果然还是太菜了...... 不说了......来看100分的做法吧...... 如果做过付公主的背包,前面几步应该不难想,所以我们再来 ...
- junit基础学习之-参数初始化(5)
package swust.edu.cn.postdoctors.service.impl; import java.util.Arrays; import java.util.Collection; ...
- webpack散记--Typescript
Typescript 1.js的超集 官网:typescriptlang.org/tslang.cn 来自:微软 安装:官方的 npm i typescript ts-loader --save-d ...
- Caffe Install by Cmake in Ubuntu 18.04
环境: Ubuntu 18.04 CUDA 10.0 cudnn opencv 3.0 见 https://www.cnblogs.com/xiaoniu-666/p/11907710.html -- ...
- Vue Element-ui自定义dialog样式
第一步:定义 自定义dialog class名 第二步:全局修改自定义样式 自定义dialogStyle有三个儿子,这样只用找到他们就可以自定更改啦 .custonStyle { xxxxx } .c ...
- Python之日志处理(logging模块)转载
本人主要做一个知识的归类与记录,如是转载类文章,居首都会备注原链接,尊重原创者,谢谢! 此文转载原链接:https://www.cnblogs.com/yyds/p/6901864.html 本节内容 ...
- python复习——数据输入输出
标准输入:x=input()…… 标准输出:print()…… 格式化输出:1.字符串格式化运算符% 例:print('Values are %s,%s,%s.'%(1,2,['one','two'] ...
- Java基础之IO流整理
Java基础之IO流 Java IO流使用装饰器设计模式,因此如果不能理清其中的关系的话很容易把各种流搞混,此文将简单的几个流进行梳理,后序遇见新的流会继续更新(本文下方还附有xmind文件链接) 抽 ...