传智播客Java web之 JSP开发模式

 

    接着JavaBean的是JSP的开发模式,这属于一个比较深入的话题。但是这里做了一个详细的介绍。对以后的Java Web开发框架的学习有很大益处的。在书或者视频上,详细介绍了MVC设计模式和JSP开发模式,同时分别用JSP中的两种模式演示了用户登录和注册功能。
    在开发一个软件之前,必须先设计好其架构,一个基本的架构思想是将软件分成不同的模块,问题的关键就是如何划分模块。MVC(模型-视图-控制器)是20世纪80年代为Smalltalk-80编程语言发明的一种软件设计模式,它是一种分离业务逻辑与显示界面的设计方法。MVC的模型(Model)部分负责管理程序的业务数据,视图(View)部分负责显示界面,控制器(Controller)部分则负责与用户进行交互(接受请求和选择响应视图)。在这种模式中,一个视图可以查询多个模型,一个模型发生更改时可以通知多个视图,一个控制器可以操作多个模型和视图。采用MVC模式构建的程序工作时,用户根据某个视图的显示信息进行操作,操作请求通过视图组件提交给控制器,控制器再根据请求信息调用模型组件的业务方法修改模型的数据状态。控制器调用模型组件进行处理后,根据模型返回结果选择相应的视图组件显示处理结果和模型中的数据。另外,当模型组件的数据发生改变后,它可以通知与之相关的视图组件更新显示以保持与模型数据的同步状态。模型的"状态改变通知"一般都是使用观察者通知模式来实现的,可以将多个视图注册为一个模型的观察者,模型在数据状态发生改变时,主动给所有注册的视图发送消息。综上所述,MVC的数据模块和现实模块实现了良好的松耦合,只要它们相互连接的接口保持不变,对其中一个得修改不会影响到另外一个,所以,采用MVC模式构建的系统具有极高的可维护性、可扩展性、可移植性和组件的可复用性。
    为了更好的利用JSP来开发Web应用程序,在早期的JSP规范中定义了两种使用JSP的模式:Model 1和Model 2。模式一主要采用JSP + JavaBean技术,JSP页面负责处理请求和输出响应结果,并将其中发生的一些业务逻辑交给JavaBean处理。这一模式最大的特点就是将一次请求的响应过程完全交给一个JSP页面负责,这样JSP做了控制器和视图两个角色的工作。所以该模式不是纯粹的MVC模式。因此模式二借鉴了MVC模式来实现显示内容与业务逻辑的完全分离,它综合采用Servlet+JSP+JavaBean技术,由Servlet处理请求和控制业务流程,JSP输出响应结果,JavaBean负责具体的业务数据和业务逻辑。从以上可以看出,两个模式之间的最大区别就是将处理请求的功能与产生显示内容的功能分配给两个独立的模块来完成。在模式二中,JavaBean是模型,它位于Web服务器端,而最终的视图位于用户的浏览器端,只有浏览器发出请求后,服务器才会做出响应,没有请求就没有响应,所以,在Web应用中难以实现MVC模式的"状态改变通知"事件,视图不能随模型的改变而自动更新。因此,模式二是MVC模式一个变体,通常有人称作Web MVC。模式二由于Servlet不再担负生成显示内容的任务,而JSP也只是简单的从Servlet创建好的JavaBean对象中检索数据,然后将结果插入JSP的预定义模板,从而使不懂JAVA代码的普通HTML设计人员完全可以编写和维护JSP页面。同时,只要各个组件相互连接的接口不变,任意一个组件发生修改,其他组件都不用随之改变。
    视频演示了模式一与模式二,由于以后常用的应该是模式二,所以下面举例说明用模式二实现用户注册功能的设计:
    视图:
      register.jsp为显示用户注册表单的页面,它的注册请求提交给ControllerServlet程序处理。
      logonSuccess.jsp是用户登录成功后进入的页面,新注册成功的用户自动完成登录,直接进入logonSuccess.jsp页面。
    控制器:
      ControllerServlet是作为控制器的Servlet程序,它负责处理注册用户信息的请求,注册成功后跳转到logonSuccess.jsp页面,注册失败时跳回到register.jsp页面重新显示注册表单和失败的帮助信息。
    模型:
      RegisterFormBean.java是封装注册表单信息的JavaBean程序,ControllerServlet将注册表单信息绑定到RegisterFormBean对象上,然后调用RegisterFormBean对象的方法对各个属性(也就是注册表单内的各个字段中所填写的数据)进行语法格式方面的校验。
      UserBean.java为代表用户信息的JavaBean程序,ControllerServlet根据用户注册信息创建出一个UserBean对象后添加到DbUtil对象中,logonSuccess.jsp页面从UserBean对象中提取用户信息进行显示。
      DbUtil.java是用于访问数据库的辅助类,它相当于一个DAO(数据访问对象),这里用DbUtil类中封装的一个HashTable对象来代替数据库,HashTable对象中的每一个元素即为一个UserBean对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《JavaWeb程序开发入门》是由传智播客出版的一本介绍JavaWeb开发的教程,主要面向初学者。这本教程详细介绍了JavaWeb开发的基本概念、常用技术和实践方法。 首先,这本教程提供了JavaWeb开发的基础知识。它介绍了JavaWeb开发的基本原理,如ServletJSP等技术的概念和使用方法。它还讲解了JavaWeb开发中的MVC架构模式,帮助读者理解Web应用程序的组织和开发方式。 第二,教程介绍了JavaWeb开发中常用的技术和工具。例如,它讲解了如何使用JavaWeb开发中常用的框架,如Struts、Spring和Hibernate。同时,它还介绍了JavaWeb开发中的数据库设计和访问技术,如MySQL和JDBC等。 第三,教程提供了大量的实例和案例。通过这些实例,读者可以学习如何搭建一个完整的JavaWeb应用程序,包括前端页面的设计和开发,后端业务逻辑的实现以及数据库的设计和使用。 总的来说,《JavaWeb程序开发入门》是一本适合初学者学习JavaWeb开发的教材。它清晰地介绍了JavaWeb开发的基本原理和常用技术,通过实例的演示,帮助读者掌握JavaWeb开发的基本技能。这本教程简洁明了,容易理解,是学习JavaWeb开发的好选择。 ### 回答2: javaweb程序开发入门指的是学习使用Java语言开发Web应用程序的基础知识和技能。而传智播客是一个培训机构,有提供相关的教材,其中也包括了javaweb开发的PDF版本文档。 对于想要学习javaweb开发的人来说,传智播客的PDF文档是一种非常便利的学习资源。这些文档涵盖了javaweb开发的各个方面,包括基础的Java编程语法、常用的开发工具和框架、数据库的使用和设计以及常用的服务器配置等内容。它们提供了一个系统的学习路径,帮助学习者逐步了解和掌握javaweb开发的基本知识和技巧。 通过传智播客的PDF文档,学习者可以按照自己的进度和需求,有针对性地学习相关知识。这些文档也可以很好地配合传智播客的课程使用,帮助学员更好地理解和应用所学知识。 总的来说,传智播客javaweb开发入门PDF文档是一种非常有用的学习资源,可以帮助初学者系统地学习javaweb开发,并为他们打下坚实的基础。 ### 回答3: 传智播客Javaweb程序开发入门PDF是一本很受欢迎的教材,对于想要学习Javaweb开发的初学者来说,是一本很好的资源。这本PDF全面介绍了Javaweb的基础知识、开发环境搭建、ServletJSP、数据库操作等内容,几乎涵盖了Javaweb开发的方方面面。 在这本PDF中,你将学习到如何搭建Javaweb开发环境,包括下载和安装Java JDK、Eclipse IDE、Tomcat服务器等。之后,你将学习到Servlet的基本概念和使用方法,如何处理HTTP请求和响应,如何使用Servlet来编写后台逻辑代码等。接下来,你将学习到JSP的基础知识,包括JSP的语法、常用标签和表达式的使用方式等。在学习这些基础知识之后,你将学习到如何使用JDBC进行数据库操作,包括连接数据库、执行SQL语句、处理结果集等。 通过阅读这本PDF,你将对Javaweb程序开发的整个流程和步骤有一个全面的了解,并能够独立地开发简单的Javaweb应用程序。当然,这只是入门级别的学习资源,如果你希望进一步深入学习Javaweb开发,还需要进一步学习其他相关的知识,如框架的使用、前端开发等等。 总的来说,传智播客Javaweb程序开发入门PDF是一本很好的学习资源,对于初学者来说是入门的重要材料。希望通过学习这本PDF,你能够对Javaweb开发有一个良好的基础认识,并能够进一步深入学习和实践。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值