Java Web Without SSM(前言)
是的,Spring,Mybaties确实给我们带来了方便的轻量级JavaWeb开发,但是,对于大部分中小系统来说,分层,框架,规范,已经成为一种累赘。
实际的程序开发过程中,大部分时间都花在了“架构”上,实际上我们真的需要吗?
-------冷静一下------------
我们先忘掉各种框架,设计模式。想一想一个简单的需求,商品列表查询。
实现这个需求,我们需要什么?
一个客户端浏览器,用来显示界面。
一个数据库,用来存储商品列表。
一段程序,处理客户端浏览器和后台数据库的通信。
程序是什么样的?
我们用到的产品是浏览器和数据库,所以程序需要针对浏览器和数据库来编写逻辑。
浏览器与程序所在服务器的交互方式是HTTP协议,数据库和程序所在服务器的交互方式是SQL。
是的,程序的职能是做HTTP协议和SQL语句的映射。
---------说点废话-----------
如果写程序的人不知道自己要解析的协议张什么样,不知道发给数据库的SQL张什么样,其实是沉寂在自己的面向对象的世界里编程。
我需要的只是一个梨,你却给我一车苹果,还要在苹果上加各种接口转化成我想要的梨。
为什么不直接给我一个梨呢?
是的,你会说今天我想要个小号的梨,明天我想要个大号的梨,后天我想要一个小号一个大号的梨。我这一车苹果可以适应你各种变更。
对比
时间成本:
给我一个梨,需要一天完成,给我一车苹果需要一个月完成。
人员成本:
给我一个梨,一个听话的人即可。给我一车苹果需要有经验的有知识的人。
风险:
一车苹果中任意苹果坏掉,都要花时间去调查,修改。接口变更还要考虑苹果的堆放方式是否适合。
-------别吵,再冷静一下,步入正题------------
这么说我们不要考虑扩展,考虑设计模式,考虑业务增长了吗?
需要,需要适当的考虑,需要将这些问题放在软件工程中解决这些问题。
如果大家对业务分析和系统设计做得足够到位,会减少大量的项目成本和项目风险,大大地提高项目质量。
HTTP协议和SQL语句
我们来看一个浏览器请求到显示结果这个过程。
去:浏览器发送HTTP协议-服务器解析HTTP协议,得到页面数据-验证数据的合法性-将数据拼接成SQL-发送SQL给数据库
回:数据库返回查询结果-服务器解析结果转化成页面数据-渲染页面-将渲染后页面发送给浏览器
对于HTTP协议的解析我们可以采用HttpServlet
对于页面的渲染我们可以采用Jsp
//等等,为什么不用Velocity。。。,做页面的人看不懂Java代码。。。
//其实Java代码比Velocity好看多了。
//你要做得是分析分析分析,知道页面上到需要什么程度的后台逻辑,这个我们以后讲。
//上面这些行注释掉
我们还需要如下功能:
验证权限,验证数据,控制事务,控制数据库连接,写日志,拼接SQL,将数据库查询结果转化为页面数据等。
这些功能可以做成组件,或拿一个最好的组件来用。
在以后的章节中,我们将逐一分析并实现这些组件。
最终目的就是让数据从浏览器到服务器的路变得通畅。
让大家的时间集中在业务分析上,让DBA可以清晰地知道数据库要解析的SQL。
去除不必要的数据转换和障碍,风险。
--------------------------------------------------------
是的,我们将一起开发出一个新的框架,一个很简单很简单很实用的框架,让SQL回归数据库。
Java Web Without SSM(前言)的更多相关文章
- Java WEB框架——SSM之Hello world
一.建立项目 先搭建一个webapp项目(要选creat from arctype) 起名 选择maven路径,settings.xml那里要选择override才可以在资源管理器中浏览.接下来直接N ...
- Java Web 之 SSM笔记
好久没有写博文了呀呀呀........博客园的MarkDown还是...算了吧 自定义 Restful 风格结果集 参考资料 [SpringBoot专题]统一异常处理和统一数据返回前言实践运行结果 如 ...
- Java WEB框架——SSM迈向M之登录
1.pom.xml 关于pom.xml,<version>等标签先暂时不谈,<dependency> 的作用主要是添加相应的支持包,比如spring,servlet,jdbc等 ...
- java web后台开发SSM框架(Spring+SpringMVC+MyBaitis)搭建与优化
一.ssm框架搭建 1.1创建项目 新建项目后规划好各层的包. 1.2导入包 搭建SSM框架所需包百度云链接:http://pan.baidu.com/s/1cvKjL0 1.3整合spring与my ...
- 基于SSM的Java Web应用开发原理初探
SSM开发Web的框架已经很成熟了,成熟得以至于有点落后了.虽然如今是SOA架构大行其道,微服务铺天盖地的时代,不过因为仍有大量的企业开发依赖于SSM,本文简单对基于SSM的Java开发做一快速入门, ...
- 一款基于SSM框架技术的全栈Java web项目(已部署可直接体验)
概述 此项目基于SSM框架技术的Java Web项目,是全栈项目,涉及前端.后端.插件.上线部署等各个板块,项目所有的代码都是自己编码所得,每一步.部分都有清晰的注释,完全不用担心代码混乱,可以轻松. ...
- idea 创建 SSM + maven Java Web 项目流程
idea 创建 SSM + maven Java Web 项目流程 一.idea 中选择File,New Project 新建项目 二.选择Maven,勾选上面的Create from archety ...
- 关于Java Web结构和SSM框架的理解
Java Web常见的三层结构 表现层:也就是Web层,常见的框架有Spring MVC.Struts2 ,并包括用于展示的界面,如JSP界面:业务层:Service层,专注于业务逻辑的实现:持久层: ...
- Java web轻量级开发面试教程的前言
本文来是从 java web轻量级开发面试教程从摘录的. 为什么要从诸多的Java书籍里选择这本?为什么在当前网络信息量如此大的情况下还要买这本书,而不是自己通过查阅网络资料学习?我已经会开发Java ...
随机推荐
- ubuntu14下mysql忘记密码的处理
ubuntu14下mysql忘记密码的处理 ubuntu14.04忘记了mysql的用户(root)的密码.接下来: 1) 停止mysql服务 $ sudo stop mysql 2) 启动mysql ...
- 如何让你的web具备权限认证
大多数Web系统都有权限需求,前面已经了解了它的整个认证过程的原理,这节将讲述如何在Tomcat中配置web资源的权限.先以Tomcat默认的认证模式Basic和默认的域UserDatabaseRea ...
- (NO.00001)iOS游戏SpeedBoy Lite成形记(五)
在GameScene.m中添加matchRun的实现: -(void)matchRun{ CCLOG(@"%@ invoke!",NSStringFromSelector(_cmd ...
- Mahout系列之----kmeans 聚类
Kmeans是最经典的聚类算法之一,它的优美简单.快速高效被广泛使用. Kmeans算法描述 输入:簇的数目k:包含n个对象的数据集D. 输出:k个簇的集合. 方法: 从D中任意选择k个对象作为初始簇 ...
- 纯命令提交代码到git仓库(教你怎么装逼)
如果不喜欢用命令的请点链接:http://blog.csdn.net/xiangzhihong8/article/details/50715427 我这里用纯命令,主要是因为这两天不知道什么原因,ba ...
- 原生CSS动画回调事件
原文链接: Detecting CSS Animation Completion with JavaScript 原文日期: 2014年02月20日 翻译日期: 2014年02月21日 翻译人员: 铁 ...
- SpriteBuilder中使用TrueType字体的一些障碍
在实践中,有一些小的陷阱和障碍可能阻止你使用一般的TrueType字体. 第一个,必须要有一个有效的字体文件.在Finder中双击该.ttf文件,应该会打开Font Book app,显示一个象形符号 ...
- LeetCode之“链表”:Remove Duplicates from Sorted List && Remove Duplicates from Sorted List II
1. Remove Duplicates from Sorted List 题目链接 题目要求: Given a sorted linked list, delete all duplicates s ...
- how tomcat works读书笔记 七 日志记录器
大家可以松一口气了,这个组件比较简单,这一节和前面几节想比,也简单的多. Logger接口 Tomcat中的日志记录器都必须实现org.apache.catalina.Logger接口. packag ...
- win7 64位系统,vs2010下配置OpenGL开发环境
glut下载地址: http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip 或者:http://user.xmission. ...