MVC模式在Java Web中的应用

JavaWeb(MVC模式) 目录 概述: MVC每层之间的逻辑关系 MVC与三层架构的区别 ​ 优缺点 购物车servlet类 加入购物车 显示数据的servlet 概述: (1)MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。 (2)最早为Trygve Reenskaug提出,为施乐帕罗奥多研究中心(Xerox PARC)的Smalltalk语言发明的一种软件设计模式... 阅读详情

流行的Java Web应用框架基本上都实现了MVC模型,下面分别以JSF和Struts为例介绍这些框架是如何实现MVC模型的。

JSF

在JSP框架中提供了一个中心控制器FacesServlet完成所有的控制,这样所有的请求都可以提交这个Servlet。需要在web.xml中进行配置,典型的代码如下:

  <context-param>

    <param-name>javax.faces.CONFIG_FILES</param-name>

    <param-value>/WEB-INF/faces-config.xml</param-value>

  </context-param>

  <servlet>

    <servlet-name>Faces Servlet</servlet-name>

    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

    <load-on-startup>0</load-on-startup>

  </servlet>

  <servlet-mapping>

    <servlet-name>Faces Servlet</servlet-name>

    <url-pattern>*.faces</url-pattern>

  </servlet-mapping>

在代码中,url-pattern的值是“*.faces”意味着所有的以.faces结束的请求都会由中心控制器FacesServlet处理。

另外在使用JSF框架的时候还需要编写一个配置文件,在上面的配置中可以看到有一个参数,参数指向了一个配置文件faces-config.xml,这个文件是所有的JSF应用中必须提供的,在这个配置文件中可以描述文件之间的跳转关系,以及使用JavaBean等。下面是某个应用中的faces-config.xml中的部分代码:

       <navigation-rule>

   <from-view-id>/login.jsp</from-view-id>

   <navigation-case>

      <from-outcome>success</from-outcome>

      <to-view-id>/ok.jsp</to-view-id>

   </navigation-case>

   <navigation-case>

      <from-outcome>failure</from-outcome>

      <to-view-id>/error.jsp</to-view-id>

   </navigation-case>

</navigation-rule>

<managed-bean>

   <managed-bean-name>userValidator</managed-bean-name>

   <managed-bean-class>validator.UserValidator</managed-bean-class>

   <managed-bean-scope>session</managed-bean-scope>

</managed-bean>

其中<navigation-rule>表示一个跳转关系,<from-view-id>表示从哪个页面的发送的请求,<navigation-case>表示一个可能的跳转,<from-outcome>表示一种情况的条件,<to-view-id>表示这种条件下的跳转目标。<managed-bean>表示一个被容器自动加载的类,所以所有的JavaBean基本上都不需要实例化。

在JSF框架中模型部分也是采用JavaBean实现,没有特殊的地方。

JSF框架中视图部分仍然使用JSP文件实现,只是为了与框架更好的结合,JSF提供了大量的自定义标签库来增强页面的功能。

在值的传递方面,JSF提供了表达式语言,通过表达式语言,直接把值从视图层传递给模型层,也可以把值从模型层传递给视图层。当然具体的传递过程仍然是通过控制层完成的。相当于把4种传递方式(从视图到控制层,从控制层到模型层,从模型层到控制层,从控制层到视图层)结合在一起了。

Struts

在Struts中提供了一个中心控制器ActionServlet完成所有的控制,这样所有的请求都可以提交给这个Servlet。需要在web.xml中进行配置,典型的代码如下:

  <servlet>

    <servlet-name>action</servlet-name>

    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

    <init-param>

      <param-name>config</param-name>

      <param-value>/WEB-INF/struts-config.xml</param-value>

    </init-param>

    <load-on-startup>0</load-on-startup>

  </servlet>

  <servlet-mapping>

    <servlet-name>action</servlet-name>

    <url-pattern>*.do</url-pattern>

  </servlet-mapping>

在代码中,url-pattern的值是“*.do”意味着所有的以.do结束的请求都会由中心控制器ActionServlet处理。对应用户的每个请求,都需要编写一个Action,与中心控制器一起完成控制功能。Action控制器中的代码与现在介绍的控制器中的代码基本相同。

