一、struts2完整流程的逻辑(整体的概述)

  首先,用户在地址栏中输入你的项目访问路径,然后这个请求会发送到服务器,之后服务器发现在web.xml中配置了一个filter过滤器,并且这个过滤器需要对所有的访问进行过滤,在struts搭建之中,首先就要配置一个过滤器,所以我们可以把这个struts看成是一个过滤器,用户的所有请求都需要经过struts进行分配。当服务器接受到用户请求之后就吧这个请求传给struts,具体的处理是依靠 这个web.xml中配置的类,具体怎么处理我们可以不要明白。之后接受到用户的请求,struts.xml进行处理,action标签中name属性为用户访问你的项目时候输入的指定名字,然class属性是定义这个name请求需要进行处理的类,也就是action类,然method是指定使用这个类中的某一个方法。之后调用完这个方法。之后返回一个值,然后在struts.xml指定根据所返回的字符串进行跳转页面。

    具体如下:

      

二、struts2搭建

 1、导入相关的jar包:

    ①:首先从官网下载 struts2,官方下载:http://struts.apache.org/download.cgi#struts252,选择相适合的版本即可。

      ②:解压之后,找到文件夹lib,其中只有下面的包需要导入你的项目中:

    

 2、web.xml配置文件:

    ①配置struts2需要使用的filter,使用org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter作为处理的类(filter-class)。

    ②具体写法:

     

 3、struts.xml配置文件:

   ①首先在src目录下新建一个xml文件,即struts.xml配置文件  

   ②然后在struts2.xml的配置文件顶部中声明dtd规范,即文档类型定义(document type definition),如下:

    

   ③其次,配置struts2环境:

      具体写法:

       ⑴.在struts标签中定义一个package标签,设置name和extends属性,name属性值为自定义的名字,extends值需要为“struts-defaul”;

       ⑵.在package标签中定义一个action标签,设置属性name和class和method;

        name属性设置的是在URL中访问项目的路径名字;class设置的是业务逻辑处理的类(包名.类名);  

        method属性设置的是需要进行访问的这个类中的指定的方法(写上方法名即可),如果没有设置method属性的值,那默认调用execute()。         

         ⑶在action标签中定义result标签,设置name属性;

        属性值为action标签中method属性中的方法的返回值(这些方法的返回值均为String);

        result标签之间为需要跳转的页面。

       具体如下:

            

      

   4、action处理类

    ①.定义一个class,并且继承ActionSupport,在这个方法中定义一些成员变量和方法;

    ⑴.成员变量一般用来保存数据,或者是等待注入的实例(当spring和struts2结合使用时候,使用属性注入的实例的方法),其中成员变量保存的数据可以是用户请求传过来的参数还可以是从数据库中curd获取到的集合、信息。

    ⑵.这个类中定义的方法的返回值都是String类型,返回的字符串和struts2.xml中的配置相匹配。  

  

三、struts2简单小结: 

      ⑴、是一个用于web应用程序开发的框架,本质上相当于一个servlet。

      ⑵、struts2是由opensymphony开发的webwork2和struts1的结合。struts1是基于model2 (MVC)之上的进一步的完善。

         ⑶、struts2实现了不需要手动写获取参数(需要设置一个属性,设置getter、setter方法);不需要手动写跳转代码(在struts.xml配置文件中配置);并且实现了数据库和JAVA类中的属性类型转换。 

      ⑷、struts中的分包:

        ①action包:页面的跳转和参数的传递和接收。

        ②services包:业务逻辑处理。例如:对从数据库中取出来的数据需进行进一步的判断用户注册时长。

        ③dao包:对数据库的curd操作。但是不对数据进行进一步的操作。

        ④entity包:存放实体类。

        ⑤util包:工具包,例如:数据库连接。

