mvc

少年X 2020-12-14 12:20:47
请问mvc与html页面通过ajax直接调用后端服务器中的jsp有何区别?mvc的易维护性又体现在何处?
...全文
3106 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
街头小贩 2020-12-16
  • 打赏
  • 举报
回复
我看过烂代码不少,这种写法尤有最佳。
街头小贩 2020-12-16
  • 打赏
  • 举报
回复
谁教你的?这是太不好的写法。你看了盗版书了?还是哪个师父或老师从古代穿越的。就这种写法还大项目连100个并发都抗不住,优化和性能更无从谈起
少年X 2020-12-15
  • 打赏
  • 举报
回复
引用 15 楼 少年X 的回复:
[quote=引用 14 楼 街头小贩 的回复:]模板负责html结构和样式,按我的理解由前端程序员来作,前端程序员只需要少量的java知识,当需要换成单页应用时也方便切换,因为模板只是展示没有任何逻辑,无非由服务器端生成改为客户端生成而已
jsp也可以不做模板,比如说下面这段代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import = "java.sql.*"%> <% Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/main?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8"; String username = "root"; String password = "123123"; response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); Connection conn = DriverManager.getConnection(url,username,password); String sql = "insert into users (name,age,birth,number,phonenumber,sex)values(?,?,?,?,?,?)"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1,request.getParameter("name")); ps.setString(2,request.getParameter("age")); ps.setString(3,request.getParameter("birth")); ps.setString(4,request.getParameter("number")); ps.setString(5,request.getParameter("phonenumber")); ps.setString(6,request.getParameter("sex")); ps.executeUpdate(); %>[/quote] 以我的理解,jsp可以单纯的视为servlet啊
少年X 2020-12-15
  • 打赏
  • 举报
回复
引用 14 楼 街头小贩 的回复:
模板负责html结构和样式,按我的理解由前端程序员来作,前端程序员只需要少量的java知识,当需要换成单页应用时也方便切换,因为模板只是展示没有任何逻辑,无非由服务器端生成改为客户端生成而已
jsp也可以不做模板,比如说下面这段代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import = "java.sql.*"%> <% Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/main?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8"; String username = "root"; String password = "123123"; response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); Connection conn = DriverManager.getConnection(url,username,password); String sql = "insert into users (name,age,birth,number,phonenumber,sex)values(?,?,?,?,?,?)"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1,request.getParameter("name")); ps.setString(2,request.getParameter("age")); ps.setString(3,request.getParameter("birth")); ps.setString(4,request.getParameter("number")); ps.setString(5,request.getParameter("phonenumber")); ps.setString(6,request.getParameter("sex")); ps.executeUpdate(); %>
街头小贩 2020-12-15
  • 打赏
  • 举报
回复
模板负责html结构和样式,按我的理解由前端程序员来作,前端程序员只需要少量的java知识,当需要换成单页应用时也方便切换,因为模板只是展示没有任何逻辑,无非由服务器端生成改为客户端生成而已
街头小贩 2020-12-15
  • 打赏
  • 举报
回复
引用 12 楼 少年X 的回复:
[quote=引用 11 楼 街头小贩 的回复:]用现在主流的技术,后端分布式(微服务或WEB服务框(REST,SOAP)架集群), 前端:单页应用(React,vue,angular).中间件:redis缓存+MQ中间件作消息传递,这种组合万级并发没问题,抗不住加服务器(水平扩容)。 当然你得有人和钱干这么事。这种无疑需要20+的开发团队。 若你只是想知道一些技术或应用实战,前后分离是大趋势,现在从大到小公司的项目都上云,上云了单体项目肯定没法玩,当然也有一些项目是内部项目可能是单体(SSM). 我刚入行时一位同事说: 不要在jsp中写java代码, 不要在Servlet中写html代码。按职位分工来干事都对了。
也就是说,Ajax直接调用JSP来操作数据库返回想要的数据这种方式不利于分工进行开发,是这样吗?[/quote] 我是不建议这样作,jsp是模板,不能在模板中生产数据,你可以在Servlet中输出json.jsp最终也是编译成servlet
少年X 2020-12-15
  • 打赏
  • 举报
回复
引用 11 楼 街头小贩 的回复:
用现在主流的技术,后端分布式(微服务或WEB服务框(REST,SOAP)架集群), 前端:单页应用(React,vue,angular).中间件:redis缓存+MQ中间件作消息传递,这种组合万级并发没问题,抗不住加服务器(水平扩容)。 当然你得有人和钱干这么事。这种无疑需要20+的开发团队。 若你只是想知道一些技术或应用实战,前后分离是大趋势,现在从大到小公司的项目都上云,上云了单体项目肯定没法玩,当然也有一些项目是内部项目可能是单体(SSM). 我刚入行时一位同事说: 不要在jsp中写java代码, 不要在Servlet中写html代码。按职位分工来干事都对了。
也就是说,Ajax直接调用JSP来操作数据库返回想要的数据这种方式不利于分工进行开发,是这样吗?
街头小贩 2020-12-15
  • 打赏
  • 举报