另外在使用Struts框架的时候还需要编写一个配置文件,在上面的配置中可以看到有一个参数,参数指向了一个配置文件struts-config.xml,这个文件是所有的Struts应用中必须提供的,在这个配置文件中可以描述文件之间的跳转关系,以及请求路径和处理处理之间的关系。下面是某个应用中的struts-config.xml中的部分代码:

<struts-config>

  <action-mappings>

    <action path="/findAction" type="com.li.action.FindAction">

      <forward name="success" path="/test.jsp" />

    </action>

  </action-mappings>

  <message-resources parameter="ApplicationResources" />

</struts-config>

其中,每个action元素就表示一个请求,path属性指出请求的名字,例子中的名字对应一个以findAction.do为结束的请求。Type指出该请求由哪个Action处理,com.li.cation.FindAction就是要与中心控制器协同工作的Action。子元素<forward>表示Action执行完之后可能跳转到什么文件,这里的配置表明如果用户在程序中选择了success,则最后将跳转到test.jsp文件。后面的<message-resources>元素表示应用所使用的资源文件。

Structs中的模型部分JSF中的模型没有区别。

Struts中的视图部分仍然使用JSP文件实现,只是为了与框架更好的结合,Struts提供了大量的自定义标签库来增强页面的功能。

在值的传递方面,Struts提供了ActionForm机制,如果需要在视图层与控制层传值,需要编写ActionForm,ActionForm中的属性与要传递的表单元素是对应的。

深入Java Web MVC模式实现与应用 一个典型的JavaBean包含私有的成员变量、公开的构造方法和公开的getter和setter方法。它遵循特定的命名规则,例如,成员变量通常以小写字母开头,而对应的getter和setter方法则遵循get和set命名习惯,后面跟上相应属性的首字母大写形式。return age;通过上述的代码片段,我们定义了一个简单的JavaBeanUserBean。这个Bean具有两个属性:name和age,以及相应的getter和setter方法。 阅读详情

相关推荐

使用JSP+Servlet+JavaBean的MVC开发模式实现Web图书管理后台系统

JSP+Servlet+JavaBean的MVC管理员登录后可列表显示所有图书信息,包括书籍ISBN编号、书名、作者、价格、出版时间、折扣、库存量等信息;能添加、修改和能批量删除图书信息,能对上述主要字段进行查询,其中价格和时间支持区间查询;管理员有注销功能。数据库采用mysql。’

tomcat项目启动报错:java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet

如图,我项目启动的时候就报这个错误,但是项目正常访问。 百度了一番,才知道是jar的问题; 但是我下载了jar后,还是报这个错。 在百度一番,又知道了,是与项目的web.xml里面的启动加载顺序的配置问题,在web.xml中的下面这句: <servlet> <servlet-name>Faces Servlet</servlet-name>...

DAMO小天天 2148

MVC模式的应用

(1) 实现一个MVC模式的Web应用(内容不限,比如登陆、查询(成绩、商品、人员信息)、录入(成绩、商品、人员信息)等)。 采用JSP编写一个页面(考虑美学设计),输入相关信息,提交给Servlet,Servlet通过调用javabean访问数据库并验证信息是否有效。如有效,跳转另一页面;否则提示信息有误,并在5s后跳转至原页面。

Java Web实战开发基础:MVC模式

Java Web开发中,采用MVC(Model-View-Controller)模式是一种常见的架构模式。这种模式将应用程序分解成三个主要组件:模型(Model)、视图(View)和控制器(Controller),并且通过这种组织方式,使得代码具有更好的可维护性、可扩展性和可重用性。

qq_22593423的博客 620

LabVIEW多界面应用开发:从启动器到主界面的切换架构与实现

在图形化编程领域,模块化与界面管理是构建复杂应用程序的核心。其原理在于通过清晰的程序架构,实现不同功能模块间的独立运行与协同工作,从而提升代码的可维护性和可扩展性。这种架构的技术价值在于能够有效管理应用程序的生命周期与资源,避免内存泄漏,并确保流畅的用户体验。在测控系统、自动化测试等工程实践中,常需实现如启动界面选择语言或模式后,无缝切换至主功能界面的场景。本文聚焦于LabVIEW环境,深入探讨如何利用动态调用、状态机等机制,并结合功能全局变量(FGV)与队列消息处理器(QMH)等热词技术,构建健壮的多界面

