一、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. rdc21n(研发与设计综合讨论)博客开通了!

    rdc21n是“Research and Design Comprehensive discussioN”,其中21表示Comprehensive discussioN中间的21个字母(不包含空格), ...

  2. Android中的TabHost

    TabHost是整个Tab的容器,包含TabWidget和FrameLayout两个部分,TabWidget是每个Tab的表情,FrameLayout是Tab内容. 实现方法:继承TabActivit ...

  3. maven里的modelVersion

    modelVersion 描述这个POM文件是遵从哪个版本的项目描述符

  4. 5.webService拦截器

    CXF为什么要设计拦截器? 为了在webservice请求过程中,能动态操作请求和响应数据, CXF设计了拦截器. 拦截器分类 1.按所处的位置分:服务器端拦截器,客户端拦截器 2.按消息的方向分:入 ...

  5. eclipse左边导航package explorer自动定位

    eclipse或myeclipse中右边编辑界面点击 左边导航自动定位     左导航Package Explorer的右上角有一个黄色双向箭头图标,鼠标移动到上面提示"Link with ...

  6. WebApi Post提交报错 调试无法进入对应action函数

    调试发现有长内容或者是特殊字符就报错,确定是服务端验证的问题 需要 在配置文件 <system.web> 中添加<httpRuntime  requestValidationMode ...

  7. 使用WPF动态生成Code 39条形码

    最近在看些条形码方面相关的资料,而如果只是看的话,效果似乎并不怎么好,所以决定动手做点Demo,以增强对相关知识的记忆. 这里是一个我编写的使用WPF生成Code 39的例子,Code 39的编码很简 ...

  8. SqlServer2012 数据库的同步之SQL JOB + 建立链接服务器

         文章参考百度过的文章,现在忘了具体哪篇,感谢其分享,这里根据自己的操作和遇到的问题整理一下.      需求:在两个不同的SQL SERVER 2012的服务器之间进行数据访问和更新.我们需 ...

  9. 【腾讯Bugly干货分享】浅谈Android自定义锁屏页的发车姿势

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57875330c9da73584b025873 一.为什么需要自定义锁屏页 锁屏 ...

  10. mongodb(mongoose-redis-cache)

    在传统的项目中,我们经常会用到缓存来优化数据库的读取,比如java中,我们利用spring的AOP能力,在读写数据库前增加对缓存的操作. 在node与mongodb的项目中也仍然会存在类似问题,本文参 ...