SpringMVC学习笔记
1.Mybatis
1.MyBatis 是一款优秀的持久层框架
2.完成持久化工作的代码块 . ----> dao层 【DAO (Data Access Object) 数据访问对象】
3.Mybatis就是帮助程序猿将数据存入数据库中 , 和从数据库中取数据 .
4.MyBatis 是一个半自动化的ORM框架 (Object Relationship Mapping) -->对象关系映射
5.MyBatis的优点
1.mybatis不会对应用程序或者数据库的现有设计强加任何影响。sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。
2.解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。21.
2.SpringMVC
2.1 MVC简介
MVC:模型(dao,service)视图(jsp)控制器(Servlet)
Controller:1.获取前端参数
2.调用业务层
3.视图转发或者重定向
MVC框架做的事情:
(1)将url映射到java类或者方法
(2)封装用户提交数据
(3)处理请求–调用相关的业务处理–封装响应数据
(4)将响应的数据进行渲染.jsp/html等表示层数据
2.2 转发与重定向
在Servlet中实现页面跳转的两种方式:转发和重定向
2.2.1 重定向
重定向是网页制作中的一个知识。假设你现在所处的位置是一个论坛的登录页面,你填写了帐号,密码,点击登陆,如果你的帐号密码正确,就自动跳转到论坛的首页,不正确就返回登录页;
这里的自动跳转,就是重定向的意思。或者可以说,重定向就是,在网页上设置一个约束条件,条件满足,就自动转入到其它网页、网址。
重定向方法
2.2.2 转发
由服务器端进行的页面跳转。
请求转发:一种在服务器内部的资源跳转方式。
访问A,A请求转发了B,访问A的同时就也访问到了B。
带参数跳到指定的页面,比如request。
访问A,进入A的网址,然后在A里面请求转发B,就是带着A的请求到了B。
步骤:
1.通过request对象获取请求转发器对象:
Requestdispatcher.getRequestdispatcher(String path)
2.使用Requestdispatcher对象来进行转发:
forward(ServletRequest request,ServletResponse Response)
什么时候使用转发,什么时候使用重定向?
如果要保留请求域中的数据,使用转发,否则使用重定向。
以后访问数据库,增删改使用重定向,查询使用转发。
-
DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心。用户发出请求,DispatcherServlet接收请求并拦截请求。
我们假设请求的url为 : http://localhost:8080/SpringMVC/hello
如上url拆分成三部分:
http://localhost:8080服务器域名
SpringMVC部署在服务器上的web站点
hello表示控制器
通过分析,如上url表示为:请求位于服务器localhost:8080上的SpringMVC站点的hello控制器。
-
HandlerMapping为处理器映射。DispatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler。
-
HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,如上url被查找控制器为:hello。
-
HandlerExecution将解析后的信息传递给DispatcherServlet,如解析控制器映射等。
-
HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler。
-
Handler让具体的Controller执行。
-
Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView。
-
HandlerAdapter将视图逻辑名或模型传递给DispatcherServlet。
-
DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名。
-
视图解析器将解析的逻辑视图名传给DispatcherServlet。
-
DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图。
-
最终视图呈现给用户。
创建对象new duixiang() 然后快捷键alt+enter