java mvc框架系列总结ssh,ssm,servlet
2016年10月3日 10:36:40
一直以来都很想写属于自己的博客,一来可以分享自己的学习经验,二来可以及时总结,毕竟博客是写给所有人看的,需要更加仔细的注意每个细节,而不是仅仅让自己看懂。
学了java也有6个月左右,感觉有必要把所学的总结一下,因为以后有可能从事.net。三层架构+servlet:首先启动项目,由于servlet3.0 版本新特性,不需要配置web.xml(没使用spring),我目前使用的是@注解形式。前端通过form表单,或者地址链接,或者ajax,发出请求,如<a href=”SubjectServlet?method=modifysubject&id=${subject.id}”>修改</a>匹配到对应的servlet【@WebServlet("/SubjectServlet") @webServlet 用于将一个类声明为servlet,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为servlet。】执行servlet中被重写的doget()或dopost()方法【函数体都会执行自己的方法】如下doEcho() 函数
服务器通过request获取前端数据(request.getParameter)。通过set方法将存在request中的数据转化成对象。再通过对应的method变量判断执行对应的函数块。例如显示全部,method对应的函数块会调用dao层的显示全部函数,返回list<subject>,将值存入session中,最后再通过response完成跳转页面。在jsp页面同样可以通过session获取数值。最后完成显示。(注意以上后端通过将值存入session,前端再从session中取值,只是在jsp页面)【一句话概括:servlet作用就是接受请求及,作出相应】
Dao层的调用:①调用dao层的save()方法,save()方法里,将传递进来的对象信息转化成sql语句。调用数据链路层来执行sql语句。②调用findall()方法,先new出list集合用以存放返回的数据库记录。执行sql语句得到数据库结果集。遍历结果集,将每一条记录存入new出的对象中,并将该对象存入list集合。返回list集合。
SSH:Struts和servlet最大区别就是struts采用的是多例,而servlet采用的是单例模式。SSH中需要配置web.xml。①配置拦截器,此处设置拦截所有url(“/*”),将权限交给struts处理。②配置spring加载路径及监听器。这样web.xml必备配置就完成了,不过在实际运行项目中应该配置<welcom-file>用于项目启动加载页(其实所有都应该配置,前面没有介绍,后面也不再打算赘述,这点很重要,容易忽略,提醒下。第一次配置环境的时候,可能会因为这点让你误以为是其他配置错了)。struts.xml中配置根据url的值匹配到对应的action。以及根据返回值跳转到对应页面。(struts.xml会自动加载,这点不用考虑url被拦截后是怎么找到具体action路径的。还有application也是在某一路径下自动加载,这些默认加载项大家了解下,最少暂时不会疑虑了。)现在客户端输入添加信息,点击提交form表单到服务器。过滤器拦截所有url。在action中,将上传上来的数据通过set转换成对象,然后再根据method值匹配对应的方法,执行相应的dao层(hibernate)代码,将记录的对象型数据存入session.最后根据return的值和strut.xml的值跳转到相应页面(现在发现strus.xml还有这一功能,其实还可以设置成json数据返回)。其中比较servlet,我们可以看出数据的获取已经不需要通过request方法来获取,而是通过前端的name匹配传输具体值。还是相对较简便一些。
Hibernate:通过session工厂获取session。开始事务。执行方法(hibernate封装好的orm方法,对数据库进行操作,修改或读取),提交事务,关闭session。
其中sessionfactory需要加载hibernate.cfg.xml文件(连接数据库和指定映射文件路径)。映射文件主要配置数据库和实体类之间的映射关系。
Spring:spring主要负责对象的产生和管理。其注入方式主要包括三种(构造函数方式目前没用过)。一种通过属性setter方式注入(<property>标签元素,其中name属性对应的是要注入的变量名,type属性值对应的该变量的类型,可以自定义类或者包装类型。Value属性对应的是相应的值,还有一个ref属性,该属性对应的是相应的bean),和注解方式@Autowired注入。其中@Autowired方式我个人比较喜欢,因为.xml文件比较简单,但同时也造成依赖关系不清晰。在这里提供一个学习连接:http://www.imooc.com/article/1309
以及:http://blog.csdn.net/qiulongtianshi/article/details/7748227(带有代码)
SSM:spring和SSH一样,不过在SSH中需要注意scope属性
对于SSM中web.xml文件的配置和SHH配置差不多,都要配置spring路径,不过,在SSH需要配置过滤器,将请求交给struts处理,而在SSM中则不需要配置过滤器,而是配置DispatcherServlet前端控制器,为不同请求配置相应的spring-mvc路径(下面是一个工作流的web.xml文件代码,比较能反映DispatcherServlet使用及配置)
Spring-mvc当接受到请求后,(或者项目启动时如这里设置了<load-on-startup>1</load-on-startup>),不同的url请求会匹配到相应的spring-mvc配置文件(配置组件扫描,或者可以配置controller请求及跳转的前后缀)
Spring-mvc配置文件在相应的包检测到@Controller会产生相应的controller对象,url请求根据匹配到对应的@RequestMapping,并传递数据(SSM简单粗暴不用担心数据怎么传过来的,怎么存入对象的)。其作用和struts一样,不再赘述。
Mybatis:首先是利用spring产生的sqlSessionTemplate对象,并获取其中的dao方法。其中mybatis配置文件mybatis-config.xml主要配置映射文件路径,以及为类设置别名。数据库的连接配置在sring-mvc.xml(实质spring)配置中
http://blog.sina.com.cn/s/blog_4550f3ca0100ubmt.html
在mybatis的xml文件中不再多说,主要注意resultType和resultMap区别,很有用哦
以下图片参考文档:
http://si shuok.com/forum/blogPost/list/5188.html16436
java mvc框架系列总结ssh,ssm,servlet的更多相关文章
- Java MVC框架性能比较
Java MVC框架性能比较 - by zvane 现在各种MVC框架很多,各框架的优缺点网络上也有很多的参考文章,但介绍各框架性能方面差别的文章却不多,本人在项目开发中,感觉到采用了struts2框 ...
- java日志框架系列(4):logback框架xml配置文件语法
1.xml配置文件语法 由于logback配置文件语法特别灵活,因此无法用DTD或schema进行定义. 1.配置文件基本结构 配置文件基本结构:以<configuration>标签开头, ...
- 从零开始实现一个简易的Java MVC框架(三)--实现IOC
Spring中的IOC IoC全称是Inversion of Control,就是控制反转,他其实不是spring独有的特性或者说也不是java的特性,他是一种设计思想.而DI(Dependency ...
- Java集合框架系列大纲
###Java集合框架之简述 Java集合框架之Collection Java集合框架之Iterator Java集合框架之HashSet Java集合框架之TreeSet Java集合框架之Link ...
- 深入浅出Java MVC(Model View Controller) ---- (JSP + servlet + javabean实例)
在DRP中终于接触到了MVC,感触是确实这样的架构系统灵活性不少,现在感触最深的就是使用tomcat作为服务器发布比IIS好多了,起码发布很简单,使用起来方便. 首先来简单的学习一下MVC的基础知识, ...
- 简单的JAVA MVC框架模式--Java-servlet-JavaBean
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码 ...
- java日志框架系列(3):logback框架配置详解
1.Logback配置 1.配置步骤及默认配置 logback即可以通过编程式配置,也可以通过xml的形式配置. logback配置步骤: 1. 尝试在 classpath 下查找文件 logback ...
- java日志框架系列(1):slf4j框架简介及依赖
1.slf4j日志框架 1.简介 slf4j只是是日志规范,即只定义了接口,并没有实现这些接口. SLF4J的全称是Simple Logging Facade for Java,即简单日志门面.SLF ...
- java日志框架系列(2):logback框架详解
1.logback介绍 1.什么是logback Logback 为取代 log4j 而生. Logback 由 log4j 的创立者 Ceki Gülcü设计.以十多年设计工业级记录系统的经验为基础 ...
随机推荐
- UEFI+GPT下安装Win10+Ubuntu16.04双系统
安装环境 SSD+HDD双盘,Win10安装在SSD里,HDD分出来60G安装Ubuntu. 自行百度你的主板是否支持UEFI启动方式. Win10 下载Win10安装镜像.烧盘等步骤就不说了,重启后 ...
- Jquery Validation 验证控件的使用说明
转载自:http://blog.csdn.net/huang100qi/article/details/52453970,做了一些简化及修改 下载地址:https://jqueryvalidation ...
- User Browsing Model简介
搜索引擎的点击日志提供了很多有价值的query-doc相关性信息,但是这些信息是有偏的,因为对于用户没有点击过的doc,我们无法确定其是否真实地被用户浏览过.即日志中记录的展现信息与实际的展现信息之间 ...
- Java Excel 合并单元格
//合并单元格CellRangeAddress cra = new CellRangeAddress(0, 0, 0, 4);sheet.addMergedRegion(cra);
- 【代码学习】PHP文件的上传和下载
===================== 文件上传和下载 ===================== 一.php.ini的配置信息 file_uploads = On /Off 是否允许文件上 ...
- selenium IDE的3种下载安装方式
第一种方式: 打开firefox浏览器-----点击右上角-----附加组件----插件----搜索框输入“selenium”-----搜索的结果中下拉到页面尾部,点击“查看全部的37项结果”---进 ...
- Java常用API解析——序列化API
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6797659.html 工作中发现,自己对Java的了解还很片面,没有深入的研究,有很多的J ...
- 在Mvc中进行异步请求是出现(没有为该对象定义无参数的构造函数)
解决办法就是给相应的类添加无参数的构造函数:
- 用PHP删除ftp下载导致的文件空行
使用FTP上传下载文件,如果没有设置传输方式为二进制,可能会导致文件出现空行的情况,例如: 使用PHP对文件的空行进行删除,使用正则: <?php $file = './abc.inc.php' ...
- hadoop配置文件的作用
core-site.xml <property> //指定hdfs的主端口 namenode要放在哪台机器上 <name>fs.defaultFS</name> & ...