ssh(sturts2_spring_hibernate) 框架搭建之struts2的更多相关文章

  1. ssh(sturts2_spring_hibernate) 框架搭建之hibernate2

    一.今天要进行解答的是对上次hibernate1进行进一步的完善,这次第一是进一步使用spring注入一个SessionFactory实例,避免了自己new实例:第二是应用数据库池(c3p0). 二. ...

  2. ssh(sturts2_spring_hibernate) 框架搭建之hibernate1

    一.hibernate简单了解: ⑴.hibernate一个java领域里面的一个持久化的ORM框架. 持久化:就是对对象的数据修改,hibernate会把修改的数据同步到数据库中. ORM:Obje ...

  3. ssh(sturts2_spring_hibernate) 框架搭建之spring

    一.spring总结: ⑴.spring是一个轻量级的JAVA开发框架,主要的作用是用来管理实例(可以解决JAVA类中new对象的问题,节省内存资源.)和降低代码之间的耦合性,促进代码模块化. ⑵.促 ...

  4. ssh(sturts2_spring_hibernate) 框架搭建之JPA代替hibernate

    一.JPA用来替代hibernate ⒈JPA的全称是JAVA Persistence API.指的是JPA通过注解或者是XML描述对象—关系表的映射关系,并且将运行的实体对象持久化数据库中. ⒉JP ...

  5. 新手SSH基础框架搭建

    SSH 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架. 首先我们先了解SSH的框架所需的包和基本概念: 一.下面我们先来了解一下strut ...

  6. SSH基本框架搭建后的简化

    对于SSh框架的简化,我们可以从下面几个方面来剖析: 1.实体类entity:在这里我们需要将数据库和实体类进行关联,在简化之前,我们需要在entity包里面加入一份.xml配置文件 例如原码---- ...

  7. SSH(Struts2+Spring+Hibernate)框架搭建流程<注解的方式创建Bean>

    此篇讲的是MyEclipse9工具提供的支持搭建自加包有代码也是相同:用户登录与注册的例子,表字段只有name,password. SSH,xml方式搭建文章链接地址:http://www.cnblo ...

  8. SSH框架搭建和整合(struts2、spring4、hibernate5)

    声明: 本博文是个人通过对ssh框架的学习.理解还有一些看法而描述出来的,可能有不足之处,请大家谅解,但希望能帮助到大家! 目的: 使初学者能更好的去了解SSH框架. 给以后的自己,也给别人一个参考. ...

  9. 【Java EE 学习 69 中】【数据采集系统第一天】【SSH框架搭建】

    经过23天的艰苦斗争,终于搞定了数据采集系统~徐培成老师很厉害啊,明明只是用了10天就搞定的项目我却做了23天,还是模仿的...呵呵,算了,总之最后总算是完成了,现在该好好整理该项目了. 第一天的内容 ...

随机推荐

  1. 「2014-3-17」C pointer again …

    记录一个比较基础的东东-- C 语言的指针,一直让人又爱又恨,爱它的人觉得它既灵活又强大,恨它的人觉得它太过于灵活太过于强大以至于容易将人绕晕.最早接触 C 语言,还是在刚进入大学的时候,算起来有好些 ...

  2. Linq-分组统计

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...

  3. LightOJ Beginners Problems 部分题解

    相关代码请戳 https://coding.net/u/tiny656/p/LightOJ/git 1006 Hex-a-bonacci. 用数组模拟记录结果,注意取模 1008 Fibsieve's ...

  4. 【dubbo】消费者Consumer搭建

    一.consumer搭建(可以web/jar) 1.新建Maven项目,groupId:com.dubbo.consumer.demo artifactId:demo projectName:dubb ...

  5. url的路径设置问题

    在外联样式表中设置url的路径时.格式--> url(‘../img/xx.xx’) 注意前面两个 ‘ . ’,如果css样式写在内联样式表中,则可省略两个 ‘ . ’.

  6. ArcGIS百米网格自动生成

    最近需要用百米网格进行空间叠加分析,首先得自动生成百米网格数据.经过查找,发现ARCgis可以自动生成网格.方法如下 2.创建格网(Creat Fishnet).需要用到ArcGIS的ArcToolb ...

  7. linux之LVM

    一.简介 LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵 ...

  8. sql 动态语句

    如果动态语句有表变量 例子如下: declare @mS varchar(10) declare @mE varchar(10) declare @mSQL nvarchar(500) --SQL语句 ...

  9. (原创)巩固理解基于DS18B20的1-wire协议(MCU,经验)

    1.Abstract     如前篇随笔所写,将以前遇到最难懂的两个部分重拾一下.前一篇写的是I2C协议(http://www.cnblogs.com/hechengfei/p/4117840.htm ...

  10. 【转】VC中的字符串处理

    http://hi.baidu.com/nmn714/item/ab8d2a96d0f2d6f228164727 貌似不少人刚开始做windows程序时都会纠结在字符串处理上,所以我把关于字符串处理的 ...