Web开发模式【Mode I 和Mode II的介绍、应用案例】(一)

简介: 笔记

开发模式的介绍


在Web开发模式中,有两个主要的开发结构,称为模式一(Mode I)和模式二(Mode II).

首先我们来理清一些概念吧:

  • DAO(Data Access Object):主要对数据的操作,增加、修改、删除等原子性操作。
  • Web层:界面+控制器,也就是说JSP【界面】+Servlet【控制器】
  • Service业务层:将多个原子性的DAO操作进行组合,组合成一个完整的业务逻辑
  • 控制层:主要使用Servlet进行控制
  • 数据访问层:使用DAO、Hibernate、JDBC技术实现对数据的增删改查
  • JavaBean用于封装数据,处理部分核心逻辑,每一层中都用到!


模式一


模式一指的就是在开发中将显示层、控制层、数据层的操作统一交给JSP或者JavaBean来进行处理

模式一有两种情况:

  • 完全使用JSP做开发
  • 优点:
  • 缺点:
  1. 程序的可读性差、复用性低、代码复杂!什么jsp代码、html代码都往上面写,这肯定很难阅读,很难重用!
  2. 开发速度贼快,只要写JSP就行了,JavaBean和Servlet都不用设计!
  3. 小幅度修改代码方便,直接修改JSP页面交给WEB容器就行了,不像Servlet还要编译成.class文件再交给服务器!【当然了,在ide下开发这个也不算是事】
  • 使用JSP+JavaBean做开发
  • 优点:
  • 缺点:
  1. 没有流程控制,程序中的JSP页面都需要检查请求的参数是否正确,异常发生时的处理。显示操作和业务逻辑代码工作会紧密耦合在一起的!日后维护会困难
  2. 程序的可读性较高,大部分的代码都写在JavaBean上,不会和HTML代码混合在一起,可读性还行的
  3. 可重复利用高,核心的代码都由JavaBean开发了,JavaBean的设计就是用来重用、封装,大大减少编写重复代码的工作!


应用例子:


我们使用JavaBean+JSP开发一个简易的计算器吧,效果如图下

50.jpg

  • 首先开发JavaBean对象


publicclassCalculator{

   

       privatedoublefirstNum;

       privatedoublesecondNum;

       privatecharOperator='+';

       privatedoubleresult;

   

   

       //JavaBean提供了计算的功能

       publicvoidcalculate(){

   

           switch(this.Operator){

               case'+':

                   this.result=this.firstNum+this.secondNum;

                   break;

   

               case'-':

                   this.result=this.firstNum-this.secondNum;

                   break;

   

               case'*':

                   this.result=this.firstNum*this.secondNum;

                   break;

   

               case'/':

                   if(this.secondNum==0){

                       thrownewRuntimeException("除数不能为0");

                   }

                   this.result=this.firstNum/this.secondNum;

                   break;

   

               default:

                   thrownewRuntimeException("传入的字符非法!");

           }

       }

   

   

       publicdoublegetFirstNum(){

           returnfirstNum;

       }

   

       publicvoidsetFirstNum(doublefirstNum){

           this.firstNum=firstNum;

       }

   

       publicdoublegetSecondNum(){

           returnsecondNum;

       }

   

       publicvoidsetSecondNum(doublesecondNum){

           this.secondNum=secondNum;

       }

   

       publicchargetOperator(){

           returnOperator;

       }

   

       publicvoidsetOperator(charoperator){

           Operator=operator;

       }

   

       publicdoublegetResult(){

           returnresult;

       }

   

       publicvoidsetResult(doubleresult){

           this.result=result;

       }

   }



  • 再开发显示页面

<%--开发用户界面--%>

   <formaction="/zhongfucheng/1.jsp"method="post">

       <tableborder="1">

           <tr>

               <tdcolspan="2">简单计数器</td>

               <td></td>

           </tr>

           <tr>

               <td>第一个参数:</td>

               <td><inputtype="text"name="firstNum"></td>

           </tr>

           <tr>

               <td>运算符</td>

               <td>

                   <selectname="operator">

                       <optionvalue="+">+</option>

                       <optionvalue="-">-</option>

                       <optionvalue="*">*</option>

                       <optionvalue="/">/</option>

                   </select>

               </td>

           </tr>

           <tr>

               <td>第二个参数:</td>

               <td><inputtype="text "name="secondNum"></td>

           </tr>

           <tr>

               <tdcolspan="2"><inputtype="submit"value="提交"></td>

               <td></td>

           </tr>

       </table>

   </form>


  • 效果:

51.jpg


目录
相关文章
|
18天前
|
弹性计算 Java 关系型数据库
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
|
27天前
|
Kubernetes 安全 Devops
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
59 10
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
|
18天前
|
弹性计算 Java 数据库
Web应用上云经典架构实战
本课程详细介绍了Web应用上云的经典架构实战,涵盖前期准备、配置ALB、创建服务器组和监听、验证ECS公网能力、环境配置(JDK、Maven、Node、Git)、下载并运行若依框架、操作第二台ECS以及验证高可用性。通过具体步骤和命令,帮助学员快速掌握云上部署的全流程。
|
2月前
|
前端开发 JavaScript UED
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势,包括样式表优化、DOM操作减少、图像优化等技术,并分析了电商网站的具体案例,强调了技术演进对Web性能的深远影响。
43 5
|
2月前
|
机器学习/深度学习 人工智能 JavaScript
JavaScript和TypeScript的未来发展趋势及其在Web开发中的应用前景
本文探讨了JavaScript和TypeScript的未来发展趋势及其在Web开发中的应用前景。JavaScript将注重性能优化、跨平台开发、AI融合及WebAssembly整合;TypeScript则强调与框架整合、强类型检查、前端工程化及WebAssembly的深度结合。两者结合发展,特别是在Vue 3.0中完全采用TypeScript编写,预示着未来的Web开发将更加高效、可靠。
53 4
|
18天前
|
弹性计算 负载均衡 安全
云端问道-Web应用上云经典架构方案教学
本文介绍了企业业务上云的经典架构设计,涵盖用户业务现状及挑战、阿里云业务托管架构设计、方案选型配置及业务初期低门槛使用等内容。通过详细分析现有架构的问题,提出了高可用、安全、可扩展的解决方案,并提供了按量付费的低成本选项,帮助企业在业务初期顺利上云。
|
2月前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
36 4
|
3月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
184 3
|
1月前
|
前端开发 安全 JavaScript
2025年,Web3开发学习路线全指南
本文提供了一条针对Dapp应用开发的学习路线,涵盖了Web3领域的重要技术栈,如区块链基础、以太坊技术、Solidity编程、智能合约开发及安全、web3.js和ethers.js库的使用、Truffle框架等。文章首先分析了国内区块链企业的技术需求,随后详细介绍了每个技术点的学习资源和方法,旨在帮助初学者系统地掌握Dapp开发所需的知识和技能。
2025年,Web3开发学习路线全指南
|
2月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
208 45