基于MVC模式的应用框架之struts
1.struts开发步骤
- 引入struts的jar包;
- 在web.xml中引入struts的核心功能,配置struts核心过滤器;(如果项目中用到了其他过滤器,要放在struts过滤器之前,否则会失效)
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- 开发Action,一般继承自ActionSupport,业务方法必须返回String类型,方法不能有参数;
- 在src/struts.xml中配置Action;
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<package name="hello" extends="struts-default" >
<action name="hello" class="com.juaner.action.HelloAction" method="hello">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
2.struts的执行流程
服务器启动
- 加载项目的web.xml;
- 创建struts核心过滤器对象,并执行其init()方法,依次读取struts-default.xml、struts-plugin.xml、struts.xml配置文件;
访问
- 用户访问Action,服务器根据访问URL找对应的Action类,创建Action实例;
- 执行struts拦截器;
- 以后每次访问都创建Action的实例,然后执行拦截器;
3.struts-default.xml详解
- bean节点制定了struts在运行时创建的节点类型;

- 指定struts-default包,用户写的struts.xml中的package必须要继承此包,

其中包括:
- 跳转的结果类型
dispathcer:默认值
redirect:重定向
redirectAction:重定向到Action资源
stream:文件下载时使用
- 定义了32个拦截器,为了引用方便,可以通过定义栈的方式引用拦截器;
- 默认执行的拦截器(18个),按顺序执行;
- 默认值型的Action;
4.拦截器VS过滤器
拦截器和过滤器都起到拦截资源的作用。
过滤器:
拦截所有资源:jsp、servlet、css、js等;
在所有servlet项目中都可以使用;
拦截器:
只能拦截Action请求;
是struts的概念,只能在struts项目中使用;
基于MVC模式的应用框架之struts的更多相关文章
- struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb
在构建一个简单的基于MVC模式的JavaWeb 中,我们使用了JSP+Servlet+JavaBean构建了一个基于MVC模式的简单登录系统,但在其小结中已经指出,这种模式下的Controller 和 ...
- 构建一个简单的基于MVC模式的JavaWeb
零晨三点半了,刚刚几个兄弟一起出去吼歌,才回来,这应该是我大学第二次去K歌,第一次是大一吧,之后每次兄弟喊我,我都不想去,因为我还是很害怕去KTV,或许是因为那里是我伤心的地方,也或许是因为我在那里失 ...
- 【Unity】基于MVC模式的背包系统 UGUI实现
前言 本文基于MVC模式,用UGUI初步实现了背包系统. Control层包括了点击和拖拽两种逻辑. 博文首发:http://blog.csdn.net/duzixi 下载地址:https://git ...
- 基于MVC模式开发的后台框架
1.ThinkCMF 2.NFine快速开发平台 3.力软快速开发框架 如有好的开发框架希望可以一起交流
- 自己编写基于MVC的轻量级PHP框架
做WEB开发已有三年,每次都写重复的东西, 因此,想自己写一下框架,以后开发方便.本人之前asp.NET一年开发,jsp半年,可是后来因为工作的原故换成PHP.其实很不喜欢PHP的语法.还有PHP的函 ...
- 基于MVC模式的数据库综合练习
一.准备 没什么好说的,直接上代码.... 下面是web.xml <servlet> <servlet-name>list_user</servlet-name> ...
- MVC模式-----struts2框架
MVC模式-----struts2框架 一.struts MVC模式 1.概述 MVC是模型(model)---视图model(view)---控制器(control)的缩写,是一种用于将逻辑.数据和 ...
- 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组
真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...
- 基于 Dojo toolkit 实现 web2.0 的 MVC 模式
前言 MVC 模式是设计模式中的经典模式,它可以有效的分离数据层,展示层,和业务逻辑层.Web2.0 技术由于其良好的用户体验被广泛应用于 WEB 应用的展示层.但是在传统的 web 开发中,展示层的 ...
随机推荐
- Git的优势
分布式,强调个体 公共服务器压力和数据量都不会太大 速度快.灵活 任意两个开发者之间可以很容易的解决冲突 离线工作
- 国内外常用的DNS服务器
国内外常用的DNS服务器 DNS,全称Domain Name System,即域名解析系统,帮助用户在互联网上寻找路径,它在互联网的作用是把域名转换成为网络可以识别的IP地址. 国外DNS服务器地址: ...
- php防止sql注入
[一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最 ...
- Hbase之遍历获取数据
import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import ...
- commonJS — 对象操作(for Object)
for Object github: https://github.com/laixiangran/commonJS/blob/master/src/forObject.js 代码 /** * Cre ...
- STM8s在利用库配置端口的小问题
在应用的时候PA2口需要设置成推挽输出,控制一个外部电源开关,端口初始化程序如下: GPIO_DeInit(GPIOA); GPIO_Init(GPIOA,GPIO_PIN_2,GPIO_MODE_O ...
- 什么是cname a记录
https://support.dnsimple.com/articles/cname-record/ CNAME就是别名记录,就是负责跳转,比如你给某个地址设置了一个cname,那当访问那个cnam ...
- Windows定时器
目录 第1章定时器 1 1.1 创建定时器 1 1.2 销毁定时器 1 1.3 定时器的运作 1 1.3.1 产生WM_TIMER消息 1 1.3.2 分发WM_TIME ...
- Git入门及上传项目到github中
最近需要将课设代码上传到Github上,之前只是用来fork别人的代码. 这篇文章写得是windows下的使用方法. 第一步:创建Github新账户 第二步:新建仓库 第三部:填写名称,简介(可选), ...
- url重写后发布出错问题
iis7 配置urlrewriter重写失效的问题 在IIS7下,如果使用微软的 URLRewriter 重写控件则需要在WEB.CONFIG中配置以下信息 第一个配置: <configSect ...