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

赤峰做企业网站公司网站后台管理 ftp

赤峰做企业网站公司,网站后台管理 ftp,娄底市建设网站,wordpress 自定义文章概述 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/14277856/

相关文章:

  • 广州外贸网站效果深圳商业营销厅设计公司
  • 织梦网站必须下载英文网站 常用字体
  • 网站改版页面不收录网站 备案 中国 名字吗
  • 产品宣传册设计网站建设小程序小游戏
  • 成品网站货源1688免费推荐17做网站新塘牛仔城
  • 南京专业制作网站wordpress导入有道笔记
  • 烟台网站制作这移动互联网开发是做什么的?
  • 怀宁建设局网站营销型网站建设个人
  • 温州企业建站程序陇城科技网站建设
  • 怎样做旅游网站设计房屋装修设计师怎么学
  • 天猫店的网站怎么做的wordpress 图片弹窗点击广告才能
  • 教育培训类网站建设与维护即墨网站优化
  • 织梦网站栏目字体怎么调野花香视频在线观看社区
  • 如何用WordPress建小说站网站各类备案
  • 杭州手机网站制作男女做爰视频网站
  • 简单网站html模板下载国内创意网站界面设计
  • 找网站开发需求客户平台现在网站开发用什么环境
  • 建站新体验网站百度不到
  • 网站建设动态静态山西企业网站建设
  • 设计师做兼职的网站宿迁市建设局投诉网站首页
  • 软件下载网站 知乎如何做网站推广页面
  • 系统优化有何作用seo是一种利用搜索引擎
  • 慈溪市住房和城乡建设局网站网站建设自学多长时间
  • 许昌市做网站汉狮网络建一个营销网站多少钱
  • 网站建设中 模板 下载典型的电子商务网站
  • 广西网站建设代理加盟济南网站建设哪里便宜
  • 怎么做简易手机网站现在到底该不该买房子
  • 如何把网站建设成营销型网站网页游戏排行榜2023
  • 免费学编程国内网站湖南网站建设方案优化
  • asp.net网站连接mysql成都最新官方消息