一个简单的struts2 程序
来源:互联网 发布:淘宝商城排名规则 编辑:程序博客网 时间:2024/06/05 10:12
一、什么是Struts2
struts2是以WebWork为核心,采用拦截器机制来处理用户请求,从而使业务逻辑控制与Servlet API完全脱离开
struts2是一个可重用的MVC2设计框架。基于Action的struts2框架把servlet和jsp组件整合在一起,把用户的页面请求和处理分拆成处理逻辑和表现逻辑。这就是业界流行的所谓的MVC模式,叫做Model2
在MVC模式中,servlet是控制器,集中处理所有的客户端页面请求。它们把所请求的URL与被称为Action的工作单元映射到一起。
Action的工作就是访问HTTP会话、HTTP请求、和表单参数等,然后调用业务逻辑,即把响应映射到以pojo形式的模型上执行相应的处理
Action返回的结果会通过配置文件映射到jsp页面,jsp会渲染给客户
二、框架构成
struts2框架主要由3部分组成:
1)核心控制器FilterDispatcher:该控制器实际上是一个Filter,并充当Web应用的门户,负责拦截所有的用户请求。让用户的请求到达时,Filter会将所有扩展名为action(*.action)的请求交由struts2框架处理,框架会根据所请求的action名决定调用那个业务逻辑组件
2)业务逻辑器
3)用户业务逻辑组件
struts2中还有一些拦截器,它们负责将httpservletRequest请求参数解析出来并传入Action中,然后回调Action的execute方法处理用户请求。
架构如下:
Struts2的所有action都定义在配置文件struts2.xml中,每一个Action都有一个name属性和一个class属性,前者决定该ACTION的请求名,后者决定该action的具体实现类
三、实例
在Eclipse中新建Dynamic Web Project
1、 导入Struts2开发所需的jar包(最少6个包)
到WebContent/WEB-INF/lib下
目录结构:
2、 配置web.xml文件
3、 在src下新建struts.xml
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC"-//ApacheSoftware Foundation//DTD Struts Configuration 2.1//EN""http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<packagename="login"namespace="/login"extends="struts-default">
<actionname="loginAction"class="com.sun.test">
<resultname="input">login.jsp</result>
<resultname="success">welcome.jsp</result>
<resultname="failture">failture.jsp</result>
</action>
</package>
</struts>
注意:
<package>标签用于声明Action所属的包,struts2是通过包来组织Action的,一个package中可以包含多个<action>
<package>中的namespace属性设置了jsp页面所在的路径,namespace=”/login”表示jsp页面在login文件夹中
<action>标签配置一个Action类,它的名字是”loginAction” 相应的类为com.sun.test(com/sun文件夹下的test.java)
<action>的子标签<result>用于声明页面跳转控制。默认的跳转方式为dispatcher,即服务器内部跳转
如果execute(默认)的返回值为”success”就跳转到welcome.jsp,若返回值为”failture”则跳转到failure.jsp
4、新建action类
其中包括属性的声明、getter、setter方法、execute方法(当然还可以定义其他方法)
package com.sun;importjava.util.Date; importcom.opensymphony.xwork2.ActionSupport;public classtest extends ActionSupport{private String username, password;private String msg;public String execute() throws Exception { if (username.equals("admin")&& password.equals("123456")) { msg = "登录成功,欢迎您:" + username ; return "success"; } else { msg = "登录失败,用户" + username + "不存在或口令有误!"; return "failure"; }} public String getUsername() { return username;}public void setUsername(String username) { this.username = username;} public String getPassword() { return password;}public void setPassword(String password) { this.password = password;} public String getMsg() { return msg;}public void setMsg(String msg) { this.msg = msg;}}
5、 新建jsp页面
注:
<s:form>用于组织表单数据,其中的action=”loginAction” 指交给处理的目标,也就是name=”loginAction”的Action,重要的是这里也要配置namespace,否则会出现找不到Action的异常
在浏览器中输入:http://localhost:8080/strutstest/login/login.jsp
就可以访问了
- 一个简单的struts2 程序
- 一个简单的struts2程序
- 创建一个简单的Struts2程序
- struts2 一个简单的 struts2程序(HelloWorld)
- struts2 的一个简单配置
- 一个简单的Struts2应用
- 简单的一个程序
- 一个简单的程序
- 一个简单的程序
- 利用struts2,mybatis,spring,三大框架写的一个简单的查询程序
- 将struts2和hibernate结合实现一个简单的小程序(一)
- 将struts2和hibernate结合实现一个简单的小程序(二)
- 一个简单的Struts2的 示例
- 一个Struts2的简单的使用实例
- 一个简单登录的Struts2的示例
- struts2的搭建简单测试程序
- 第一节 一个最简单的Struts2实例
- Struts2拦截器的一个简单应用
- K/3 CLOUD登录安装silverlight失败提示1603错误的解决办法。
- ARM Linux启动过程分析(转的别人一篇论文)
- tar bz2 解压
- ios文件存储--NSFileHandle
- 在Word 2007中添加参考文献及其引用的方法
- 一个简单的struts2 程序
- java操作任何树桩excel
- 详解linux下auto工具制作Makefile源码包(工具安装篇)
- linux学习总结8
- 可有可无的话
- 黑马程序员-单例设计模式
- C++本质:类的赋值运算符=的重载,以及深拷贝和浅拷贝
- Material Theme
- C.Primer.Plus(第6版)第三章第4道练习题