Struts2开发步骤
第一步:新建we项目
新建名称为“Struts"的web工程,新建方法:File->New->Web Service Project->Profect Name中输入:Struts->点击Finish按钮完成新建。
第二步:导入架包
(1)在Struts工程的右键菜单上选择"Properties"命令,打开”Properties for Struts2"对话框,在struts2解压后的lib目录中选择如下13个文件:asm-3.3.jar,asm-commons-3.3.jar,asm-tree-3.3.jar,commons-fileupload-1.3.jar(文件上传时需要使用),commons-io-2.2.jar( Java io扩展),commons-lang3-3.1.jar( 包含了一些数据类型的工具类),commons-logging-1.1.3.jar(日志处理),freemarker-2.3.19.jar( Struts2的标签模板使用类库),javassist-3.11.0.GA.jar(对字节进行处理),log4j-1.2.17.jar,ognl-3.0.6.jar( Struts2使用的一种表达式语言类库),struts2-core-2.3.16.jar(Struts2框架的核心类库),xwork-core-2.3.16.jar( XWork类库,Struts2的构建基础)
(2)再把上面13个jar包考到“WebRoot\WEB-INF\lib”目录下
第三步:配置web.xml文件
StrutsPrepareAndExecuteFilter//struts准备和执行的一个过滤器
(导包:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter)
<!-- Struts2核心过滤器配置 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>/org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!-- <url-pattern></url-pattern>过滤的请求格式 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern></url-pattern>
</filter-mapping>
第四步:开发视图层页面
创建一个login.jsp
<div align="center">
<form action="" method="post">
用户名:<input type="text" name=""/><br/>
密 码:<input type="password" name=""/><br/>
<input type="submit" value="登录"/>
</form>
</div>
第五步:开发控制层Action
实现Action(import com.opensymphony.xwork2.Action;)
public class HelloWorldAction implements Action {
// 用户输入的姓名
private String name = "";
// 向用户显示的信息
private String message = "";
public String execute() {
// 根据用户输入的姓名,进行"Hello,XXXX!"的封装
this.setMessage("Hello,"+this.getName()+"!");
// 处理完毕,返回导航结果的逻辑名
return "success";
}
…
//省略setter、getter方法
}
第六步:src下配置Struts.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>
<!-- 打开方法的动态调用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<!-- Struts-default里面是一些拦截器的配置 ("/")代表根目录-->
<package name="mypackage" extends="struts-default" namespace="/">
<action name="user" class="com.zking.action.UserAction">
<!--成功跳转到login_success.jsp页面-->
<result name="success" type="">login_success.jsp</result>
<!--失败跳转到login_success.jsp页面-->
<result name="fail" >login_fail.jsp</result>
</action>
</package>
</struts>
第八步:发布项目
按"F11"发布项目到Tomcat服务器或右键单击项目->Run As->Myeclipse Server Application->Tomcat6.0->OK即可。
struts2的执行流程:
浏览器发起请求--->服务器接收并处理请求--->项目的web.xml 中匹配过滤器--->匹配是否有对应的Action--->生成对应的Action对象--->调用action对象的处理方法--->返回结果。
详细流程图:

