Java B/S开发模式漫谈

SSO(单点登录)技术漫谈 回到Web1.0时代,这里有“世界上最好的语言”PHP,也有新贵JSP等等,每个企业都有大量的内部应用系统(譬如oa系统,hr系统,休假系统……),小的企业可能十几个应用,大的可能有成千上万个系统,而且很可能每个系统都还是不同的语言写的。 在日常工作中,人类为了能进入各个系统,必须得通过帐号和密码进行登录验证(身份验证)后,才能获取到跟自己身份相符的信息。那么问题来了,这么多的系统,每个系统都搞一个密码的话,大多数用户都要记忆不少于10个用户名和相应密码。为了便于记忆,很多人都在不同的站点使用相同的…… 阅读详情

Java B/S开发模式漫谈

作者: Programmer's Life

B/S
作为如今最为流行的体系结构模式,也是受到了广大开发人员以及客户的认同,其开发模式也在不断的发展着,在这里主要就 Java B/S 的开发模式做一番回顾和探讨,也算是自己对于 Java B/S 开发模式的一种总结。

    Jsp+Jdbc

    在 B/S 开发中最简单的一种开发模式是页面 + 逻辑处理,映射到技术上反应出来的有 Jsp+Jdbc ,在基于这类的实现中在 View 层也就是 jsp 页面上负责数据的显示、逻辑处理,结合 jdbc 完成数据的持久化,在小型的项目中,人们确实发现这种方式是最为方便的,但在复杂的项目以及需求不断变化的项目中,人们慢慢的发现这种方式造成了不少的问题,首先是调试的问题,想想在一个 jsp 页面中进行排错是多么的困难,其次是修改的问题,为了满足用户需求的一个小小的变化,都需要去改不少的页面,而且很多时候由于写的时间长了,自己都需要回忆很久才能想起是怎么回事,更不用说如果人员流动了会怎么样,同时还带来开发效率的问题,由于需要缺少足够的调试的支持,需要较为熟练的开发人员才能快速的完成,对于一般的人员来说需要一定的适应和学习过程,当然伴随而来的还有诸如修改界面的时候一不小心少 copy 了点代码什么造成的错,最大的问题可能还是重用的问题,通常会造成 N 多同样的代码在页面上 copy 来 copy 去的,总结下来在这种模式下有几个比较重大的问题就是:

    1、 调试问题。

    2、 维护问题,显示和逻辑处理在一起导致了修改显示的时候较为困难,至于修改代码则因为之前的调试问题导致了困难,同时由于逻辑均在页面上后期接手人员需要一段时间去理解。

    3、 代码重用性问题。

    但同样它还是存在优点的,那就是可以很快的上手,但由于调试和维护性问题确实太大了,所以在现在也是基本不再采用这种方式了。

    Jsp+JavaBean

    在经历了 jsp+jdbc 阶段后,开始考虑怎么样去解决上面三个问题,这个时候就诞生了诸 JSP+JavaBean 这样的技术体系,在这个体系中由 jsp 页面负责显示以及接收页面请求,并调用相应的 JavaBean 来完成逻辑处理,在获取其返回的处理数据后转到相应的页面进行显示。在这样的技术体系中,由于逻辑是由 JavaBean 来完成的,可以对其进行调试了,代码的重用性一定程度上也得到了提高。刚开始的时候用这样的技术体系确实发现比以前用 jsp+jdbc 爽了很多,但随着用多了,慢慢又发现了问题,那就是在页面中需要编写对于页面请求数据的获取,还得根据请求去调用相应的 javabean ,并根据 javabean 的处理结果转入相应的页面,这同样造成了修改的麻烦,毕竟是去页面上修改这些逻辑,总结下来在这种模式下有比较重大的问题就是:

    1、 代码重用性以及维护性问题。但这里的代码重用性问题和 jsp+jdbc 的就不同,在逻辑处理部分现在已经可以重用了,但现在在各个页面就不得不重复的写获取页面请求的参数、相应的调用 Model 、根据 Model 的处理结果转发页面,这样的话就导致了在改的时候需要到处去找,造成了维护的复杂。

    2、 系统结构不清晰。毕竟仍然是在页面控制整个响应页面事件的处理流程,这个时候就造成了很多页面中出现完全相同的 jsp 代码,而且控制代码在页面,仍然是不便操作,例如对于 JavaBean 的调用等,而且由于获取 javabean 的数据需要转发的缘故,其实通常就是在最终的显示页面上加上上面的控制事件处理流程的代码,并没有真正的做到显示和处理的分离。

    同样,它的优点在于分离了显示和业务逻辑处理,增强了可调试以及维护性,而且也是很容易上手的,对于小型项目来说仍然是可选的方案之一。

    基于 MVC Framework

    在经历了上面的 Jsp+JavaBean 后,我们发现其实现在最需要的就是在 jsp 、 javabean 之间能有个东西自动完成页面请求数据的封装、根据请求调用相应的 javabean 、同时根据 javabean 的处理结果返回至相应的 View ,有了这样的思想后,发现 smalltalk 中的 MVC 思想很适合这种场景,于是便在 Java B/S 开发中引入了 MVC 思想,在这里也简单的介绍下 MVC 思想, MVC 强调 View 和 Model 的分离, View 所面对的是 Controller ,由 Controller 负责与 Model 进行交互, View 只负责显示页面以及显示逻辑的处理,显示逻辑指的是诸如第一行要显示蓝色、第二行要显示红色这样的显示方面的处理, Controller 负责接受页面请求,并将其请求数据进行封装,同时根据请求调用相应的 Model 进行逻辑处理,在 Model 处理后返回结果数据到 Controller , Controller 将根据此数据调用相应的 View ,并将此数据传递给 View ,由 View 负责将数据进行融合并最终展现。 MVC 带来的优点很明显的体现出来了,基于一个这样的 MVC Framework 的话开发人员可以按照一种固定的模式进行开发,规范了整个开发过程,提高了质量以及系统结构的清晰性,并由于保证了 View/Model 的分离,使得一个 Model 可以对于多种显示形式的 View ,需要的仅仅是去改变 View 和 Controller 。

    按照 MVC 思想,最容易想到的实现方案莫过于 jsp+servlet+javabean ,在这里面 jsp 对应着 View , servlet 对应着 Controller , javabean 对应着 Model ,因为采用 servlet 可使用 servlet container 已经封装好的页面数据请求对象 HttpServletRequest ,这样就省去了自己封装页面请求数据的工作,作为 Controller 同时还需要承担根据请求调用对应的 javabean ,最简单的做法无非就是在 Servlet 中直接根据某种逻辑 ( 诸如反射或接口 ) 调用相应的 bean 进行执行,之后将 HttpServletRequest 、 HttpServletResponse 作为参数传入 javabean 进行处理, javabean 从 HttpServletRequest 中获取请求数据,将返回的结果数据放入 HttpServletResponse ,整个过程结束后继续由 Controller 接手进行处理,这个时候作为 Controller 的 servlet 将根据处理的结果返回相应的页面,在这个模型使用时人们慢慢的发现了一个问题,那就是随着 jsp 、 javabean 的变化造成了 controller 的不断修改,需要修改其中调用相应 javabean 以及转发相应页面的部分,为了解决这个问题,首先想到的是应该分离根据请求调用相应 javabean 的步骤,这个时候采用了设计模式中的 front controller+application controller 的方法, front controller 负责接受页面请求并进行封装,同时将此数据对象传递至 application controller ,由 application controller 来负责调用相应的 bean ,这样的设计其实都是遵循着一个设计原则,就是职责单一,通常实现 application controller 的模式是 Command 模式,在这种情况下 MVC Framework 的结构体系就演变成了 view+controller(front+application)+model 。

    在完成了上述演变后慢慢又发现了一个问题,就是 model 依赖于了 httpservletrequest ,这样造成的一个问题就是没法测试,仍然要不断重启服务器来测试,当然与此同时的发展是 model 层的细化,细化成用于响应页面请求的 action Layer+Domain Model Layer+Persistent Layer ,在这里不去讨论后面层次的问题,因为作为 MVC Framework 它并不管你 Model 层是怎么个处理流程的。

    慢慢也发现了另外一个问题,那就是变化经常要影响到 controller 的修改,于是便引入了采用配置文件的解决方法,编写 action 的配置文件,在配置文件中控制根据 action 的返回结果转入相应的 View ,这样的话在将来需要改变的时候只需要去改变这个配置文件就可以了,保证了 Controller 的稳定,这是典型的设计中的重点考虑因素,分离变化和不变化的,让变化造成的影响最小。

    但在引入了上面的配置文件后,慢慢又发现了问题,那就是手写配置文件总是容易出各种各样的问题,这个时候采用图形化的界面来生成配置文件的想法又有了,这也就造就了 page flow 的诞生,当然,这只是 page flow 的一小部分功能。

    当然,随着MVC的发展,也带动了其他相关技术的发展,如异步请求/响应模式(ajax、amowa,^_^)等。
    在 MVC 思想接受后开源界的 MVC Framework 也是如雨后春笋般的冒出,比较知名的有 struts 、 webwork 、 spring mvc 等,这些 MVC Framework 基本都已经做到了上面提及的 MVC 思想演变的一些需求,当然,即使现在的 MVC Framework 是做到了,但在使用这些 MVC Framework 的时候我们通常又开始违背 MVC 思想的基本要素,就是保持 View 仅仅是 View 的原则,所以我比较推荐在 View 使用 Velocity 这之类的东西作为 View ,尽量保持 View 的纯洁性,任何技术的发展都是循序渐进的,不站在那个高度的时候是不知道前面还有什么样的高山的,那么现在我们缺少的又是什么呢?现在的 MVC Framework 中还存在着什么不足呢?这是值得我们思考的。

