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:首先是利用sprin*生的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ü设计.以十多年设计工业级记录系统的经验为基础 ...
随机推荐
-
[LeetCode_3] Longest Substring Without Repeating Characters
LeetCode: 3. Longest Substring Without Repeating Characters class Solution { public: int lengthOfLon ...
-
SharePoint 2013 新建项目字段自动加载上次保存值
1.点击进入NewForm.aspx页面,编辑页面,插入Script Editor WebPart,如下图: 2.插入后如下图,拖动AutoRecord WebPart到脚本编辑器上面,防止因为加载顺 ...
-
cxf笔记记录
一.Web Service框架介绍: 1. WebService框架的作用: -- WebService只是一种思想,不是一个具体的框架. -- 它也是javaEE的规范. -- 它可以跨平台(操作平 ...
-
iOS 关于枚举的使用
枚举值 它是一个整形(int) 并且,它不参与内存的占用和释放,枚举定义变量即可直接使用,不用初始化. 在代码中使用枚举的目的只有一个,那就是增加代码的可读性. 使用: 枚举的定义如下: typed ...
-
浪潮服务器通过ipmitool获取mac地址
一.GPU服务器 #配置两个主板集成千兆四个外插PCI万兆网卡# 板载网卡可以使用命令获取到:RAW 0X30 0X21 就可以读取到第一块网卡的MAC,就是以下返回值的后6位. 0c,c4,7a,5 ...
-
使用Mifare卡加密数据 笔记
Mifare 是最常用的射频卡,具体介绍网上太多,我就不说了.,很多城市的最早的地铁公交卡都是用这种卡,后来被破解后都换成智能卡了. 但是由于技术成熟,使用方便,成本低,现在很多小区门禁卡,停车卡,食 ...
-
js数字转换成财务金额
function dealNumberToMoney(money){ var fmtAmt = ""; if(money&&money!=null){ money ...
-
性能测试十二:jmeter进阶之java请求参数化
如项目中的ip.端口号之类的,都可以在此代码中定义 public Arguments getDefaultParameters() { // TODO Auto-generated method st ...
-
c#: 模态窗口最小化主窗口
起源: 产品中,通常有些耗时操作比如视频转换.DVD刻录等,在模态窗口中执行.此时最小化它,主窗体不能跟着最小化,影响操作体验. 如何让主窗体最小化,并且可以还原呢?搜索一番,未找到满意结果,自己动手 ...
- 《快学Scala》第八章 继承