当前位置: 首页 > 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/14571713/

相关文章:

  • 佛山新网站建设价格好的案例展示网站
  • 个人虚拟网站长宁手机网站建设
  • 做棋牌网站赚钱吗网站开发辛苦吗
  • 曲周企业做网站推广微信公众号缴费
  • 江门市住房建设管理局网站服务器与虚拟主机
  • 网站开发验收资料二级域名怎么指向另外一个网站
  • 怎么能加强门户网站建设沈阳网站建设公司
  • 新桥做网站建设类网站有哪些
  • 重庆市建设工程交易中心网站深圳网站建设公司地址
  • 上传网站根目录企业所得税的计算公式
  • 关于企业网站建设数据现状分析wordpress自动更新发布
  • 网站建设教程视频最新新闻热点事件英语
  • 网站被挂黑链怎么办wordpress优酷
  • 直播教育网站建设企业可以做哪些网站有哪些内容吗
  • 淘宝网站开发需求分析如何用wordpress修改模板的内容
  • 成都网站制作方案聚名网怎么注销账号
  • 如何查询某个网站的设计公司前端兼职平台的行业前景
  • 南通做外贸的公司网站网站服务公司案例
  • 网站建设 用英语网站建设主流语言
  • 国内建站 wordpresswordpress app登陆
  • tk域名免费注册网站海淀做网站公司
  • 南京明辉建设有限公司网站论建设工程施工合同
  • 很那网站建设个人网站营业执照
  • 湘潭营销型网站建设设计手机网站建设
  • 网站建设模板之家免费下载做网站有年费吗
  • wordpress调用网站副标题wordpress 首页留言板
  • 最便宜的购物网站排名东莞市网络seo推广企业
  • 网站建设客户沟通模块互联网运营培训班哪个好
  • 福州住房和建设局网站福州做网站公司有哪些
  • 太原网站建设技术外包做网站空间重要还是程序重要