一、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-5-31」Z-Stack - Modification of Zigbee Device Object for better network access management

    写一份赏心悦目的工程文档,是很困难的事情.若想写得完善,不仅得用对工具(use the right tools),注重文笔,还得投入大把时间,真心是一件难度颇高的事情.但,若是真写好了,也是善莫大焉: ...

  2. MySQL的limit查询优化

    MySQL的limit查询优化以下的文章主要是对MySQL limit查询优化的具体内容的介绍,我们大家都知道MySQL数据库的优化是相当重要的.其他最为常用也是最为需要优化的就是limit.MySQ ...

  3. Android图片复制

    public void saveImage2Phone(SlideShowImage image){ String imagePath; if(Environment.getExternalStora ...

  4. pc端和android端应用程序测试有什么区别?(ps面试题)

    pc端和android端应用程序测试有什么区别?(ps面试题) [VIP7]大连-凭海临风(215687736) 2014/4/10 8:56:171.测试环境不同PC平台一般都是windows an ...

  5. Selenium中的几种等待方式,需特别注意implicitlyWait的用法

    摘:http://blog.csdn.net/pf20050904/article/details/20052485 最近在项目过程中使用selenium 判断元素是否存在的时候 遇到一个很坑爹的问题 ...

  6. centos 安装 apache2.4

    1. centos 安装 apache2.4 安装基础依赖:# yum install gcc gcc-c++ glibc glibc-devel gd gd-devel zlib zlib-deve ...

  7. 【转】Wince中文乱码解决方法

    http://www.cnblogs.com/we-hjb/archive/2008/11/27/1342651.html 如果WinCE的默认语言是英语,也没有支持MUI的话,很多中文的应用程序就不 ...

  8. PHP程序员面临的成长瓶颈

    作为Web开发中应用最广泛的语言之一,PHP有着大量的粉丝,那么你是一名优秀的程序员吗?在进行自我修炼的同时,你是否想过面对各种各样的问题,我该如何突破自身的瓶颈,以便更好的发展呢? PHP工程师面临 ...

  9. SQL SERVER 内存学习系列(二)-DMV查看内存信息

    内存管理在SQL Server中有一个三级结构.底部是内存节点,这是最低级的分配器,用于SQL Server的内存.第二个层次是由内存Clerk组成,这是用来访问内存节点和缓存存储,缓存存储则用于缓存 ...

  10. 循序渐进做项目系列(1):最简单的C/S程序——让服务器来做加法

    (本文是专门针对未接触过C/S开发的初学者而写的,C/S开发高手请自动忽略啊~~) 还在写“Hello world!”式的单机程序吗?还在各种拖控件吗?是否自己都觉得有点low呢?来个质的飞跃吧!看看 ...