是的,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(前言)的更多相关文章

  1. Java WEB框架——SSM之Hello world

    一.建立项目 先搭建一个webapp项目(要选creat from arctype) 起名 选择maven路径,settings.xml那里要选择override才可以在资源管理器中浏览.接下来直接N ...

  2. Java Web 之 SSM笔记

    好久没有写博文了呀呀呀........博客园的MarkDown还是...算了吧 自定义 Restful 风格结果集 参考资料 [SpringBoot专题]统一异常处理和统一数据返回前言实践运行结果 如 ...

  3. Java WEB框架——SSM迈向M之登录

    1.pom.xml 关于pom.xml,<version>等标签先暂时不谈,<dependency> 的作用主要是添加相应的支持包,比如spring,servlet,jdbc等 ...

  4. java web后台开发SSM框架(Spring+SpringMVC+MyBaitis)搭建与优化

    一.ssm框架搭建 1.1创建项目 新建项目后规划好各层的包. 1.2导入包 搭建SSM框架所需包百度云链接:http://pan.baidu.com/s/1cvKjL0 1.3整合spring与my ...

  5. 基于SSM的Java Web应用开发原理初探

    SSM开发Web的框架已经很成熟了,成熟得以至于有点落后了.虽然如今是SOA架构大行其道,微服务铺天盖地的时代,不过因为仍有大量的企业开发依赖于SSM,本文简单对基于SSM的Java开发做一快速入门, ...

  6. 一款基于SSM框架技术的全栈Java web项目(已部署可直接体验)

    概述 此项目基于SSM框架技术的Java Web项目,是全栈项目,涉及前端.后端.插件.上线部署等各个板块,项目所有的代码都是自己编码所得,每一步.部分都有清晰的注释,完全不用担心代码混乱,可以轻松. ...

  7. idea 创建 SSM + maven Java Web 项目流程

    idea 创建 SSM + maven Java Web 项目流程 一.idea 中选择File,New Project 新建项目 二.选择Maven,勾选上面的Create from archety ...

  8. 关于Java Web结构和SSM框架的理解

    Java Web常见的三层结构 表现层:也就是Web层,常见的框架有Spring MVC.Struts2 ,并包括用于展示的界面,如JSP界面:业务层:Service层,专注于业务逻辑的实现:持久层: ...

  9. Java web轻量级开发面试教程的前言

    本文来是从 java web轻量级开发面试教程从摘录的. 为什么要从诸多的Java书籍里选择这本?为什么在当前网络信息量如此大的情况下还要买这本书,而不是自己通过查阅网络资料学习?我已经会开发Java ...

随机推荐

  1. ubuntu14下mysql忘记密码的处理

    ubuntu14下mysql忘记密码的处理 ubuntu14.04忘记了mysql的用户(root)的密码.接下来: 1) 停止mysql服务 $ sudo stop mysql 2) 启动mysql ...

  2. 如何让你的web具备权限认证

    大多数Web系统都有权限需求,前面已经了解了它的整个认证过程的原理,这节将讲述如何在Tomcat中配置web资源的权限.先以Tomcat默认的认证模式Basic和默认的域UserDatabaseRea ...

  3. (NO.00001)iOS游戏SpeedBoy Lite成形记(五)

    在GameScene.m中添加matchRun的实现: -(void)matchRun{ CCLOG(@"%@ invoke!",NSStringFromSelector(_cmd ...

  4. Mahout系列之----kmeans 聚类

    Kmeans是最经典的聚类算法之一,它的优美简单.快速高效被广泛使用. Kmeans算法描述 输入:簇的数目k:包含n个对象的数据集D. 输出:k个簇的集合. 方法: 从D中任意选择k个对象作为初始簇 ...

  5. 纯命令提交代码到git仓库(教你怎么装逼)

    如果不喜欢用命令的请点链接:http://blog.csdn.net/xiangzhihong8/article/details/50715427 我这里用纯命令,主要是因为这两天不知道什么原因,ba ...

  6. 原生CSS动画回调事件

    原文链接: Detecting CSS Animation Completion with JavaScript 原文日期: 2014年02月20日 翻译日期: 2014年02月21日 翻译人员: 铁 ...

  7. SpriteBuilder中使用TrueType字体的一些障碍

    在实践中,有一些小的陷阱和障碍可能阻止你使用一般的TrueType字体. 第一个,必须要有一个有效的字体文件.在Finder中双击该.ttf文件,应该会打开Font Book app,显示一个象形符号 ...

  8. 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 ...

  9. how tomcat works读书笔记 七 日志记录器

    大家可以松一口气了,这个组件比较简单,这一节和前面几节想比,也简单的多. Logger接口 Tomcat中的日志记录器都必须实现org.apache.catalina.Logger接口. packag ...

  10. win7 64位系统,vs2010下配置OpenGL开发环境

    glut下载地址: http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip 或者:http://user.xmission. ...