Struts 2.3.4.1完整示例
【系统环境】Windows 7 Ultimate 64 Bit
【开发环境】JDK1.6.21,Tomcat6.0.35,MyEclipse10
【其他环境】Struts2.3.4.1
【项目描述】Struts2.3.4.1完整示例
目录结构:
使用的jar包

struts.xml 文件内容:
version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE struts PUBLIC
3 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
4 "http://struts.apache.org/dtds/struts-2.3.dtd">
5
6 <struts>
7 <package name="struts2demo" extends="struts-default">
8 <action name="hello"
9 class="zain.struts2.action.HelloWorldAction">
10 <result name="success">/jsp/success.jsp</result>
11 <result name="failure">/jsp/failure.jsp</result>
12 </action>
13 </package>
14 </struts>
我们知道,当我们引入Struts支持的时候,所有的Web请求都将交给Struts核心控制器来处理,根据不同的Action来执行不同的响应,这里的Action的name属性,即是当我们调用这个Action时,执行对应的ActionClass。
web.xml 文件内容
version="1.0" encoding="UTF-8"?>
2 <web-app version="3.0"
3 xmlns="http://java.sun.com/xml/ns/javaee"
4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
6 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
7 <display-name></display-name>
8
9 <!-- 定义Struts2.3.4过滤器 -->
10 <filter>
11 <filter-name>struts2</filter-name>
12 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
13 </filter>
14
15 <!-- Struts2.3.4过滤器映射 -->
16 <filter-mapping>
17 <filter-name>struts2</filter-name>
18 <url-pattern>/*</url-pattern>
19 </filter-mapping>
20
21 <welcome-file-list>
22 <welcome-file>index.jsp</welcome-file>
23 </welcome-file-list>
24 </web-app>
2
3 public class HelloWorldAction
{
4
5 private String
message;
6
7 public String
getMessage(){
8 return message;
9 }
10
11 public String
execute(){
12 message = "Struts2.3.4演示程序。";
13 return "success";
14 }
15
16 }
启动Web服务器并将项目发布完成之后,我们可以执行如下请求来测试是否正确:
http://localhost:8080/Struts234Demo/hello.action (推荐,简洁的不一定是最好的,但一定是最容易理解的)
http://localhost:8080/Struts234Demo/hello!execute.action(如果Action没有重写execute方法,我们也可以通过指定其他方法来处理请求)
http://localhost:8080/Struts234Demo/hello.action?method=execute(如果没有指定请求的方法,那么默认调用execute方法,所以'?method=execute'是可以省略的)
由这里,我们又能发现一个问题:我能否使用.do来进行请求?为什么会出现404?
为什么我在配置web.xml文件时,<url-pattern>里是 /*,却不能使用.do结尾来请求?
这里,我们需要关心一下Struts2的另外一个文件:struts.properties
在其中我们配置:<constant name="struts.action.extension" value="action,do[,x]"/> 注[]为可选内容,可以是一个列表,我们也可以将其配置到struts.xml中
另外,我们可以配置:struts.i18n.encoding=UTF-8 来指定Web应用程序所使用的字符集,处理中文请求的时候多有用到。
Struts 2.3.4.1完整示例的更多相关文章
- 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- WCF服务开发与调用的完整示例
WCF服务开发与调用的完整示例 开发工具:VS2008 开发语言:C# 开发内容:简单的权限管理系统 第一步.建立WCF服务库 点击确定,将建立一个WCF 服务库示例程序,自动生成一个包括IServi ...
- springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置
Log4j由三个重要的组件构成: 日志信息的优先级 日志信息的输出目的地 日志信息的输出格式 日志信息的优先级从高到低有ERROR.WARN. INFO.DEBUG,分别用来指定这条日志信息的重要程度 ...
- C连接MySQL数据库开发之Linux环境完整示例演示(增、删、改、查)
一.开发环境 ReadHat6.3 32位.mysql5.6.15.gcc4.4.6 二.编译 gcc -I/usr/include/mysql -L/usr/lib -lmysqlclient ma ...
- Spring 3 AOP 概念及完整示例
AOP概念 AOP(Aspect Oriented Programming),即面向切面编程(也叫面向方面编程,面向方法编程).其主要作用是,在不修改源代码的情况下给某个或者一组操作添加额外的功能.像 ...
- springmvc 项目完整示例01 需求与数据库表设计 简单的springmvc应用实例 web项目
一个简单的用户登录系统 用户有账号密码,登录ip,登录时间 打开登录页面,输入用户名密码 登录日志,可以记录登陆的时间,登陆的ip 成功登陆了的话,就更新用户的最后登入时间和ip,同时记录一条登录记录 ...
- springmvc 项目完整示例02 项目创建-eclipse创建动态web项目 配置文件 junit单元测试
包结构 所需要的jar包直接拷贝到lib目录下 然后选定 build path 之后开始写项目代码 配置文件 ApplicationContext.xml <?xml version=" ...
- springmvc 项目完整示例03 小结
利用spring 创建一个web项目 大致原理 利用spring的ioc 原理,例子中也就是体现在了配置文件中 设置了自动扫描注解 配置了数据库信息等 一般一个项目,主要有domain,dao,ser ...
- springmvc 项目完整示例04 整合mybatis mybatis所需要的jar包 mybatis配置文件 sql语句 mybatis应用
百度百科: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBat ...
随机推荐
- Sql Server专题二:数据库主要对象
存储过程 (1)减少网络通信量.调用一个行数不多的存储过程与直接调用sql语句的网络通信量可能不会有很大的差别,可是如果存储过程包含上百行sql语句,那么其性能绝对比一条一条的调用sql语句要高得多. ...
- UbuntuOpenStack core componennts
<1,keystone安装配置> 1,yum -y install openstack-keystone python-keystoneclient; 2,配置实用mysql存储keyto ...
- Java面向对象面试案例
- 步步学LINQ to SQL:使用LINQ检索数据【转】
[IT168 专稿]该系列教程描述了如何采用手动的方式映射你的对象类到数据表(而不是使用象SqlMetal这样的自动化工具)以便能够支持数据表之间的M:M关系和使用实体类的数据绑定.即使你选择使用了自 ...
- 解决初学者学不懂android,不理解android的设计
最近在忙着搞一个小项目,所以没有来得及写一些原创性的东西,好容易今天中秋节,就趁现在写一些吧,今天仍然看了些老马的视频,尽管这些东西以前都用过,但是感觉仍然学到了不少东西,说给大家听希望大家也要不要不 ...
- 【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之四】使用绑定C++至Lua的自己定义类
续[Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之三]动手绑定自己定义类至Lua 之后.我们已经完毕了自己定义类至Lua的绑定.在接下来的环节,我们将使用它. 首先,我们须要确定 ...
- sublime常用快捷键整理(未完待续)
sublime常用快捷键整理: 基本操作 cmd+o 打开文件 cmd+w 关闭当前tab cmd+n 打开新页 cmd+shift+n 打开刚刚关闭的页签 一.选择命令 1.多个单词选择 cmd+d ...
- CSS中为什么overflow:hidden能清除浮动(float)的影响?原理是什么?
http://www.zhihu.com/question/30938856 父块没有设置指定的高宽,当子块设置为浮动后,原本包裹子块的父块的高度塌陷消失,这时给父块设置overflow:hidden ...
- UVA 806 Spatial Structures
题意: 如果某一大区域所有色块颜色是相同的,那么这一个大区域就算作一块,如果不同,则将其划分成四个小区域,然后重复上述步骤递归进行直到所有区域的颜色相同为止.然后根据上面划分的区域建树,小区域作为大区 ...
- HTML——表格与表单
1.表格 <table></table> background:背景图片. 属性 值 描述 align left center right 不赞成使用.请使用样式代替. 规定表 ...