当前位置: 首页 > news >正文

赤峰做企业网站公司深圳高端写字楼

赤峰做企业网站公司,深圳高端写字楼,高端网站建设深圳,小区物业管理网站开发报告概述 Spring MVC#xff08;Model-View-Controller#xff0c;模型-视图-控制器#xff09;是Spring框架的一部分#xff0c;用于构建基于Java的Web应用程序。它遵循MVC设计模式#xff0c;分离了应用程序的不同方面#xff08;输入逻辑、业务逻辑和UI逻辑#xff09;Model-View-Controller模型-视图-控制器是Spring框架的一部分用于构建基于Java的Web应用程序。它遵循MVC设计模式分离了应用程序的不同方面输入逻辑、业务逻辑和UI逻辑从而实现松耦合和模块化。 主要组件 主控DispatcherServlet 前端控制器 三大组件Handler Mapping - HandlerAdapter - View Resolver DispatcherServlet 前端控制器: 核心组件是前端控制器Front Controller模式的实现。接收所有的HTTP请求并将其分发给适当的处理器Controller。 Handler Mapping 处理器映射器: 将请求映射到具体的处理器Controller。可以基于URL、注解、请求参数等进行映射。 HandlerAdapter 处理器适配器 Controller: 处理请求的具体组件。通常是一个带有特定注解如Controller、RequestMapping的类或方法。从Model中获取数据并将其返回给视图View。 ModelAndView: 包含模型数据和视图信息的对象。Controller处理完请求后返回一个ModelAndView对象交给DispatcherServlet。 View Resolver 视图解析器: 根据逻辑视图名解析实际的视图实现。常见的视图技术有JSP、Thymeleaf、FreeMarker等。 View: 负责呈现最终结果给用户。使用模型数据生成响应内容。 HandlerAdapter处理器适配器中的设计模式 在Spring MVC中HandlerAdapter主要使用了以下设计模式 1. 适配器模式Adapter Pattern 定义适配器模式用于将一个接口转换为客户端期望的另一个接口使得原本由于接口不兼容而无法一起工作的类能够一起工作。 在Spring MVC中的应用 HandlerAdapter接口是适配器模式的典型例子。Spring MVC通过HandlerAdapter将不同类型的处理器如Controller适配为统一的处理方式。Spring MVC支持多种处理器类型如传统的Controller接口实现、注解驱动的控制器等。每种处理器类型都有相应的HandlerAdapter实现将其转换为DispatcherServlet可以处理的格式。例如RequestMappingHandlerAdapter适配了基于注解的控制器SimpleControllerHandlerAdapter适配了传统的实现Controller接口的控制器。 2. 策略模式Strategy Pattern 定义策略模式定义了一系列算法或行为并将它们封装起来使它们可以互换。策略模式让算法独立于使用它的客户端变化。 在Spring MVC中的应用 HandlerAdapter接口本身体现了策略模式。不同的HandlerAdapter实现了不同的策略处理不同类型的请求处理器。DispatcherServlet作为客户端使用不同的HandlerAdapter策略来处理不同的控制器类型。这使得Spring MVC能够灵活地扩展和适应新的控制器类型而无需修改核心代码。 3. 工厂模式Factory Pattern 定义工厂模式用于创建对象而无需指定创建对象的具体类。工厂模式通过定义一个创建对象的接口将实际创建工作推迟到子类中。 在Spring MVC中的应用 Spring的应用上下文ApplicationContext和Web上下文WebApplicationContext使用了工厂模式来管理和创建HandlerAdapter实例。在配置Spring MVC时可以通过配置文件或注解声明哪些HandlerAdapter应该被创建和使用Spring框架会负责实际的对象创建和依赖注入。 具体示例 假设有一个简单的基于注解的控制器 Controller public class MyController {RequestMapping(/hello)public String handleRequest() {return hello;} }对于上述控制器Spring MVC的工作流程如下 DispatcherServlet接收请求。使用HandlerMapping找到相应的处理器即MyController。DispatcherServlet使用适当的HandlerAdapter如RequestMappingHandlerAdapter来调用处理器。RequestMappingHandlerAdapter将MyController的请求处理方法适配为通用的处理方式返回视图名。 通过适配器模式Spring MVC能够统一处理不同类型的控制器使得框架更加灵活和可扩展。 工作流程 执行时序图 客户端发送HTTP请求。DispatcherServlet接收请求。DispatcherServlet通过Handler Mapping找到适当的Controller。Controller处理请求操作Model生成ModelAndView对象。DispatcherServlet通过View Resolver解析逻辑视图名找到实际的View实现。View使用Model数据生成响应内容返回给客户端。 执行原理图 核心注解 Controller: 标识一个类为Controller。RequestMapping: 用于映射请求到具体的处理器方法。GetMapping, PostMapping, PutMapping, DeleteMapping: 更具体的请求映射注解。RequestParam: 绑定请求参数到方法参数。PathVariable: 绑定URL模板变量到方法参数。ModelAttribute: 绑定请求参数到模型对象。 示例代码 Controller public class HelloController {RequestMapping(/hello)public ModelAndView hello(RequestParam(name) String name) {ModelAndView mav new ModelAndView();mav.setViewName(hello);mav.addObject(message, Hello, name);return mav;} }配置文件示例XML beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:mvchttp://www.springframework.org/schema/mvcxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdmvc:annotation-driven /bean classorg.springframework.web.servlet.view.InternalResourceViewResolverproperty nameprefix value/WEB-INF/views/ /property namesuffix value.jsp //beanbean classcom.example.HelloController / /beans优点 松耦合: 通过MVC模式分离关注点。灵活性: 支持多种视图技术和模板引擎。易扩展: 可以通过配置和注解轻松扩展功能。集成性: 与Spring生态系统的其他部分无缝集成如Spring Security、Spring Data等。 Spring MVC是一个强大且灵活的Web框架适用于从小型到大型的Web应用开发。通过它开发者可以快速构建、测试和维护高质量的Java Web应用程序。 比较传统方法 使用传统的Servlet和JSP技术来改写示例代码。传统方法下我们需要手动处理请求管理视图以及传递数据。以下是相应的实现 目录结构 |-- src | |-- main | |-- java | | |-- com | | |-- example | | |-- HelloServlet.java | |-- webapp | |-- WEB-INF | |-- views | | |-- hello.jsp | |-- web.xmlHelloServlet.java package com.example;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;WebServlet(/hello) public class HelloServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String name request.getParameter(name);if (name null || name.isEmpty()) {name World;}request.setAttribute(message, Hello, name);request.getRequestDispatcher(/WEB-INF/views/hello.jsp).forward(request, response);} }hello.jsp % page contentTypetext/html;charsetUTF-8 languagejava % html headtitleHello/title /head bodyh1${message}/h1 /body /htmlweb.xml ?xml version1.0 encodingUTF-8? web-app xmlnshttp://java.sun.com/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsdversion2.5servletservlet-nameHelloServlet/servlet-nameservlet-classcom.example.HelloServlet/servlet-class/servletservlet-mappingservlet-nameHelloServlet/servlet-nameurl-pattern/hello/url-pattern/servlet-mapping /web-app工作流程 客户端发送请求用户在浏览器中输入http://localhost:8080/your-app-context/hello?nameJohn。Servlet接收请求HelloServlet的doGet方法处理这个请求。参数处理Servlet从请求中获取参数name如果没有传递参数默认值为World。设置请求属性Servlet将生成的消息作为请求属性message存储。请求转发Servlet使用RequestDispatcher将请求转发到hello.jsp。视图生成hello.jsp使用请求属性message生成响应内容并返回给客户端。 解释 Servlet代替了Spring MVC的Controller用于处理HTTP请求。RequestDispatcher用于将请求转发到JSP页面类似于Spring MVC中的View Resolver。JSP负责生成最终的HTML响应类似于Spring MVC中的视图。 这种方法没有Spring MVC那样的模块化和灵活性但它展示了在没有Spring MVC框架支持下如何使用Servlet和JSP技术处理请求和生成视图。
http://www.hkea.cn/news/14577444/

