入门框架学习避免不了的问题:

1. 什么是框架? 简单的说,框架就是模板,模子,模型。就是一个可重用的半成品。

2. 如何学习框架? 学习框架其实就是学习规则,使用框架就是遵循框架的规则,框架是可变的 和 不可变的部分组成,学习框架就需要把 什么可变什么不可变搞清楚。

3. 为什么使用 struts2 框架:聊这个问题先来聊一聊 Web的开发模式, model1 和 model2 模式。

4. model1模式:jsp+javaBean开发。

优点:执行效率高,代码比较少,开发效率比较高。适合小型项目。

缺点:不好维护,扩展麻烦,展示代码和java混合导致整体比较混乱。

model2模式:jsp+servlet+javaBean开发-----MVC        M:model-->javaBean    V:view-->jsp    C:controller-->servlet

优点:分工明确,并且分层合理。降低了耦合,适合大型项目,维护方便,扩展容易。

缺点:开发效率低,执行效率比model1低。

了解完这些,我们再来聊struts2,它就是一个典型的mvc框架。

5. 对于一个mvc框架应该掌握哪些知识:

  (1)将请求映射到一个java类的方法上。

  (2) 如何将页面中的数据提交到java类中。

  (3)如何将处理结果展示到页面。

  (4)如何进行页面跳转

6.struts2介绍:

  (1)Struts2=struts1+webwork。

  (2)在struts2之前就已经有很多mvc框架。当时Strtus1是主流的mvc框架。随着技术发展,struts1不支持新的表示层技术。Strtus1和webwork整合而来struts2。Struts2的核心是webwork,是一个轻量级的mvc框架,是一个基于请求的mvc框架。

  (3)轻量级框架占用资源少,使用方便,不具有侵入性。

  (4)没有侵入性指使用一个框架,不去集成或者实现提供的类或接口。

7. 使用struts2开发程序步骤:

  (1)新建web项目

  (2)添加index.jsp页面

  (3)添加struts需要的jar包

  (4)在web.xml中添加struts2的核心过滤器(具体配置 见下文)

   ( 5)新建一个Action类,该类用于处理请求

  (6)在src下创建struts.xml,进行配置。(具体配置 见下文)

8. struts2的具体配置:

Web.xml 中的配置:

 <fileter>
<fileter-name>struts2</fileter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</fileter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 作用:接管请求。将请求交给struts2来处理 -->
<!-- 注意:不同版本的核心过滤器不一样
2.1以前是org.apache.struts2.dispatcher.FilterDispatcher
2.1以后org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
-->

struts.xml配置文件,该配置文件位于src下,文件名不能被更改。

<struts>
<!--
constant 常量配置
struts.devMode 设置是否是开发模式
-->
<constant name="struts.devMode" value="true" />
<!-- 设置编码 -->
<constant name="struts.i18n.encoding" value="utf-8"/>
<!-- 设置action的扩展名 -->
<constant name="struts.action.extension" value="action,,do"/>
<!--
package表示一个包每个包下可以配置多个action 包的作用主要用来区分不同模块的配置
不同模块配置在不同的包下
name 是包名 在项目下唯一 通常使用模块名做为包名
extends 表示继承 必须直接或者间接继承struts-default
namespace 表示命名空间 命名空间和请求名直接相关
请求名=项目发布路径名+namespace名+action名
namespace名称通常也和模块名相关
-->
<package name="default" extends="struts-default" namespace="/user">
<!-- action 配置请求名 一个action表示对一个请求的处理
name在同一个包下唯一 会作为请求名称 该名称会自动将请求的扩展名去掉,所以不用配置扩展名
class 配置处理请求的类的完全限定名=包名+类名。如果不配置class默认由
com.opensymphony.xwork2.ActionSupport来处理。
method 配置处理方法的名称 默认由execute方法处理
在struts2中处理方法 必须是 public的,返回值必须是String。
-->
<action name="hello" class="cn.sxt.action.HelloAction" method="hello">
<!-- result配置的结果集处理 每个action中可以及配置多个result
name表示结果集名称 和处理方法的返回值进行匹配 默认是success;
type表示结果集类型
dispatcher 转发-默认
redirect 重定向
redirectAction 重定向到另外一个action
stream 流
chain 表示action链
result中填写要跳转的页面的路径
-->
<result name="success" type="dispatcher">/index.jsp</result>
</action>
</package>
<!--
include用于添加其他配置文件,在团队开发中使用
不同模块一般使用不同的配置文件,在总的配置文件中加入即可
-->
<include file="user.xml"></include>
</struts>

9. struts2的执行流程:

  浏览器发起请求--->服务器接收并处理请求--->项目的web.xml 中匹配过滤器--->匹配是否有对应的Action--->生成对应的Action对象--->调用action对象的处理方法--->返回结果。

详细流程图:

