MVC模式在Java Web中的应用

流行的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方法。 阅读详情

相关推荐

MVC模式的应用

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

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

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

DAMO小天天 2148

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

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

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

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

qq_22593423的博客 620

双目视觉三维重构(一)————简介

优快云中关于立三维重构的介绍层出不穷,CNKI中也有各类综述对三维重构进行总结,撰写这篇博客仅作为本人对该类博客、论文的总结学习,加深自身学习的印象、作为学习的笔记。如有错误的地方,欢迎指正。   1、三维重构 1.1、三维重构到底是什么?   首先要了解立体匹配算法,首先要知道立体匹配算法主要具体应用于什么方向。 三维重构又被称为三维重建,百度百科中对它的定义为:指对三维物体建立适合...

qq_39634612的博客 1万+

虚拟化Esxi 和 华为交换机--配置链路捆绑

在这种模式下,Eth-Trunk的建立和成员接口的加入都需要手工配置,没有LACP协议的参与。● 在没有配置802.3ad聚合时,启用基于IP哈希的路由将中断网络,因此必须先对虚拟交换机进行更改。再去修改交换机的链路聚合模式(交换机配置为手动模式的链路聚合)当服务器需要通过交换机从远端服务器获取配置文件后才可以启动链路聚合时,交换机的链路聚合口需要配置lacp force-forward。● 交换机必须设置手动模式的链路聚合,虚拟交换机的负载平衡方法必须设置为基于IP哈希的路由。

ling 2117

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

通俗地解释一下 EMD(经验模态分解,Empirical Mode Decomposition)

EMD 就像把一碗“混在一起的面条”分成不同粗细的面条,方便你逐层分析每种波动。

qlkaicx的博客 1249

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

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

woaizj0426的博客 7009

海量数据 / Vastbase 深度研究笔记 v3.1

v3.1 重点修订:在 v3.0 审慎版基础上,新增“2026 新变量”章节,纳入 7 亿级定增、HTAP / 多模态时序数据库、G100 V3.0 Build 8 的 3CM+2DN 高可用补强、pgvector / V100 / AI 多模叙事,以及集成服务基因与标准软件 ARR 的拉扯。核心关注点是:Vastbase 能否把 openGauss 生态红利、数据库产品矩阵和行业交付能力,转化为可持续、可复购、低边际成本的标准软件收入。海量不是没有业务基本盘,也不是马上失血致死;客户越多,服务债越大。

喝醉酒的小白 575

最新Python爬虫实战(入门爬虫篇)——案例20:某股票数据采集(详细爬虫思路截图+抓包动图演示+完整爬虫代码+详细注释)

本次案例针对某股票行情网的静态HTML页面,实现了全市场股票数据的全自动化爬取,覆盖了从抓包分析、请求模拟、数据解析到数据存储的完整爬虫流程,非常适合入门学习者巩固基础,核心知识点和实现要点总结如下:首先是页面分析的核心逻辑,静态HTML页面的数据爬取,核心在于通过浏览器开发者工具,完成完整的抓包分析和标签结构定位。我们不需要像动态页面那样找隐藏的API接口,只需要确认数据在主文档的HTML源码中,然后通过元素选择器,精准找到每个字段对应的标签,总结出统一的标签结构规律,就能实现批量数据提取。

努力让自己发光,对的人才能迎着光而来 19万+

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

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

weixin_31437143的博客 1222

Cesium 实战 26 - 自定义纹理材质 - 箭头流动线(图片纹理)

Cesium 实战 - 自定义纹理材质 - 箭头流动线(图片纹理)。

非科班Java出身GISer的博客 1404

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

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

weixin_40593051的博客 1004

树莓派 Raspberry Pi 使用 YOLOv8 YOLOv10 YOLOv11进行目标检测及推理加速,Run YOLOv8 YOLOv10 YOLOv11 on Raspberry Pi

libcamera 是 linux 新增加用于访问 camera 的 API。树莓派参与了 libcamera 的开发,并且在新的摄像头软件中开始从依赖于固件的摄像头图像处理管道(Image processing pipeline, ISP)迁移到更加开放的 libcamera。当然这块用USB 摄像头应该也是可以的。

shiter编写程序的艺术 5571

YOLOv8/v9工业零件缺陷检测实战指南:从原理到产线部署

摘要:本文系统介绍基于YOLOv8/v9的工业零件缺陷检测技术,从工业质检背景与需求出发,详解缺陷检测原理、算法构建与模型训练,提供从数据集准备到移动端部署的全流程实操方案。包含多尺度检测、纹理分析等高级技术,适配工业相机的环境优化策略,以及完整质检系统代码实现。适合工业视觉领域新手与进阶开发者,助力快速构建高鲁棒性的缺陷检测系统。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1306

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

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

a34082721的博客 3041

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

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

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

a4254353213的博客 659

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

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

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

weixin_28518991的博客 457

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

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

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值