Struts2是一个比较出色的基于MVC设计模式的框架,是由Struts1和WebWork发展而来的,性能也比较稳定,如今是Apache软件基金会的一个项目,下面就来配置Struts2进行初始化的开发html
Struts2对环境要求不高,JDK版本1.5以上,ServletAPI在2.5以上,Tomcat版本在6.0以上便可,固然更推荐使用最新版本java
首先去Apache官网下载Struts2的类库,http://www.apache.org最下方的Struts项目超连接http://struts.apache.org,进入Struts首页以下:web
点击Download按钮进入下载界面,apache
目前Struts最新版本是2.3.24.1,分为apps项目案例,lib核心驱动,docs文档和src框架源码,根据须要进行下载,我这里下载的struts-2.3.24.1-all.zip这其中包括全部的包,下载到本地解压出来便可,这个页面中还有以前版本的下载连接,也包括struts1的下载连接设计模式
若是想下载全部的历史包,连接是:http://people.apache.org/builds/struts/tomcat
而后打开eclipse for javaEE,新建动态网站项目服务器
输入项目名确认便可,而后就创建了一个普通的web项目,和以前的没有区别,另外注意要建立web.xml配置文件app
而后,打开咱们刚才下载的Struts2中lib目录,这下面有很是多的Struts类库,并非彻底须要,通常状况下咱们只导入经常使用的便可,其余的到须要的时候再导入,须要的jar包以下图:框架
复制到lib目录后,eclipse项目会自动导入web的类库eclipse
而后,配置web.xml,在<web-app>节点之间添加下面代码,也就是Struts2的框架的过滤器
1 <filter> 2 <filter-name>struts2</filter-name> 3 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 4 </filter> 5 6 <filter-mapping> 7 <filter-name>struts2</filter-name> 8 <url-pattern>/*</url-pattern> 9 </filter-mapping>
配置过滤器是Struts2能跑起来最基本的前提,工做原理就是当tomcat容器启动时,首先加载web.xml,因此会加载其中定义的过滤器,所以StrutsPrepareAndExecuteFilter过滤器会过滤项目下全部的请求,而后后来利用过滤器捕获action请求,从而调用相应的方法进行处理,这就是Struts2的大体工做状况,StrutsPrepareAndExecuteFilter类出现可让开发人员自定义过滤器,从而在请求到达处理之间对用户请求进行处理
配置好web.xml后须要创建Struts2的核心配置文件,位置就是项目下的src目录中,创建struts.xml文件,他负责配置全部的请求对应各类类或者方法,因此是核心配置文件,基本的结构以下:
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 4 "http://struts.apache.org/dtds/struts-2.3.dtd"> 5 <struts> 6 7 8 </struts>
头部是声明,咱们全部的配置都写在<struts></struts>标签的内部,那么写一个最简单的配置:
1 <package name="default" namespace="/" extends="struts-default"> 2 <action name="hellostruts2" class="net.zengzhiying.action.HelloStruts2Action"> 3 <result>/result.jsp</result> 4 </action> 5 6 <action name="login" method="login" class="net.zengzhiying.action.HelloStruts2Action"> 7 <result>/login.jsp</result> 8 </action> 9 </package>
在这里,一个action就负责处理一个请求,packge咱们使用的默认包,当有多个packge时,name必定要区分开,namespace就是访问的空间,咱们的项目名是HelloStruts2,若是命名空间是/test那么应该访问,http://localhost:8080/HelloStruts2/test/自定义的action
第一个action对应的访问路径就是http://localhost:8080/HelloStruts2/hellostruts2.action固然默认也能够不加action
第二个action对应的就是http://localhost:8080/HelloStruts2/login.action
而后去创建一个Action类,就是HelloStruts2Action,类名命名必须是以Action结尾的驼峰命名,而且继承于ActionSupport类,具体代码以下:
1 package net.zengzhiying.action; 2 3 import com.opensymphony.xwork2.ActionSupport; 4 5 public class HelloStruts2Action extends ActionSupport { 6 7 private static final long serialVersionUID = 1L; 8 9 @Override 10 public String execute() throws Exception { 11 System.out.println("执行Action"); 12 13 return SUCCESS; 14 } 15 16 //新增自定义方法 17 public String login() { 18 return SUCCESS; 19 } 20 21 }
若是前面配置文件没指定method属性,默认访问的方法就是execute方法,咱们另外还自定义了一个login方法,SUCCESS常量返回了默认的<result>指定的视图,下面创建对应的jsp文件
result.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>成功视图</title> 8 </head> 9 <body> 10 Hello Struts2 11 </body> 12 </html>
另外login.jsp的创建也是同样,就不列出了,如今一个基本的Struts2应用就建好了,如今启动服务器,访问便可看到结果:
而后我么看控制台也进行了打印输出
同时访问login也是相同的效果
以上就是基本的配置了,另外在配置文件struts.xml中还能够配置感叹号、通配符等多种灵活的访问方式,还能够配置访问后缀等参数,同时Struts2框架强大的功能更远不止这些,还须要不断地学习研究