<struts>
<!--
constant 常量配置
struts.devMode 设置是否是开发模式
-->
<constant name="struts.devMode" value="true" />
<!-- 设置编码 -->
<constant name="struts.i18n.encoding" value="utf-8"/>
<!-- 设置action的扩展名 -->
<constant name="struts.action.extension" value="action,,do"/>
<!--
package表示一个包每个包下可以配置多个action 包的作用主要用来区分不同模块的配置
不同模块配置在不同的包下
name 是包名 在项目下唯一 通常使用模块名做为包名
extends 表示继承 必须直接或者间接继承struts-default
namespace 表示命名空间 命名空间和请求名直接相关
请求名=项目发布路径名+namespace名+action名
namespace名称通常也和模块名相关
-->
<package name="default" extends="struts-default" namespace="/user">
<!-- action 配置请求名 一个action表示对一个请求的处理
name在同一个包下唯一 会作为请求名称 该名称会自动将请求的扩展名去掉,所以不用配置扩展名
class 配置处理请求的类的完全限定名=包名+类名。如果不配置class默认由
com.opensymphony.xwork2.ActionSupport来处理。
method 配置处理方法的名称 默认由execute方法处理
在struts2中处理方法 必须是 public的,返回值必须是String。
-->
<action name="hello" class="cn.sxt.action.HelloAction" method="hello">
<!-- result配置的结果集处理 每个action中可以及配置多个result
name表示结果集名称 和处理方法的返回值进行匹配 默认是success;
type表示结果集类型
dispatcher 转发-默认
redirect 重定向
redirectAction 重定向到另外一个action
stream 流
chain 表示action链
result中填写要跳转的页面的路径
-->
<result name="success" type="dispatcher">/index.jsp</result>
</action>
</package>
<!--
include用于添加其他配置文件,在团队开发中使用
不同模块一般使用不同的配置文件,在总的配置文件中加入即可
-->
<include file="user.xml"></include>
</struts>
Struts2开发步骤的更多相关文章
- struts2 之 【struts2简介,struts2开发步骤,struts2详细配置,struts2执行流程】
入门框架学习避免不了的问题: 1. 什么是框架? 简单的说,框架就是模板,模子,模型.就是一个可重用的半成品. 2. 如何学习框架? 学习框架其实就是学习规则,使用框架就是遵循框架的规则,框架是可变的 ...
- Struts2开发步骤(及Struts2配置相关)
1.在web.xml定义Filter来拦截用户请求. <filter> <filter-name>struts2</fil ...
- Struts2第二篇【开发步骤、执行流程、struts.xml讲解、defalut-struts讲解】
前言 我们现在学习的是Struts2,其实Struts1和Struts2在技术上是没有很大的关联的.Struts2其实基于Web Work框架的,只不过它的推广没有Struts1好,因此就拿着Stru ...
- Struts2与Hibernate联合开发步骤
hibernate与struts2的联合开发步骤: 1. 建立web工程 2. 加入jar包,struts2.hibernate.数据库连接的包 3. 数据表和bean之间的映射,以及相应的映射文件* ...
- struts2学习笔记2 -struts2的开发步骤和工作原理
struts2的开发步骤: 1.先定义一个能发送请求的页面,可以是链接,也可以是表单(form) 2.开发action类,struts2对action并没有过多的要求,只要求: a 推荐实现actio ...
- 深入分析JavaWeb Item43 -- Struts2开发入门
一.Struts2概述 1.Struts2是什么? Struts2是一个M(模型-域–范围模型)V(View视图)C(控制器)框架(模型2).框架都是一个半成品. 提高开发效率. Struts1是一个 ...
- 1.Struts2简介和Struts2开发环境搭建
一.Struts2简介: 1.什么是Struts2? 著名的SSH三大框架分别为:表现层(Struts).业务逻辑层(Spring),持久化层(Hibernate). Struts2是在WebWork ...
- 【OpenWRT】【RT5350】【三】MakeFile文件编写规则和OpenWRT驱动开发步骤
一.Makefile文件编写 http://www.cnblogs.com/majiangjiang/articles/3218002.html 可以看下上面的博客,总结的比较全了,在此不再复述 二. ...
- Struts2开发环境搭建,及一个简单登录功能实例
首先是搭建Struts2环境. 第一步 下载Struts2去Struts官网 http://struts.apache.org/ 下载Struts2组件.截至目前,struts2最新版本为2.3.1. ...
随机推荐
- C++类中成员变量的初始化总结(转帖)
本文转自:C++类中成员变量的初始化总结 1. 普通的变量: 一般不考虑啥效率的情况下 可以在构造函数中进行赋值.考虑一下效率的可以再构造函数的初始化列表中进行. 1 class CA ...
- 20145301 《Java程序设计》第八周学习总结
20145301 <Java程序设计>第八周学习总结 教材学习内容总结 第十五章部分 - 通用API 日志API 日志: 日志对信息安全意义重大,审计.取证.入侵检测等都会用到日志信息 L ...
- 20145314郑凯杰 《Java程序设计》第8周学习总结
20145314郑凯杰 <Java程序设计>第8周学习总结 教材学习内容总结 代码已托管 第十五章 通用API ①日志: 日志对信息安全意义重大,审计.取证.入侵检测等都会用到日志信息 使 ...
- MR案例:倒排索引 && MultipleInputs
本案例采用 MultipleInputs类 实现多路径输入的倒排索引.解读:MR多路径输入 package test0820; import java.io.IOException; import j ...
- CSS控制滚动条的样式
到今天(2018年10月25日)为止, 这还是chrome上的一个实验性特性: ::-webkit-scrollbar{width:4px;height:4px;} ::-webkit-scrollb ...
- mybatis缓存有关的设置和属性
知识点:mybatis缓存相关的设置和属性 重点:每次执行增删改操作后,一二级缓存被清空,是因为标签设置默认属性为 flushCache="true" (1) <!-- 全局 ...
- C#设计模式之控制反转即依赖注入-微软提供的Unity
使用VS2015的Nuget管理器下载Unity. 程序员接口类: 1 namespace UnityDemo 2 { 3 public interface IProgrammer 4 { 5 voi ...
- SQL Server----解决SQL Server 配置管理器不见了
错误重现: 之前安装好的SQL Server 2012打开都没有问题,好多天没有打开了,今天打开我的SQL Server 2012 连接时出现错误: 在与SQL Server 建立连接时出现与网络相关 ...
- Linux Shell参数替换
Linux Shell参数替换 2013-06-03 10:01 by 轩脉刃, 1816 阅读, 0 评论, 收藏, 编辑 Bash中的符号的作用是参数替换,将参数名替换为参数所代表的值.对于 来说 ...
- NumPy教程目录
NumPy Ndarray对象 NumPy数组属性 NumPy数据类型 NumPy数组创建例程 NumPy来自现有数据的数组 NumPy来自数值范围的数组 NumPy切片和索引 NumPy - 高级索 ...