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的更多相关文章

  1. Java MVC框架性能比较

    Java MVC框架性能比较 - by zvane 现在各种MVC框架很多,各框架的优缺点网络上也有很多的参考文章,但介绍各框架性能方面差别的文章却不多,本人在项目开发中,感觉到采用了struts2框 ...

  2. java日志框架系列(4):logback框架xml配置文件语法

    1.xml配置文件语法 由于logback配置文件语法特别灵活,因此无法用DTD或schema进行定义. 1.配置文件基本结构 配置文件基本结构:以<configuration>标签开头, ...

  3. 从零开始实现一个简易的Java MVC框架(三)--实现IOC

    Spring中的IOC IoC全称是Inversion of Control,就是控制反转,他其实不是spring独有的特性或者说也不是java的特性,他是一种设计思想.而DI(Dependency ...

  4. Java集合框架系列大纲

    ###Java集合框架之简述 Java集合框架之Collection Java集合框架之Iterator Java集合框架之HashSet Java集合框架之TreeSet Java集合框架之Link ...

  5. 深入浅出Java MVC(Model View Controller) ---- (JSP + servlet + javabean实例)

    在DRP中终于接触到了MVC,感触是确实这样的架构系统灵活性不少,现在感触最深的就是使用tomcat作为服务器发布比IIS好多了,起码发布很简单,使用起来方便. 首先来简单的学习一下MVC的基础知识, ...

  6. 简单的JAVA MVC框架模式--Java-servlet-JavaBean

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码 ...

  7. java日志框架系列(3):logback框架配置详解

    1.Logback配置 1.配置步骤及默认配置 logback即可以通过编程式配置,也可以通过xml的形式配置. logback配置步骤: 1. 尝试在 classpath 下查找文件 logback ...

  8. java日志框架系列(1):slf4j框架简介及依赖

    1.slf4j日志框架 1.简介 slf4j只是是日志规范,即只定义了接口,并没有实现这些接口. SLF4J的全称是Simple Logging Facade for Java,即简单日志门面.SLF ...

  9. java日志框架系列(2):logback框架详解

    1.logback介绍 1.什么是logback Logback 为取代 log4j 而生. Logback 由 log4j 的创立者 Ceki Gülcü设计.以十多年设计工业级记录系统的经验为基础 ...

随机推荐

  1. Real-time 节点

    Real-time 节点 Real-time 节点提供一个实时索引.通过这些节点索引的数据提供查询.real-time节点将定期将他们收集的数据转移到同一跨域时间的Historical节点. 使用zo ...

  2. 关于String类和String[]数组的获取长度方法细节

    一.在Java中,以下代码段有错误的是第(  )行 public static void main(String[] args) { String name = "小新";     ...

  3. 2017/4/25-SAX解析XML文件

    SAX解析XML 1.分析 SAX是按照XML文件的顺序执行,可以说是边扫描,边解析.所以无须将整个文件加载至内存中. 2.优点 1)占用内存少. 2)解析效率高. 3.缺点 1)只能进行读取. 2) ...

  4. bootstrap快速入门笔记(三)响应式,行,列,偏移量,排序

    一,响应式列重置 .clearfix <div class="row"> <div class="col-xs-6 col-sm-3"> ...

  5. 蓝桥杯-第一个数字-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  6. vue视频学习笔记06

    video 6 vue动画vue路由--------------------------------------transition 之前 属性<p transition="fade& ...

  7. HDU4704Sum 费马小定理+大数取模

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4704 题目大意: 看似复杂,其实就是求整数n的划分数,4=1+1+2和4=1+2+1是不同的.因而可 ...

  8. [刷题]算法竞赛入门经典(第2版) 5-3/UVa10935 - Throwing cards away I

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,0 ms) //UVa10935 - Throwing cards away I #incl ...

  9. 增强for循环 -- foreach循环

    1  作用 简化迭代器的书写格式.(注意:foreach循环的底层还是使用了迭代器遍历.) 2  适用范围 如果是实现了Iterable接口的对象或者是数组对象都可以使用foreach循环. 3  格 ...

  10. Java学习笔记——封装、继承和多态

    先说说封装: 用new 一条狗来举个例子: public class Dog { //私有化字段 private String name; private int age; //无参构造 Dog(){ ...