java B/S 开发入门---登录范例 这是我学习Java Web开发过程中的一点入门程序,供初学者参考,同时也欢迎大家指证,共同提高,我的练习方式是:wo13603102057@sina.com;QQ:243093502; 欢迎大家联系我,共同提高!!! 立即下载

相关推荐

用AI助手Cursor轻松自动生成流程图

通过 Cursor + Mermaid,我们可以快速、准确地自动生成流程图,上面演示的例子部分流程图可能比较丑,我们可以通过流程图软件导入Mermaid代码,然后手动进行微调就可以了,如果你对美观要求不是特别多,可以直接用,这将极大地提升代码可视化和架构设计的效率。

呱牛 Just do IT 1937

Java B/S开发模式

B/S作为如今最为流行的体系结构模式,也是受到了广大开发人员以及客户的认同,其开发模式也在不断的发展着,在这里主要就Java B/S的开发模式做一番回顾和探讨,也算是自己对于Java B/S开发模式的一种总结。 Jsp+Jdbc       在B/S开发中最简单的一种开发模式是页面+逻辑处理,映射到技术上反应出来的有Jsp+Jdbc,在基于这类的实现中在View层也就是jsp页面上负责

iverson79_82的专栏 5638

【STM32篇】DRV8425驱动步进电机

