【后台框架篇】ssm框架和前后台数据流通

一、 前后端数据交互

通过前端页面提交数据并指定处理数据的controller,后端在controller层中编写处理前端提交的数据的方法。

(1)创建一个UserController.java,里面包含一个处理前端页面提交的用户名和密码的方法dealLogin(),在此方法中,数据通过HttpServletRequest对象传入方法,方法对数据处理完后返回State类型信息即返回用户的状态。其中@RequestBody注解作用是将返回的State类型的状态转换成Json数据类型。

(2)通过request.getParameter()获取前端页面传入的用户名和密码,并创建一个新的User对象,将用户名和密码赋值给新对象。

 

(3)判断请求登录的用户是否存在即是否已经注册

通过调用service层的dealLogin()方法来判断用户是否已存在

其中service层的dealLogin方法是借助一个Dao层通过传回的用户名到数据库中查找其对应的密码,并与前端页面传回的密码比较,若相同则此用户已存在,返回true。

(4)记录此次登录用户的状态

创建一个State对象state,设置其代号为1,并记录“exit”字符串,表示当前登录的用户已存在。

 

 

 

 

 

 

 

 

 

 

二、 SSM框架

1、 ssm框架中各层级间的作用关系

View层(springMVC):

View层 此层与控制层结合比较紧密,需要二者结合起来协同工发。View层主要负责前台jsp页面的表示

Controller层(Handler层):

(1)负责具体的业务模块流程的控制

(2)Controller层通过要调用Service层的接口来控制业务流程,控制的配置也在pring配置文件里面。

业务层(Spring):Service层

(1)负责业务模块的逻辑应用设计

(2)通过对Spring配置文件中配置其实现的关联,完成此步工作,我们就可以通过调用Service的接口来进行业务处理

(3)最后通过调用DAO层已定义的接口,去实现Service具体的实现类

UserServiceImpl为例,通过UserDao的对象调用DAO层的findByUserName()方法

持久层(Mybatis:Dao层

(1) mybatis是对jdbc的封装,它让数据库底层操作变的透明。

(2) mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

(1) 负责与数据库进行交互设计,用来处理数据的持久化操作

(2) DAO层的实际首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,就可在其他模块中调用此接口来进行数据业务的处理,而不用关心接口的具体实现类是哪个类。有关数据库连接的参数都在spring的配置文件中进行配置。

以UserDao为例,首先创建接口如下:

 

在UserMapper.xml配置文件中定义接口的实现类,解决user表的基本增删改查

视图层:

(1) 负责前台html页面的展示

2、 各层间的联系:

(1)本来Controller层与View层是可以放在.jsp文件里一起开发的,但是为了降低代码的复杂度,提高其可维护性,将其分为了这两层,这也体现了MVC框架的特性,即结构清晰,耦合度低。

(2)Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。

3、 SSM架构运行流程

(1)jsp(view)发送请求

(2)通过核心控制器DispatcherServlet调用请求解析器:HandlerMapping对请求进行解析,通过映射关系匹配到Controller层

(3)在控制层调用业务逻辑层(service),数据持久层(DAO)返回控制层,请求完成获取一个结果,设置一个要跳转的视图,(ModelAndView装载并传输数据,设置视图)

(4)核心控制器调用视图解析器:ViewResolver解析视图,匹配相应的页面实现页面跳转

 

 

以学生综合评价系统中用户登录为例:

(1)Login.html发送请求

(2)通过核心控制器DispatcherServlet调用请求解析器:HandlerMapping对请求进行解析,通过映射关系匹配到Controller层,即UserContorller

(3)UserController中的dealLogin()方法中,通过request.getParameter()获取数据后,通过UserService对象调用service层的dealLogin()方法,在service层中通过UserDao对象调用DAO层的findByUserName(user)方法,然后在数据库中通过用户名查找用户,获得用户的密码,若从数据库中获得的用户密码与前台传入的密码相同则返回true。

  • 5
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SunAlwaysOnline

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值