回复
用现在主流的技术,后端分布式(微服务或WEB服务框(REST,SOAP)架集群), 前端:单页应用(React,vue,angular).中间件:redis缓存+MQ中间件作消息传递,这种组合万级并发没问题,抗不住加服务器(水平扩容)。 当然你得有人和钱干这么事。这种无疑需要20+的开发团队。 若你只是想知道一些技术或应用实战,前后分离是大趋势,现在从大到小公司的项目都上云,上云了单体项目肯定没法玩,当然也有一些项目是内部项目可能是单体(SSM). 我刚入行时一位同事说: 不要在jsp中写java代码, 不要在Servlet中写html代码。按职位分工来干事都对了。
少年X 2020-12-15
  • 打赏
  • 举报
回复
引用 6 楼 luj_1768的回复:
差别不大,一般来讲,ajax开发成本要低一些,开发效率要高一些,维护成本也要低一些。
好的,谢谢。
少年X 2020-12-15
  • 打赏
  • 举报
回复
引用 9 楼 街头小贩 的回复:
联通的一个架构师给我介绍了一本阿里的架构师出的一本书,讲的是阿里项目的演进史,书名你自已去搜索吧,免得有人说我卖广告,你看一看目录若感兴趣可以买本。我没买。我只想写代码哈
okok,感谢您还能记得我
街头小贩 2020-12-15
  • 打赏
  • 举报
回复
联通的一个架构师给我介绍了一本阿里的架构师出的一本书,讲的是阿里项目的演进史,书名你自已去搜索吧,免得有人说我卖广告,你看一看目录若感兴趣可以买本。我没买。我只想写代码哈
街头小贩 2020-12-15
  • 打赏
  • 举报
回复
引用 5 楼 少年X 的回复:
那请问,如果现在做一个大型网站,是用MVC更好一点还是用ajax调用服务器的jsp更好一点?原因是什么呢?
大的意思是什么,是并发量大?若是达到BAT级的流量,解决方案不是光一个mvc,ajax都能应负的。若真想了解一下建议你了解一下架构师相关的知识
luj_1768 2020-12-15
  • 打赏
  • 举报
回复
差别不大,一般来讲,ajax开发成本要低一些,开发效率要高一些,维护成本也要低一些。
少年X 2020-12-14
  • 打赏
  • 举报
回复
那请问,如果现在做一个大型网站,是用MVC更好一点还是用ajax调用服务器的jsp更好一点?原因是什么呢?
街头小贩 2020-12-14
  • 打赏
  • 举报
回复
再回来说:mvc,其实是一个设计模式,这个模式的最佳实践不是现在的网页而是gui项目(c/s项目)。你现在看到的一些mvc,或其衍生模式只是大家按mvc来理解或将其在b/s中的一种实践,一种技术或方案得以流行不是说它没有人反对或说不,其实一直有人在批评mvc在b/s中的实践。 至于你的项目使用的是mvc还是其它什么模式,至于jsp在其的角色是什么。我觉得我们不是学院派或从事科学研究。项目搞完老板都说你干的不错,即使你用了高大上的技术没搞好项目,哪也没用(用户只是使用,而不是你研究你的项目是如何完成的)! 最后一点: 不少人说it行业是造名词行业,你看看ajax, W3C官方称为XHR, 这个技术最早有微软搞出来的,当时不叫ajax,也不叫XHR. 随着google的一些高大上的项目的上线,让大家看到前端还可以这么玩。以前都是写写js,css.你看看现在js要编译,css要编译
街头小贩 2020-12-14
  • 打赏
  • 举报
回复
你的理解不能说错!只是一个层面,在java企业的mvc中,jsp是充当模板的,即使模板引擎不用jsp,其它的也是服务器端生成,将生成好的html结构发送到浏览器中展示. 现在所谓的前后分离: 前端是全js技术栈(即单页应用,react,vue,angular),通过ajax或异步通信技术来获取局部页面需要的数据。网页的结构和样式全在客户端完成. 你所见到的结果是90年代开始发展到现在的技术历程。若你只站在现在看jsp确实没有存在的价值。但不是所有公司或项目都是紧跟技术流行,哪些现在看来老的项目(使用是非现在的主流技术)依然在运行,为啥公司不把老项目推了重新作呢?这个答案其实跟技术是什么?什么好什么合理没关系
少年X 2020-12-14
  • 打赏
  • 举报
回复
如果jsp不作为页面输出,只是在后台服务器中进行数据的处理、读取与发送,再用ajax回调函数接受数据进行局部刷新,那这样做也可以将业务逻辑分开,那为何不可以这样使用,非要用MVC多一层控制器呢?换句话说,视图直接与jsp进行数据通信从而实现数据的更新不好吗?
howcoder 2020-12-14
  • 打赏
  • 举报
回复
jsp在HTML中混入大量、复杂的业务逻辑,这样导致页面可维护性十分低下,mvc其实和现在的vue差不多,就是少了view-model的实时渲染这层,它在view视图层返回的时候把model带回,以至于你在页面中想使用数据的时候通过@Model的方式就可以获取到

10,606

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 其他
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