Struts2框架复习(一)--最基本的struts2框架
前言
最近离职在家,发现之前学习的Struts2框架由于长时间不使用有点生疏,有鉴于此写下此文以备自己复习使用,同时也供大家批评指正。
准备工作
我觉得Struts2主要就是对Servlet的封装,还有些其他功能。所以建议先学好了Servlet再学Struts2。我当时是在培训机构学的,开始不懂后来做多了,也就明白一些了。
本文基于JDK7,Struts2.3,Tomcat7,eclipse进行操作的。
使用Eclipse新建一个Java Web项目,如下图:(记得把项目编码改成UTF-8的,要不会出现中文乱码的)
注意:一定要勾选上面图片的生成web.xml的对号,否则要自己手动生成。
导包
下面的图片的图片是struts2.3的jar包,下载路径:https://pan.baidu.com/s/1kUVMtYR。

每个包的具体作用如下:
将上面的包放入项目的/WebContent/WEB-INF/lib中。
配置web.xml
Struts2是通过filter(拦截器)来启动的,因此web.xml需要为Struts2配置拦截器。
如图在org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter的init()(初始化)方法中将会自动搜索并读取struts.xml完成初始化操作。
注意:Struts2.1.3以下版本的Struts2拦截器对应的类是org.apache.struts2.dispatcher.FilterDispatcher
Struts2.1.3以上版本的Struts2拦截器对应的类是org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter (本处用的是2.3所以是该类)
配置struts.xml
在项目的src目录下新建struts.xml(名字不能改,必须是小写的struts.xml)。
注意:有很多人说在src目录下建立struts.xml,有人说在项目的/WebContent/WEB-INF目录下新建struts.xml。其实都一样,因为src目录是项目默认的Source Folder文件,src下面的.Java文件都编译成了.class文件放入WEB-INF\classes文件夹下,xml文件也会被放在WEB-INF文件夹下。
上面只是个空的struts配置文件,主要是这个头文件是文本类别是
配置Action
struts2拦截到页面请求以后就会到struts.xml去查找对应的action处理请求。
新建包com.demo.action,新建类LoginAction.java,继承自com.opensymphony.xwork2.ActionSupport(也可以不必继承主要是为了方便)。
新建一个String属性message,生成setter和getter方法。
新建一个String方法execute()。还是上图方便。
展示页面
在项目的WebContent目录下新建index.jsp页面,页面内容如下:
注意:这个页面一定在WebContent下,不要写在WEB-INF下。
完善struts.xml
接下来就要把Action和展示页面配置到struts.xml中了。
启动测试
就项目放入tomcat中,启动tomcat,然后访问 http://localhost:8080/Struts2_DEMO/user/login 。
结果如下:
Struts2框架复习(一)--最基本的struts2框架的更多相关文章
- (转)struts2:数据校验,通过XWork校验框架实现(validation.xml)
转载自:http://www.cnblogs.com/nayitian/p/3475661.html struts2:数据校验,通过XWork校验框架实现(validation.xml) 根据输入 ...
- struts2:数据校验,通过XWork校验框架实现(validation.xml)
根据输入校验的处理场所的不同,可以将输入校验分为客户端校验和服务器端校验两种.服务器端验证目前有两种方式: 第一种: 参考:struts2:数据校验,通过Action中的validate()方法实现校 ...
- struts2针对mvc的框架 spring针对解耦与事务的框架
struts2针对mvc的框架 spring针对解耦与事务的框架
- [struts2学习笔记] 第五节 编写struts2的action代码
本文地址:http://blog.csdn.net/sushengmiyan/article/details/40479299 官方文档: http://struts.apache.org/relea ...
- Struts2(三.用户登录状态显示及Struts2标签)
1.编写main.jsp /WebContent/main.jsp 之前用户登录时已把用户存入session <%@ page language="java" content ...
- Spring框架的第四天(整合ssh框架)
## Spring框架的第四天 ## ---------- **课程回顾:Spring框架第三天** 1. AOP注解方式 * 编写切面类(包含通知和切入点) * 开启自动代理 2. JDBC模板技术 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) 前言:这篇博客开始我们便一步一步的来实现这 ...
- .NET框架设计(常被忽视的框架设计技巧)
阅读目录: 1.开篇介绍 2.元数据缓存池模式(在运行时构造元数据缓存池) 2.1.元数据设计模式(抽象出对数据的描述数据) 2.2.借助Dynamic来改变IOC.AOP动态绑定的问题 2.3.元数 ...
- 动端逐渐出了许多的移动端的框架,比如Sencha Touch、JQTouch、Jquery-moblie、jqMobi等等。这些框架都有优缺点,不同的框架应用在不同的项目中。现简单阐述一下各框架的优缺点:
移动前端工作的那些事---前端制作之微信小技巧篇 (2013-11-15 15:20) 转载▼ 标签: it css3/javascript html5 webapp 手机网站搭建 分类: 前端制 ...
- 通过Ruby On Rails 框架来更好的理解MVC框架
通过Ruby On Rails 框架来更好的理解MVC框架 1.背景 因为我在学习软件工程课程的时候,对于 MVC 框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用 MVC ...
随机推荐
- Android RecyclerView嵌套EditView实时更新Item数据
一.场景(例如:购物车) 1.当我们需要以列表样式管理某些数据时,可能需要列表项的某个字段可编辑 2.编辑Item上的某个字段后可能还要更新相关字段的值 二.可能遇到的问题 1.列表滑动导致输入框中的 ...
- 接口与抽象类的区别-Java
概念-抽象类: 类是对某一个对象的具体描述,抽象类则是对有共通之处的对象,描述共通之处的类;包含抽象方法的类一定的抽象类,抽象类并不一定包含抽象方法;抽象类中可以有数据成员,但数据成员必须是stati ...
- Farseer.net轻量级开源框架 入门篇:分类逻辑层
导航 目 录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 缓存逻辑层 下一篇:Farseer.net轻量级开源框架 入门篇: 添加数据详解 ...
- 在iframe内页面完全加载完后,关闭父页面生成的div遮罩层
遮罩层div为iframe父页面生成,需在iframe内页面完全加载完后,关闭遮罩层 alertMsgClose() :函数为关闭遮罩层函数 此段代码在iframe页面内: <script> ...
- MySql学习笔记(三) —— 聚集函数的使用
1.AVG() 求平均数 select avg(prod_price) as avg_price from products; --返回商品价格的平均值 ; --返回生产商id为1003的商品价格平均 ...
- CAD执行一个带参数的命令(com接口VB语言)
主要用到函数说明: MxDrawXCustomFunction::Mx_SendStringToExecute 执行一个带参数的命令.详细说明如下: 参数 说明 CString sCmaName 命令 ...
- @ControllerAdvice全局异常拦截
@ControllerAdvice 拦截异常并统一处理 在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler.@InitBinder ...
- JavaScipt30(第十八个案例)(主要知识点:Array.prototype.map)
承接上文,这是第十八个案例,中间的十到十八我直接看了答案,因为有些例子从他打开的页面看不出他要做什么. 附上项目链接: https://github.com/wesbos/JavaScript30 这 ...
- if语句,while语句,do whlie语句,循环语句
总结: 1.定义数组并赋值: var arr=[1,2,3,4]; 2.通过下标访问数组: var str=arr[0]; 3.自定义数组 var arr=new Array(); 4.数组的赋值 a ...
- Oracle XE WM_CONCAT undifine
用docker 跑了个oracle XE 报错 没有WM_CONCAT 下载三个sql文件然后按顺序执行后可以正常使用 一:下载三个文件 解压到 oracle 目录下面 (要能找到,注意权限要o ...