【STM32篇】在上篇文章中使用了HR4988实现了步进电机的驱动,在实际运用过程,4988驱动步进电机会存在电机噪音太大的现象。本次将向各位友友介绍一个驱动简单且非常静音的一款步进电机驱动IC。

we_long的博客 3067

海康威视 java B/S 开发 流程

最近项目用到了一个调用海康威视摄像头实现外网网页预览的需求,由于第一次接触这类需求,不免有些焦头烂额,现终于将需求实现,故,作一笔记用于记忆,并希望帮到要用的人。废话不多说,直接开始: 注:本文中所有的使用的代码和工具以及安装包的下载地址如下: 传送门:https://download.youkuaiyun.com/download/qq_36720088/10696597 由于c...

Hanlex-Liu的博客 3万+

避坑指南:Ubuntu 22.04上源码编译Autoware.universe(Humble版)的完整流程与常见错误修复

本文详细介绍了在Ubuntu 22.04上源码编译Autoware.universe(Humble版)的完整流程与常见错误修复方法。从环境准备、依赖安装到编译优化,提供了实用的避坑指南和解决方案,帮助开发者高效完成安装并避免常见问题。特别针对源码安装过程中的疑难杂症给出了具体修复建议。

weixin_33712987的博客 382

Altium Concord Pro 的应用范围,安装,和使用范围

Altium Concord Pro 的应用范围,安装,和使用范围。保证满足两者软件的最低安装要求。 Altium Concord Pro 是配合Digapcb,和MCAD,Altium 和相应机械设计软件的基础和交换桥梁