struts2 之 【struts2简介,struts2开发步骤,struts2详细配置,struts2执行流程】的更多相关文章

  1. struts2从浅至深(二)详细配置

    1.加载时机 当应用被服务器加载时,Struts的配置文件就已经加载了 2.加载顺序 default.properties------->struts-default.xml---------& ...

  2. Struts2第二篇【开发步骤、执行流程、struts.xml讲解、defalut-struts讲解】

    前言 我们现在学习的是Struts2,其实Struts1和Struts2在技术上是没有很大的关联的.Struts2其实基于Web Work框架的,只不过它的推广没有Struts1好,因此就拿着Stru ...

  3. Struts2与Hibernate联合开发步骤

    hibernate与struts2的联合开发步骤: 1. 建立web工程 2. 加入jar包,struts2.hibernate.数据库连接的包 3. 数据表和bean之间的映射,以及相应的映射文件* ...

  4. struts2学习笔记2 -struts2的开发步骤和工作原理

    struts2的开发步骤: 1.先定义一个能发送请求的页面,可以是链接,也可以是表单(form) 2.开发action类,struts2对action并没有过多的要求,只要求: a 推荐实现actio ...

  5. Struts2开发步骤

    第一步:新建we项目 新建名称为“Struts"的web工程,新建方法:File->New->Web Service Project->Profect Name中输入:St ...

  6. 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境

    做了三年多的JavaEE开发了,在平时的JavaEE开发中,为了能够用最快的速度开发项目,一般都会选择使用Struts2,SpringMVC,Spring,Hibernate,MyBatis这些开源框 ...

  7. 使用struts2进行登录功能的开发

    使用struts2进行登录功能的开发 一. 设计需求 使用idea和maven开发具有登录功能的web应用,java语言,使用struts2框架. 二. 设计步骤 1.使用idea创建maven应用, ...

  8. Struts2下载及简介

    Struts2下载及简介 一.Struts2下载: 进入网址:http://struts.apache.org/download.cgi#struts23163 可以下载最新的Struts2. 1.F ...

  9. Android+struts2+JSON方式的手机开发(Login)

    在手机的后台服务无论是调用WebService还是Http请求,多数都是采用Android的HttpClient实现相关的调用实现.本文实现Android+Struts2+JSON方式实现为手机前台提 ...

随机推荐

  1. MySQL学习分享-->日期时间类型

    日期时间类型 ①如果要用来表示年月日时分秒,一般使用datetime类型: ②如果要用来表示年月日,一般使用date类型: ③如果要表示时分秒,一般使用time类型: ④如果只是表示年份,一般使用ye ...

  2. Unity Shader 知识点总结(二)

    紧接着上一篇文章的shader入门知识的总结,本文主要总结shader中的纹理贴图.透明度混合.顶点动画.后期特效处理等操作.如果有什么地方有错,请指出更正,谢谢.本文的代码主要来自开源书:unity ...

  3. 1854: [Scoi2010]游戏

    1854: [Scoi2010]游戏 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 2538  Solved: 905[Submit][Status] ...

  4. python 使用内置函数sorted对各种数据类型进行排序

    python有两个内置的函数用于实现排序,一个是list.sort()函数,一个是sorted()函数. 区别1:list.sort()函数只能处理list类型数据的排序:sorted()则可以处理多 ...

  5. 使用git克隆指定分支的代码

    今天想学习一下开源中国Android客户端的app源码,源码的Git地址:http://git.oschina.net/oschina/android-app,如下图所示: 由于Master主分支上没 ...

  6. 你可记得曾经的-------- C#面向对象的“基础”

    1.C#中构造函数定义的理解:     ①构造函数名与所在的类名相同     ②构造函数可以重载     ③构造函数可以带参数     ④构造函数没有返回值,且不允许写出void,可以有参也可以无参 ...

  7. 10分钟精通SharePoint - SharePoint升级

    类型: b2b(安装更新)和v2v(跨版本升级) 内容:二进制文件和数据库 过程:   升级前检查 - 检查场内数据,配置和自定义等等 升级准备和计划 - 根据需要和升级检查制定相应计划和准备工作   ...

  8. SQL注入相关的知识【Mysql为例子】

    以DVWA的sql注入初级为例,结合网上搜索的相关利用方式,总结成这一篇文章,内容会有点跳跃. 大纲: 1.初级手工注入 2.order by的使用 3.union查询注意点 4.Mysql相关的注释 ...

  9. 给 Virtualbox 中 Ubuntu 系统设置静态 IP ,让 DNS 配置信息不会在重启后被清除

    虚拟机网络选择 桥接网卡 模式. 主要涉及两个步骤: 1. 修改 /etc/network/interfaces 文件: 2. 修改 dns : 第一步,修改 interfaces 文件: sudo ...

  10. 求一个int型整数的两种递减数之和(java)--2015华为机试题

    题目描述: 给出一个整数(负数使用其绝对值),输出这个整数中的两种递减数(1.最大递减数:2.递减数中各位数之和最大的数)之和. 递减数:一个数字的递减数是指相邻的数位从大到小排列的数字,不包含相邻的 ...