weixin_30802819的博客 263

从零解析:富斯i6遥控器与STM32的IBUS协议通信实战

本文详细解析了富斯i6遥控器与STM32通过IBUS协议通信的实战指南,涵盖硬件准备、协议解析、驱动实现及常见问题解决。特别适合机器人及智能小车开发者,提供低成本、高可靠性的无线控制方案,助力快速实现多通道控制功能。

weixin_29193359的博客 441

javax.faces.webapp.FacesServlet

web项目创建后执行报:javax.faces.webapp.FacesServlet java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:...

G_whang的博客 2510

车载以太网入坑指南,从小白到懂哥的进阶之路【技术分享】

各位技术大佬们好!最近公司项目涉及到车载以太网,刚开始完全懵逼,花了大半个月时间各种查资料、测试设备,总算是摸清了门道。想着互联网上卧虎藏龙,肯定有不少大佬对这个技术感兴趣,所以写个帖子分享一下,顺便求各位大佬指点。

starelink的博客 1262

java web 开发——第七章MVC模式

本章将介绍 MVC 模式,MVC 模式的核心思想是将“模型关视图”和“控制器?进行有效组合。掌握该模式对于设计合理的 Web 应用以及学习使用某些流行的 Web 框架,如 Spring、Struts 等,有着十分重要的意义。模型-视图-控制器(Model-View-Controller) , 简称为 MVC。MVC 已经成为软件设计者必须熟练使用的开发模式。MVC 是一种通过三部分构造一个软件或组件的理想办法。★ 模型(model) : 用于存储数据的对象。

woaizj0426的博客 7009

从零到一:Ubuntu22.04下VSCode与中文输入法的深度整合指南

本文详细介绍了在Ubuntu22.04系统中如何深度整合VSCode与中文输入法,包括环境准备、安装方案对比、输入法配置及常见问题解决方案。通过fcitx框架优化中文输入体验,提供从基础设置到高级调试的全方位指南,帮助开发者提升在Linux环境下的开发效率。

weixin_29158047的博客 482

YOLOv8实战:如何用Focaler-IoU提升小目标检测精度(附代码)

本文详细介绍了如何通过Focaler-IoU提升YOLOv8在小目标检测中的精度,包括核心机制解析、代码实现及调优策略。Focaler-IoU通过动态聚焦机制有效解决传统IoU对小目标检测的不足,显著提升模型性能。附有完整的代码示例和实战指南,适合计算机视觉开发者参考。

weixin_29044157的博客 363

java web里实现 mvc_MVC模式在Java web应用程序中的实现

MVC模式在Java web应用程序中的实现1.MVC简介MVC是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。MVC用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC一般用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。使用MV...

weixin_31437143的博客 1222

谷粒商城 - 个人笔记(集群部署篇一)

电商后台管理系统+电商系统,掌握微服务的全套方案。该系统有商品服务、仓储服务、订单服务、购物车服务、检索服务、认证中心服务、网关服务、用户服务、秒杀服务、第三方服务。使用SpringBoot+SpringCloud并配套SpringCloud Alibaba系列,引入全套微服务治理方案:Nacos注册中心/配置中心、Feign远程调用、Gateway网关、Redisson缓存、基于ElasticSearch7全文检索、异步编排与线程池、RabbitMQ柔性事务方案、Redisson分布式锁、分布式信号量等。

知行 4009

17.MVC设计模式与Java Web应用开发实战

MVC(Model-View-Controller)是一种将程序分为模型、视图和控制器三个核心组件的设计模式。模型负责业务逻辑和数据交互,视图负责数据展示,控制器协调模型和视图,处理用户请求。MVC的核心优势包括关注点分离、可维护性、复用性和团队协作。在Java Web中,MVC可以通过Servlet、JSP和业务类等技术实现。控制器接收用户请求并调用模型处理业务逻辑,最终将数据传递给视图进行展示。MVC模式可以与前端技术结合,既支持传统的JSP渲染,也支持现代的RESTful API和AJAX调用。通过M

