IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> Spring MVC的环境搭建 -> 正文阅读

[PHP知识库]Spring MVC的环境搭建

mvc设计模式
MVC 设计不仅限于 Java Web 应用,还包括许多应用,比如前端、PHP、.NET 等语言。之所以那么做的
根本原因在于各个模块的解耦。
MVC 是 Model、View 和 Controller 的缩写,分别代表 Web 应用程序中的 3 种职责。
模型:用于存储数据以及处理用户请求的业务逻辑。
视图:向控制器提交数据,显示模型中的数据。
控制器:根据视图提出的请求判断将请求和数据交给哪个模型处理,将处理后的有关结果交给哪个
视图更新显示。
Spring MVC
Spring MVC 实现了即用的 MVC 的核心概念。它为控制器和处理程序提供了大量与此模式相关的功能。
并且当向 MVC 添加反转控制(Inversion of Control,IoC)时,它使应用程序高度解耦,提供了通过简
单的配置更改即可动态更改组件的灵活性。
Spring MVC 框架是高度可配置的,包含多种视图技术,例如 JSP 、Velocity、themlefy等。Spring
MVC 框架并不关心使用的视图技术,也不会强迫开发者只使用 JSP 技术,但教程中使用的视图是 JSP。
本节主要介绍 Spring MVC 框架处理用户请求的完整流程和处理中包含的 4 个接口。
Spring MVC初学重点掌握的4个接口

  1. DispatcherServlet
    Spring MVC 所有的请求都经过 DispatcherServlet 来统一分发,在 DispatcherServlet 将请求分发
    给Controller之前需要借助 Spring MVC 提供的 HandlerMapping 定位到具体的 Controller。
  2. HandlerMapping
    HandlerMapping 接口负责完成客户请求到 Controller 映射。
  3. Controller
    Controller接口将处理用户请求,这和 Java Servlet 扮演的角色是一致的。一旦 Controller 处理完
    用户请求,将返ModelAndView 对象给 DispatcherServlet 前端控制器,ModelAndView 中包含了
    模型(Model)和视图(View)。从宏观角度看DispatcherServlet是整个 Web 应用的控制器;从
    微观考虑,Controller 是单个 Http 请求处理过程中的控制器,而 ModelAndView 是 Http 请求过
    程中返回的模型(Model)和视图(View)。
  4. ViewResolver
    ViewResolver 接口(视图解析器)在 Web 应用中负责查找 View 对象,从而将相应结果渲染给用
    户。
    Spring MVC 的工作流程如下:
    在这里插入图片描述
  5. 用户发送请求至前端控制器DispatcherServlet。
  6. DispatcherServlet收到请求,调用HandlerMapping处理器映射器。
  7. 处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器一并返回给DispatcherServlet。
  8. DispatcherServlet调用HandlerAdapter适配器。
  9. HandlerAdapter经过适配调用具体的处理器(一般是开发人员编写的Controller)。
  10. Controller执行完成返回ModelAndView。
  11. HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet。
  12. DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
  13. ViewReslover解析后返回具体View。
  14. DispatcherServlet根据View进行渲染视图。
  15. DispatcherServlet响应用户。
    DispatcherServlet也是整个Spring MVC的核心,它负责接收HTTP请求组织协调Spring MVC的各个组成
    部分。
    Spring MVC环境搭建:
    1、 创建JavaWeb应用
    2、 引入Jar包
    在web/WEB-INF 目录下新建 lib 目录,导入Spring的Jar包(建议先排除 spring-webflux_5.2.9.RELEASE.jar):然后把lib目录通过右键菜单的 ”Add as Library“添加为项目的Library
    在这里插入图片描述
    在这里插入图片描述
    3、 创建Spring MVC的配置文件springMVC-servlet.xml
    在src目录下创建Spring MVC的配置文件 springMVC-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc.xsd ">
       <!--添加了MVC命名空间后 必须!!!!!添加mvc:annotation-driven-->
       <mvc:annotation-driven/>
       <!--配置扫描路径-->
       <context:component-scan base-package="com.wjg.controller,com.wjg.exception"/>
       <!--配置视图解析器 jsp-->
       <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
       <!--配置视图路径的前缀 WEB-INF下的一切都是受保护的,浏览器无法访问-->
       <property name="prefix" value="/WEB-INF/jsp/"/>
       <!--后缀 -->
       <property name="suffix" value=".jsp"/>
       </bean>
     </beans>

4、 在web.xml中配置Spring MVC

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>SpringMvc</servlet-name>
        <!--核心-->  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--Servlet的初始参数 SpringMVC中用于指定要加载的配置文件如果不知道,默认加载/WEB-INF/springMVC-servlet.xml-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <!-- classpath默认指向src目录  指定目录文件-->
            <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param>
        <!--在JavaWeb项目启动时加载-->
        <!-- 加载顺序为第一位-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>SpringMvc</servlet-name>
        <!--匹配所有路径请求-->
        <url-pattern>/</url-pattern>
    </servlet-mapping>

5、 编写Controller

@Controller //向Spring容器注册控制器
@RequestMapping("/indexController")
public class indexcontroller {
  //处理请求路径地址映射的注解
  @RequestMapping("/login")
  public String login(Model model){
      model.addAttribute("msg","登录");
      //根据配置的视图解析器  prefix+返回值+suffix
      // 指向 /WEB-INF/jsp/login.jsp
      return "login";
    }
}

6、 在web/WEB-INF/jsp 目录下添加login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
 <head>
    <title>login</title>
</head>
<body>
  login msg:${msg}
</body>
</head>

往index.jap添加请求路径

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" scope="page" />
<html>
<head>
    <title>Title</title>
</head>
<body>
<%-- ${ctx}为jstl标签代表localhost:8080/springMVC项目根目录路径
 indexController对应的控制器,login对应的方法--%>
        <a href="${ctx}/indexController/login">login(跳转)</a>
</html>
</body>

7、 点击跳转a标签后 测试结果
在这里插入图片描述

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-10 10:38:00  更:2021-09-10 10:39:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:01:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码