hanzhaos的博客 1120

JavaWeb开发模式:C/S模式,B/S模式,JSP+JavaBean模式,JSP+Servlet+JavaBean模式

JavaWeb开发模式1.C/S开发模式1.C/S架构:客户端Client/服务端Server:a.出现较早,主要应用于局域网内; b.胖客户端:需要特定软件支持(安装客户端) 逻辑关系图如下:优点: 客户端服务端直接连接,更安全,响应速度快等 客户端可以处理一些逻辑事务,资源得到充分利用;服务器资源有效浪费 缺点: 不同的操作系统系统开发不同版本的软件去安装, 加之产品的更新换代十分快, 维护

Java仗剑走天涯 1万+

树莓派 SPI操作

扩展板配备一款0.96inch,128864分辨率的oled显示屏,通过SPI控制,先上显示效果图。由于程序过长,在这里我就不把代码全部贴出来了,只是简单讲解一下spi的操作函数。管脚如下如所有,左边方框的管脚分别为MOSI MISO SCLK,左边CE0,CE1为两个片选管脚,分别对应上图中的spidev0.0,spidev0.1两个设备。下载spidev库,复制到树莓派,并行运行如下命令解压安装。spi设备,此处设备为/dev/spi-decv0.0。在/dev路径下面,我们可以发现两个spi设备。

weixin_46529898的博客 914

java开发b s_[转]Java B/S开发模式漫谈