weixin_40593051的博客 1004

电源完整性之仿真设计原理

电源完整性(Power Integrity),简称为PI,也就是大家平常听说的PI。PCB板上的电源设计也是非常重要的,不当的设计也会引起很重要的影响。所以电源完整性PI和信号完整性SI,是我们互连设计人员应该同等重视的问题。今天整理本人接触的电源完整性PI的一些原理,从不的角度去看PI,会有不同的理解,下面开始喽!!! 提到互连的电源设计,可能首先想到的电源分配网络(Power Distribution Nets),因为互连电源会有许多种,直流DC和交流AC,还有不同的电压调节模块(VRM)与不同的负载端

刘小同学的博客 7378

OpenFeign整合Sentinel实现熔断降级

常用于实现熔断降级的框架有Hystrix、Sentinel,我们常说的Spring Cloud项目说的其实是Spring Cloud Netflix,Hystrix以及前面学习过的Ribbon都是Netflix系的家族成员,所以使用Hystrix可以非常简单的与当前项目中使用到的OpenFeign、Ribbon整合,但笔者并没有选择Hystrix,而是选择阿里系的Sentinel。 为什么选择Sentinel而不是Hystrix?从接入简单考虑可能选择Hystrix是不错的选择,但笔者对Hyst...

吴就业 6718

MVC模式 在Java Web应用程序中的实现

一、MVC简介 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用...

a34082721的博客 3041

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

MVC模式在Java Web应用程序中的实现

MVC模式在Java Web应用程序中的实现 一、前言 MVC 作为一种框架模式已经有很久的历史了,这么多年来经受住了工程实践的考验,获得了巨大的成功,今天我们来重新回顾一下MVC 框架模式,并以 java web 应用程序为例来具体说明一下 MVC 的实现过程。 二、MVC简介 MVC原本存在于桌面程序中的,M是指数据模型,V是指用户界面,C...

a4254353213的博客 659

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

MVC的M在java web中_MVC模式在Java Web应用程序中的实现

MVC模式在Java Web应用程序中的实现一、前言MVC 作为一种框架模式已经有很久的历史了,这么多年来经受住了工程实践的考验,获得了巨大的成功,今天我们来重新回顾一下MVC 框架模式,并以 java web 应用程序为例来具体说明一下 MVC 的实现过程。二、MVC简介MVC原本存在于桌面程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同...

weixin_35511997的博客 575

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

MVC设计模式及其在Java Web开发中的应用

MVC(Model-View-Controller)是一种广泛使用的软件设计模式,它通过将应用程序的逻辑、数据和用户界面展示进行分离,使得软件开发更加模块化、可维护性和可重用性更高。在Java Web开发中,MVC设计模式同样发挥着至关重要的作用。

903

mvc实例 java_MVC模式在Java Web应用程序中的实例分析

MVC实例应用模式完成:MVC模式在Java Web应用程序中的实例分析结合六个基本质量属性分析具体功能模块的MVC设计实现(例如登录、用户权限等功能模块)在实际项目中的具体应用或分析MVC设计模式在具体网站中的应用(需要列举实例)首先了解一下MVC框架是什么模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的。它主要通过分离模型、视图及控制器在应用程序中的角色将业务逻辑从界面中...

weixin_40005795的博客 269

MVC的M在java web中_MVC模式在Java web 应用程序的实现

一、MVC简介MVC(Model-View-Controller)模型-视图-控制器,最早由Trygve Reenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件架构。MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,...

weixin_42168341的博客 439

java web里实现 mvc_MVC模式在Java Web应用程序中的实现

一、MVC简介:MVC架构是一个复杂的架构,其实现也显得非常复杂。。Views可以看作一棵树,可以用CompositePattern来实现。Views和Models之间的关系可以ObserverPattern体现。Controller控制Views的显示,可以用StrategyPattern实现。Model通常是一个调停者可采用MediatorPattern来实现。MVC的产生:MVC架构...

weixin_28518991的博客 457
上一篇: Eclipse中Web应用的开发
下一篇: EJB3会话Bean的开发——NetBeans和SunJavaSystemApplicationServer
老李-大连
博客等级 码龄20年 3206粉丝 308原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值