JSP servlet与ssh等框架相比,在互联网网站开发和企业级开发中的优劣势分析?
程序员文章站
2022-06-17 10:48:58
...
我们知道,企业级开发,框架带来了各种好处。
在互联网网站项目开发时,侧重点不同,框架是否还尽如人意?
java开发网站,用纯JSP servlet和ssh的优劣势。分析。
首先,我是从qbasic开始编程,经历了qb到vb,vb到asp(不带.net),asp到jsp,jsp到php,再回头学习j2ee。这个过程可能导致我的观点可能跟主流观点不同,希望各位理解。
j2ee并不等于spring struts hibernate,还有各种其他的选择,ssh不是唯一甚至不是最好的选择,这里按下不表。
先问一个问题,什么是jsp/servlet不能做,而ssh能做的?没有ssh之前,就没有web应用了么?
有人会觉得servlet傻,可是你看看struts的核心入口Dispatcher,不就是一个Servlet么。你觉得jdbc难用,hibernate的功能最后还是用jdbc实现的,而且不少批量处理的情况,还是原生sql好用,以至于hibernate不得不提供原生sql接口,mybatis正是从这里挖走不少用户。
在很多情况下,ssh做的,只不过是把java/jsp/servlet/jdbc本来就具有的功能,封装成不一样的API,把原先用Java编写的代码变成用XML编写,然后在用java写的解释器在jvm里面去运行这些XML。所以,我觉得ssh其实就是面向web开发这个领域创造出来的一组DSL(领域特定语言)。而这套语言以XML开始,现在转移到java的注解annotation,慢慢的又回归java语言本身。
不太全面的说,struts就是给不熟悉html/css/js的web程序员摆脱它们写业务逻辑用的,hibernate就是给不熟悉SQL的程序员摆脱SQL写数据库程序用的,spring就是给不熟悉java的接口、反射的程序员摆脱接口反射写AOP用的。而上面被代替的这些,恰恰是相关领域的原生DSL,这里面多少有一点讽刺的意味,对么?
如果struts的开发者没有在jsp混杂java片段的各种嵌套括号引号海里面摸爬滚打过来,你觉得他们会想到要做struts么?
如果hibernate的开发者没有在SQL的join链中绕晕过,他们会搞hibernate?
如果spring的开发者没有对java反射的异常数量吐过槽,会有spring?
如果你只想做一个平庸的码农,去学ssh能让你找到一份不错的入门工作。
如果你希望能深入的理解系统、语言、框架,去学习语言本身提供的功能,去学习servlet、jdbc、java,去看看如何用他们构造通用的复杂的系统,也许未来5-10年,人们再提起j2ee,说的就是你创造的框架的名字,而不再是什么spring struts hibernate。
我们总是希望高内聚低耦合,但两者通常是矛盾的;如果你愿意放弃其中的一个,就可以在另一个上面走的更远。(这里写的观点有偏差,正解请看 评论里春雷的说法)
为了防止有人跟帖说U can U up.
GitHub - zhblue/crud: CRUD is Really Urgly coDed -- 数据库快速原型系统 泻药
首先你要搞清楚两个概念 Servlet 和SSH 的关系 ~~ 其实 SSH 基本都是基于Servlet实现的。举个例子 很久有人发明了自行车 那时候 自行车是唯一的交通工具 。可有人发现 自行车长距离骑行真不是一般的累 (大规模应用开发的时候,所有*都要重复制造) 于是基于自行车上有衍生出很多 比如电动自行车、摩托车、电动三轮车、等等 这些都是针对不同的应用环境而诞生的(实际项目中 很多Servlet开发是重复的 因此大家就抽出共同的规律 封装起来 。并且在此基础上 专门的一群人优化出一套代码~ 这也就是SSH 由来 ) 有专人维护 至少可以保证你的代码BUG少 漏洞少安全性高 ~而且有人给你写教程 这样 大型开发的时候 省时省力 ~~ 这时候 你还会用Servlet吗 ?
当然 如果有一天 你自己也想造一个电动车 那你就需要研究Servlet 因为 Servlet是根本 请独立完成PPT制作 你只需要用JSP/Servlet写个5000这个级别的东东,你就能感受到框架的魅力了 唉! 开发效率的问题,简单写几个页面用 servlet 倒还好,正真的企业级应用用servlet会累死,管理也不方便。 在原来的公司中使用SSH开发项目,该项目比较大,开发周期也很长。后来也遇到过用Servlet JSP编写的项目,该项目比较小。
怎么说呢,一般的小项目用Servlet JSP确实可以完成SSH框架完成的东西,但是开发量大,很多框架封装好的公共逻辑需要自己再去实现,另外总是感觉代码模块化不如用框架清晰。
一般大型的Java Web项目会使用框架,倒不限于SSH,还有SSM(Spring,SpringMVC,MyBatis),这些框架可以处理像请求参数类型转换、事务管理等公共逻辑,并且以配置的形式降低代码实现策略的耦合度。在大型项目的开发和维护上会节省不少时间。
框架是更高级的可重用的工具而已,实现的原理还是JDBC,Servlet等基础的东西。
希望对你有所帮助。 现在不应该是nodejs+socket么? JSP Servlet的优点就是学习简单,属于javaweb应用层的的底层API,很轻松地就能掌握运作机制。
SSH优点就是使用简单,帮你处理了许多东西,大多数时候你只要配配路由,写写controller就行了。但是因为它内部设计比较复杂,所以当你要基于它提供的扩展接口去自定义一些类时你需要弄懂它内部的设计和类和类之间的组织关系。不过大部分时候你只要写controller,service这些就行了。
在互联网网站项目开发时,侧重点不同,框架是否还尽如人意?
java开发网站,用纯JSP servlet和ssh的优劣势。分析。
回复内容:
这个问题其实是只可意会不可言传,然而从看到这个邀请,就有跟知友卖弄的冲动。首先,我是从qbasic开始编程,经历了qb到vb,vb到asp(不带.net),asp到jsp,jsp到php,再回头学习j2ee。这个过程可能导致我的观点可能跟主流观点不同,希望各位理解。
j2ee并不等于spring struts hibernate,还有各种其他的选择,ssh不是唯一甚至不是最好的选择,这里按下不表。
先问一个问题,什么是jsp/servlet不能做,而ssh能做的?没有ssh之前,就没有web应用了么?
有人会觉得servlet傻,可是你看看struts的核心入口Dispatcher,不就是一个Servlet么。你觉得jdbc难用,hibernate的功能最后还是用jdbc实现的,而且不少批量处理的情况,还是原生sql好用,以至于hibernate不得不提供原生sql接口,mybatis正是从这里挖走不少用户。
在很多情况下,ssh做的,只不过是把java/jsp/servlet/jdbc本来就具有的功能,封装成不一样的API,把原先用Java编写的代码变成用XML编写,然后在用java写的解释器在jvm里面去运行这些XML。所以,我觉得ssh其实就是面向web开发这个领域创造出来的一组DSL(领域特定语言)。而这套语言以XML开始,现在转移到java的注解annotation,慢慢的又回归java语言本身。
不太全面的说,struts就是给不熟悉html/css/js的web程序员摆脱它们写业务逻辑用的,hibernate就是给不熟悉SQL的程序员摆脱SQL写数据库程序用的,spring就是给不熟悉java的接口、反射的程序员摆脱接口反射写AOP用的。而上面被代替的这些,恰恰是相关领域的原生DSL,这里面多少有一点讽刺的意味,对么?
如果struts的开发者没有在jsp混杂java片段的各种嵌套括号引号海里面摸爬滚打过来,你觉得他们会想到要做struts么?
如果hibernate的开发者没有在SQL的join链中绕晕过,他们会搞hibernate?
如果spring的开发者没有对java反射的异常数量吐过槽,会有spring?
如果你只想做一个平庸的码农,去学ssh能让你找到一份不错的入门工作。
如果你希望能深入的理解系统、语言、框架,去学习语言本身提供的功能,去学习servlet、jdbc、java,去看看如何用他们构造通用的复杂的系统,也许未来5-10年,人们再提起j2ee,说的就是你创造的框架的名字,而不再是什么spring struts hibernate。
我们总是希望高内聚低耦合,但两者通常是矛盾的;如果你愿意放弃其中的一个,就可以在另一个上面走的更远。(这里写的观点有偏差,正解请看 评论里春雷的说法)
为了防止有人跟帖说U can U up.
GitHub - zhblue/crud: CRUD is Really Urgly coDed -- 数据库快速原型系统 泻药
首先你要搞清楚两个概念 Servlet 和SSH 的关系 ~~ 其实 SSH 基本都是基于Servlet实现的。举个例子 很久有人发明了自行车 那时候 自行车是唯一的交通工具 。可有人发现 自行车长距离骑行真不是一般的累 (大规模应用开发的时候,所有*都要重复制造) 于是基于自行车上有衍生出很多 比如电动自行车、摩托车、电动三轮车、等等 这些都是针对不同的应用环境而诞生的(实际项目中 很多Servlet开发是重复的 因此大家就抽出共同的规律 封装起来 。并且在此基础上 专门的一群人优化出一套代码~ 这也就是SSH 由来 ) 有专人维护 至少可以保证你的代码BUG少 漏洞少安全性高 ~而且有人给你写教程 这样 大型开发的时候 省时省力 ~~ 这时候 你还会用Servlet吗 ?
当然 如果有一天 你自己也想造一个电动车 那你就需要研究Servlet 因为 Servlet是根本 请独立完成PPT制作 你只需要用JSP/Servlet写个5000这个级别的东东,你就能感受到框架的魅力了 唉! 开发效率的问题,简单写几个页面用 servlet 倒还好,正真的企业级应用用servlet会累死,管理也不方便。 在原来的公司中使用SSH开发项目,该项目比较大,开发周期也很长。后来也遇到过用Servlet JSP编写的项目,该项目比较小。
怎么说呢,一般的小项目用Servlet JSP确实可以完成SSH框架完成的东西,但是开发量大,很多框架封装好的公共逻辑需要自己再去实现,另外总是感觉代码模块化不如用框架清晰。
一般大型的Java Web项目会使用框架,倒不限于SSH,还有SSM(Spring,SpringMVC,MyBatis),这些框架可以处理像请求参数类型转换、事务管理等公共逻辑,并且以配置的形式降低代码实现策略的耦合度。在大型项目的开发和维护上会节省不少时间。
框架是更高级的可重用的工具而已,实现的原理还是JDBC,Servlet等基础的东西。
希望对你有所帮助。 现在不应该是nodejs+socket么? JSP Servlet的优点就是学习简单,属于javaweb应用层的的底层API,很轻松地就能掌握运作机制。
SSH优点就是使用简单,帮你处理了许多东西,大多数时候你只要配配路由,写写controller就行了。但是因为它内部设计比较复杂,所以当你要基于它提供的扩展接口去自定义一些类时你需要弄懂它内部的设计和类和类之间的组织关系。不过大部分时候你只要写controller,service这些就行了。
上一篇: php兑现加好友功能