[转载自: http://edu.yesky.com/edupxpt/490/2135490.shtml]B/S 作为如今最为流行的体系结构模式,也是受到了广大开发人员以及客户的认同,其开发模式也在不断的发展着,在这里主要就 Java B/S 的开发模式做一番回顾和探讨,也算是自己对于 Java B/S 开发模式的一种总结。Jsp+Jdbc在 B/S 开发中最简单的一种开发模式是页面 + 逻辑处理...

weixin_34481252的博客 437

如何在SpringBoot中实现AI 流式输出?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1479

AMBA-CHI协议详解(一)

CHI体系结构是一种可扩展、一致性的集线器接口和片上互联,可由多个组件使用。CHI体系结构允许根据性能、功耗和面积系统要求灵活地进行组件连接拓扑。硬件一致性使系统组件能够共享内存,而无需维护软件缓存以保持一致性。如果两个组件对同一存储器位置的写入可被所有组件以相同的顺序观察到,则存储器区域是一致的。

Crazzy_M的博客 1万+

java b s开发_Java B/S开发模式漫谈

Jsp+Jdbc在 B/S 开发中最简单的一种开发模式是页面 + 逻辑处理,映射到技术上反应出来的有 Jsp+Jdbc ,在基于这类的实现中在 View 层也就是 jsp 页面上负责数据的显示、逻辑处理,结合 jdbc 完成数据的持久化,在小型的项目中,人们确实发现这种方式是最为方便的,但在复杂的项目以及需求不断变化的项目中,人们慢慢的发现这种方式造成了不少的问题,首先是调试的问题,想想在一个 j...

weixin_33835155的博客 443

2026 拉勾网:JA4+指纹绕过 + sign逆向 + 动态城市参数,月采集10万+数据实战

2026年拉勾网反爬技术全面升级,采用JA4+ TLS指纹识别、动态sign签名等多维度防护体系。本文提供工业级爬虫解决方案,通过curl_cffi模拟浏览器指纹、逆向sign加密算法、动态生成城市参数三大核心技术,实现高效稳定的数据采集。系统采用分层架构设计,包含任务调度、签名生成、多线程引擎等模块,单月可获取10万+条招聘数据。重点解析了JA4+指纹识别原理、传统方法的局限性,以及通过HMAC-SHA256算法逆向sign参数的完整过程。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2393

java 开发b s_Java B/S开发模式漫谈 (转)

Java B/S开发模式漫谈 (转)B/S作为如今最为流行的体系结构模式,也是受到了广大开发人员以及客户的认同,其开发模式也在不断的发展着,在这里主要就Java B/S的开发模式做一番回顾和探讨,也算是自己对于Java B/S开发模式的一种总结。Jsp+Jdbc在B/S开发中最简单的一种开发模式是页面+逻辑处理,映射到技术上反应出来的有Jsp+Jdbc,在基于这类的实现中在View层也就是js...

weixin_33043471的博客 277

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

[转]Java B/S开发模式漫谈

[转载自: http://edu.yesky.com/edupxpt/490/2135490.shtml] B/S 作为如今最为流行的体系结构模式,也是受到了广大开发人员以及客户的认同,其开发模式也在不断的发展着,在这里主要就 Java B/S 的开发模式做一番回顾和探讨,也算是自己对于 Java B/S 开发模式的一种总结。   Jsp+Jdbc   在 B/S 开发中最简单的一种开发...

weixin_34004750的博客 157

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Java B/S开发模式漫谈 (转)

Java B/S开发模式漫谈 (转)B/S作为如今最为流行的体系结构模式,也是受到了广大开发人员以及客户的认同,其开发模式也在不断的发展着,在这里主要就Java B/S的开发模式做一番回顾和探讨,也算是自己对于Java B/S开发模式的一种总结。 Jsp+Jdbc 在B/S开发中最简单的一种开发模式是页面+逻辑处理,映射到技术上反应出来的有Jsp+Jdbc,在基于这类的实现...

weixin_30663471的博客 101

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【全景指南】JavaEE 深度解析:从 Jakarta EE 演进、B/S 架构到 SSM 框架群实战

本文全面解析JavaEE技术栈,从Jakarta EE的历史演进到现代B/S架构设计。重点剖析了SSM框架体系(Spring、Spring Boot、Spring MVC、MyBatis)在企业级开发中的应用价值,对比了C/S与B/S架构的优劣。针对初学者提出"实践优先"的学习方法论,强调通过项目实战掌握分层设计、前后端分离等核心思想。文章指出JavaEE仍是企业级开发的主流选择,系统学习可培养全栈开发、问题定位等关键能力,帮助开发者完成从基础编程到职业化的进阶转变。

寻星探路的测试技术博客!!! 2059

(转帖)C/S、B/S及三层结构漫谈

(转帖)C/S、B/S及三层结构漫谈 编者按: 为了更贴近软件开发人员,为他们提供一个技术交流的平台,从本期开始,实用技术栏目更名为应用沙龙,下设软件开发工具及技术、数据库、网络管理和知识窗四个子栏目。虽然栏目的设置和名称变化了,但不变的是我们的读者定位,是关注我国程序员的成长、为软件工程师服务的宗旨,是为我国的软件人员提供一个交流园地的目的,...

weixin_34116110的博客 183

漫谈: Java equals和 hashCode 关系

Override我们还是用上面String的方式去分析两个Worker对象的相等性:很显然, 通过==比较两者依然返回false, 而使用equals就能得出true: 我们通过源码分析即可:① this与传入对象的地址进行比较, 成立返回true;②如果传入对象为null(这里的this必定不为null)或者this的类型和传入对象的类型不相等的话直接 返回false;

weixin_44199502的博客 1134

深度克隆从C#/C/Java漫谈到JavaScript真复制

如果只想看js,直接从JavaScript标题开始。 在C#里面,深度clone有System.ICloneable。创建现有实例相同的值创建类的新实例 克隆原理 值类型变量与引用类型变量 如果我们有两个值类型的变量,将其中一个变量的值赋给另一个,实际上会创建该值的一个副本,这个副本与原来的值没有什么关系 ——这意味着改变其中一个的值不会影响另一个变量的值。 如果是两个引用类型的变量,其中一个变量的值赋给另一个的话(不包括string类型,CLR会对其有特殊处理),并没有创建.

qq_38472635的博客 158

漫谈Java中的中文问题

 摘要:关于Java应用在处理中文时所存在问题的讨论已经相当多了,与大部分的讨论不同,本文将从汉字字符的输入和输出的角度来讨论Java语言处理中文时所存在的问题。  尽管关于Java在处理中文字符时所存在的问题的讨论已不乏其数,但由于Java技术涉及内容广(J2EE包含了十几种相关技术),技术供应商繁多,面向Java的Web服务器、应用服务器以及JDBC数据库驱动等都没有官方的标准,所以Java应

zaowei21的专栏 2134
上一篇: JAVA软件工程师的基础知识
下一篇: 理清各种Java开发方面概念的文章,超级好
tree123
博客等级 码龄24年 2粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值