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

做的网站有营销效果吗广州白云区最新信息

做的网站有营销效果吗,广州白云区最新信息,真实家庭装修图片,app应用网站单页模板概述 Spring MVC(Model-View-Controller,模型-视图-控制器)是Spring框架的一部分,用于构建基于Java的Web应用程序。它遵循MVC设计模式,分离了应用程序的不同方面(输入逻辑、业务逻辑和UI逻辑)&…

概述

Spring MVC(Model-View-Controller,模型-视图-控制器)是Spring框架的一部分,用于构建基于Java的Web应用程序。它遵循MVC设计模式,分离了应用程序的不同方面(输入逻辑、业务逻辑和UI逻辑),从而实现松耦合和模块化。

主要组件

主控:DispatcherServlet 前端控制器
三大组件:Handler Mapping -> HandlerAdapter -> View Resolver

  1. DispatcherServlet 前端控制器:

    • 核心组件,是前端控制器(Front Controller)模式的实现。
    • 接收所有的HTTP请求,并将其分发给适当的处理器(Controller)。
  2. Handler Mapping 处理器映射器:

    • 将请求映射到具体的处理器(Controller)。
    • 可以基于URL、注解、请求参数等进行映射。
  3. HandlerAdapter 处理器适配器

  4. Controller:

    • 处理请求的具体组件。
    • 通常是一个带有特定注解(如@Controller@RequestMapping)的类或方法。
    • 从Model中获取数据并将其返回给视图(View)。
  5. ModelAndView:

    • 包含模型数据和视图信息的对象。
    • Controller处理完请求后,返回一个ModelAndView对象,交给DispatcherServlet。
  6. View Resolver 视图解析器:

    • 根据逻辑视图名解析实际的视图实现。
    • 常见的视图技术有JSP、Thymeleaf、FreeMarker等。
  7. 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的工作流程如下:

  1. DispatcherServlet接收请求。
  2. 使用HandlerMapping找到相应的处理器(即MyController)。
  3. DispatcherServlet使用适当的HandlerAdapter(如RequestMappingHandlerAdapter)来调用处理器。
  4. RequestMappingHandlerAdapterMyController的请求处理方法适配为通用的处理方式,返回视图名。

通过适配器模式,Spring MVC能够统一处理不同类型的控制器,使得框架更加灵活和可扩展。

工作流程

执行时序图
在这里插入图片描述

  1. 客户端发送HTTP请求。
  2. DispatcherServlet接收请求。
  3. DispatcherServlet通过Handler Mapping找到适当的Controller。
  4. Controller处理请求,操作Model,生成ModelAndView对象。
  5. DispatcherServlet通过View Resolver解析逻辑视图名,找到实际的View实现。
  6. 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 xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://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.xsd"><mvc:annotation-driven /><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/" /><property name="suffix" value=".jsp" /></bean><bean class="com.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.xml

HelloServlet.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 contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Hello</title>
</head>
<body><h1>${message}</h1>
</body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"version="2.5"><servlet><servlet-name>HelloServlet</servlet-name><servlet-class>com.example.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping>
</web-app>

工作流程

  1. 客户端发送请求:用户在浏览器中输入http://localhost:8080/your-app-context/hello?name=John
  2. Servlet接收请求HelloServletdoGet方法处理这个请求。
  3. 参数处理:Servlet从请求中获取参数name,如果没有传递参数,默认值为"World"。
  4. 设置请求属性:Servlet将生成的消息作为请求属性message存储。
  5. 请求转发:Servlet使用RequestDispatcher将请求转发到hello.jsp
  6. 视图生成hello.jsp使用请求属性message生成响应内容并返回给客户端。

解释

  1. Servlet:代替了Spring MVC的Controller,用于处理HTTP请求。
  2. RequestDispatcher:用于将请求转发到JSP页面,类似于Spring MVC中的View Resolver。
  3. JSP:负责生成最终的HTML响应,类似于Spring MVC中的视图。

这种方法没有Spring MVC那样的模块化和灵活性,但它展示了在没有Spring MVC框架支持下,如何使用Servlet和JSP技术处理请求和生成视图。

http://www.15wanjia.com/news/8299.html

相关文章:

  • 高端网站官网企业网站设计论文
  • 成都企业网站建设 四川冠辰科技个人主页网页设计
  • 北京自己怎样做网站如何修改百度上面的门店号码
  • 社区类网站开发廊坊seo推广公司
  • 新安县做网站成人英语培训
  • 做网站域名还重要吗产品推广策划方案怎么做
  • 电子商务网站开发形式选择有没有自动排名的软件
  • 网站开发设计选题背景经典软文
  • 如何做百度站长绑定网站营销方式有哪几种
  • 加强政务公开与网站建设网站建设公司排名
  • 成都网站建设服务公司武汉seo首页
  • 南京高端网站建设工作室b站推广软件
  • 广州番禺网站公司竞价排名什么意思
  • 如何做微信个人网站白帽seo是什么
  • 河北建设网上办事大厅系统优化大师免费版
  • 大型综合门户网站开发网络营销企业是什么
  • 网站开发demo是什么百中搜优化软件
  • 做网站招标黄页88网官网
  • html网页制作内容浙江seo
  • 企业网站 价格网站推广优化外包公司哪家好
  • 怎么才能建立网站电商代运营公司排名
  • 珠海门户网站建设公司电商网站前端页面内容编写
  • 交互式网站有哪些功能seo免费自学的网站
  • 长春美容网站建设永久免费进销存管理软件手机版
  • 优秀企业网站如何推广引流
  • 网站历史记录怎么恢复免费建站有哪些
  • 微信公众平台推广方案seo关键词推广渠道
  • adobe business catalyst wordpress关键词优化公司如何选择
  • 视频号分销解决方案seo方案怎么做
  • 都哪些网站可以做gif百度投放