相关文章:

  • 松江做网站百度官方下载安装
  • 用wex5 网站开发网站建公司简介
  • 建设购物网站的意义多作者wordpress插件
  • 百度生成在线网站地图去水印小程序搭建
  • php网站开发试卷沭阳奥体小区做网站
  • 网站建设的数据储存在哪里中国网站建设公司百强
  • 电子商务智能建站深圳大胜上海
  • 给彩票网站做代理违法吗wordpress表单支付
  • 自己做的网站给人攻击了怎么办软件开发涵盖网站开发吗
  • 学完网站建设再可以学什么莱芜热点
  • 什么语言开发网站考研门户网站的建设
  • 网站策划刚学完网站开发
  • 一件代发48个货源网站湖南响应式网站公司
  • 仙桃有哪些做网站的公司百度下载安装2022最新版
  • wordpress主题超限做网站分为竞价和优化
  • 宁波专业做网站软件开发流程解读
  • 安徽东皖建设集团有限公司网站专业的镇江网站建设
  • wap网站实例wordpress代码高亮知乎
  • 浙江网站建设费用有没有专门搞网站上线的公司
  • 新加坡域名注册网站建设网站需要哪些内容
  • 网站修改联系方式网站宣传册怎么做的
  • 门户网站开发jz190落实网站建设培训班精神
  • 东莞南城网站建设公司直接翻译网页的软件
  • 怎样更新网站文章修改wordpress登录框
  • 济南网站建设正规公司哪家好郑州正规的网站制作价钱
  • 创建建站建程网是正规网吗
  • 兴仁市建设局网站在平台企业网站推广怎么做
  • 全网营销型推广网站建设做网站学
  • 正版软件购买网站中卫网站设计
  • 大连做网站qq群wordpress 网站内跳转