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的更多相关文章

  1. struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb

    在构建一个简单的基于MVC模式的JavaWeb 中,我们使用了JSP+Servlet+JavaBean构建了一个基于MVC模式的简单登录系统,但在其小结中已经指出,这种模式下的Controller 和 ...

  2. 构建一个简单的基于MVC模式的JavaWeb

    零晨三点半了,刚刚几个兄弟一起出去吼歌,才回来,这应该是我大学第二次去K歌,第一次是大一吧,之后每次兄弟喊我,我都不想去,因为我还是很害怕去KTV,或许是因为那里是我伤心的地方,也或许是因为我在那里失 ...

  3. 【Unity】基于MVC模式的背包系统 UGUI实现

    前言 本文基于MVC模式,用UGUI初步实现了背包系统. Control层包括了点击和拖拽两种逻辑. 博文首发:http://blog.csdn.net/duzixi 下载地址:https://git ...

  4. 基于MVC模式开发的后台框架

    1.ThinkCMF 2.NFine快速开发平台 3.力软快速开发框架 如有好的开发框架希望可以一起交流

  5. 自己编写基于MVC的轻量级PHP框架

    做WEB开发已有三年,每次都写重复的东西, 因此,想自己写一下框架,以后开发方便.本人之前asp.NET一年开发,jsp半年,可是后来因为工作的原故换成PHP.其实很不喜欢PHP的语法.还有PHP的函 ...

  6. 基于MVC模式的数据库综合练习

    一.准备 没什么好说的,直接上代码.... 下面是web.xml <servlet> <servlet-name>list_user</servlet-name> ...

  7. MVC模式-----struts2框架

    MVC模式-----struts2框架 一.struts MVC模式 1.概述 MVC是模型(model)---视图model(view)---控制器(control)的缩写,是一种用于将逻辑.数据和 ...

  8. 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组

    真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...

  9. 基于 Dojo toolkit 实现 web2.0 的 MVC 模式

    前言 MVC 模式是设计模式中的经典模式,它可以有效的分离数据层,展示层,和业务逻辑层.Web2.0 技术由于其良好的用户体验被广泛应用于 WEB 应用的展示层.但是在传统的 web 开发中,展示层的 ...

随机推荐

  1. C语言语法之占用字节

    指针占用字节 指针即为地址,存的是变量的地址,在同一架构下地址长度都是相同的(cpu的最大寻址内存空间),所以不同类型的指针长度都一样. 指针占用几个字节跟语言无关,而是跟系统的寻址能力有关,16为地 ...

  2. [html] 前端角度出发做好SEO需要考虑什么

    Meta标签优化 主要包括主题(Title),网站描述(Description),和关键词(Keywords).还有一些其它的隐藏文字比如Author(作者),Category(目录),Languag ...

  3. fibonacci 斐波那契数列

    1.小兔子繁殖问题  (有该问题的详细来由介绍) 2.台阶问题 题目:一个人上台阶可以一次上一个或者两个,问这个人上n层的台阶,一共有多少种走法. 递归的思路设计模型: i(台阶阶数)         ...

  4. fedora 14安装经验

    初学linux系统,在win7 系统上安装VMware9.0,并用虚拟机安装fedora.安装了好几次,虽然还是没有彻底通透,但也有一点点心得,特地分享一下: 我安装fedora用于嵌入式ARM开发练 ...

  5. xcode使用

    1xcode模拟器插件路径 ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins 2调试 Po值: nil就是0,而不是空值 小细 ...

  6. ubuntu14.04-rocketmq单机搭建

    需要环境: jdk(1.6+) git(如果clone源码,需要git,没有git直接下载gar包也行) maven3.x在安装之前确定自己已经安装了jdk:java -version 先获取reck ...

  7. JVM性能调优

    摘自:http://uule.iteye.com/blog/2114697 JVM垃圾回收与性能调优总结 JVM调优的几种策略 一.JVM内存模型及垃圾收集算法  1.根据Java虚拟机规范,JVM将 ...

  8. Linux基础:软件安装(rpm,yum,源代码)

    Software Installation on Linux Linux安装分为rpm包(可通过yum或者是rpm命令安装)和源码包(源代码或者是编译过的二进制码)两种. Linux是开源系统,很多应 ...

  9. ARM汇编中的标号

    标号(LABEL)是为一组机器指令所起名字,表示程序中的指令或者数据地址的符号.标号可有可无,只有当需要用符号地址来访问该语句时,才给此语句赋予标号.通过在目标地址的前面放上一个标号,可以在指令中使用 ...

  10. js字符串处理

    1.获取字符串实际长度 var jmz = {}; function strlen(str) { ///<summary>获得字符串实际长度,中文2,英文1</summary> ...