SpringMVC基础学习之页面跳转方式的简单使用

2023-05-16

前言

小伙伴们,大家好,我是狂奔の蜗牛rz,当然你们可以叫我蜗牛君,我是一个学习Java半年多时间的小菜鸟,同时还有一个伟大的梦想,那就是有朝一日,成为一个优秀的Java架构师。

这个SpringMVC基础学习系列是用来记录我学习SpringMVC框架基础知识的全过程 (这个系列是参照B站狂神的SpringMVC最新教程来写的,由于是之前整理的,但当时没有发布出来,所以有些地方可能有错误,希望大家能够及时指正!)


之后我将尽量以两天一更的速度更新这个系列,还没有学习SpringMVC框架的小伙伴可以参照我的博客学习一下;当然学习过的小伙伴,也可以顺便跟我一起复习一下基础。最后,希望能够和大家一同进步吧,加油吧,编程人!

特别提醒:如果对SpringMVC基础学习系列感兴趣,可以阅读本系列往期博客:
第一篇:SpringMVC基础学习之简单回顾MVC架构和Servlet的使用
第二篇:SpringMVC基础学习之初识SpringMVC
第三篇:SpringMVC基础学习之初识
第四篇:SpringMVC基础学习之使用注解开发
第五篇:SpringMVC基础学习之Controller的两种实现方式和RequstMapping注解的使用
第六篇:SpringMVC基础学习之Restful风格的简单使用


今天我们来到了SpringMVC基础学习的第七站:页面跳转方式的简单使用 。废话不多说,让我们开始今天的学习内容吧。

7.页面跳转方式的简单使用

7.页面跳转方式的简单使用

7.1 了解页面跳转相关对象

7.1.1 什么是ModeldAndView对象?

ModelAndView:即模型和视图,主要用于设置ModelAndView对象,根据view的名称视图解析器,跳转到指定的页面,其页面格式为:[视图解析器前缀] + viewName + [视图解析器后缀]

7.1.2 ViewResolver对象基础概念

1.什么是ViewResolver对象?

ViewResolver (视图解析器):全称InternalResourceViewResolver (中心资源视图解析器),位于org.springframework.web.servlet.view包下,主要作用是解析ModelAndView (即模型和视图) 对象

2.ViewResolver对象的主要作用

  • ViewResovler (视图解析器) 被 DispatcherServlet (前端控制器) 调用,用来解析HandlerAdapter (处理器适配器)传递的逻辑视图名
  • ViewResovler (视图解析器) 将解析的逻辑视图名传递给DispatcherServlet (前端控制器)

3.ViewResovler对象的使用

3-1 在配置文件中引入ViewResovler对象
  • resources文件夹下的springmvc-servlet.xml配置文件中进行相关代码的编写
<!-- 配置internalResourceViewResolver(视图解析器)
     主要作用是解析DispatcherServlet(中心控制器)传递给它的ModelAndView-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
      id="internalResourceViewResolver">
    
    <!-- 前缀 -->
    <!-- 注意: 在视图解析器中我们吧所有的视图都放在/WEB-INF/目录下
               这样可以保证视图安全,因为这个目录下的文件,客户端不能直接访问 -->
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <!-- 后缀 -->
    <property name="suffix" value=".jsp"/>
    
</bean>
3-2 编写对应的Controller控制器类
package com.kuang.controller;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// 只要实现了Controller接口的类,说明这就是一个控制器了
public class HelloController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        
        // 获取ModelAndView(模型视图)对象
        ModelAndView mv = new ModelAndView();
        // 封装对象,放在ModelAndView对象中
        mv.addObject("msg","Hello,Controller!");
        // 视图跳转,存入ModelAndView对象中
        mv.setViewName("user/hello");
        // 返回视图模型对象给视图解析器
        return mv;
    }
    
}

7.2 Servlet API的简单使用

7.2.1 Servlet API的使用前提和步骤

1.Servlet API的使用前提

1-1 编写web.xml配置文件
  • web.xml配置文件中引入dispatcherServlet对象Servlet映射关系
<?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">
    
    <!-- 配置DispatcherServlet: 表示前置控制器, 其主要作用: 它是SpringMVC的核心, 相当于请求分发器 -->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- DispatcherServlet要绑定Spring的配置文件 -->
        <init-param>
            <!-- 设置配置文件的位置名称 -->
            <param-name>contextConfigLocation</param-name>
            <!-- 设置配置文件的路径(注意: "classpath*:"会去所有的包中找, 建议使用"classpath:" -->
            <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param>
        <!-- 启动级别 -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <!-- 在SpringMVC中,/ 和 /* 作用不相同:
         /: 匹配所有的请求,不会去匹配jsp; /*:匹配所有的请求,包括jsp页面
        (一般推荐使用 /,避免出现404错误:URL访问失败问题) -->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
</web-app>
1-2 编写spring-servlet.xml配置文件
  • spring-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: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/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">
    
    <!-- 自动扫描包,让指定包下的注解生效,由IOC容器统一管理 -->
    <context:component-scan base-package="com.kuang.controller"/>
    
    <!-- 让SpringMVC不处理静态资源: .css .js .html .mp3 .mp4 -->
    <mvc:default-servlet-handler/>
    
    <!-- 设置支持mvc注解驱动 (注意: 在Spring中一般采用@RequstMapping注解来完成映射关系)
         要想让@RequstMapping注解生效, 必须向上下文注册DefaultAnnotationHandlerMapping和一个AnnotationMethodHandlerAdapter实例;
         这两个实例分别在类级别和方法级别处理, 而annotation-driven配置帮助我们自动完成上述两个实例的注入
      -->
    <mvc:annotation-driven/>
    
    <!-- 视图解析器: 主要用于解析DispatcherServlet传递的ModelAndView对象 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          id="internalResourceViewResolver">
        <!-- 前缀 -->
        <!-- 在视图解析器中我们吧所有的视图都放在/WEB-INF/目录下:
             这样可以保证视图安全,因为这个目录下的文件,客户端不能直接访问 -->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <!-- 后缀 -->
        <property name="suffix" value=".jsp"/>
    </bean>
    
</beans>

2.Servlet API的使用步骤

通过设置ServletAPI不需要视图解析器

  • 通过HttpServletResponse进行输出
  • 通过HttpServletResponse实现重定向
  • 通过HttpServletResponse实现转发

7.2.2 ServletAPI的代码实现

1. 通过HttpServletResponse进行输出

package com.kuang.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// 使用@Controller注解, 将该类注册为Controller层,交由Spring的IOC容器统一管理
@Controller
public class HelloController2 {
    
    /**
	 * 使用@RequestMapping注解, 设置映射请求的路径
	 * 真实访问路径为: http://localhost:8080/hello2/h1
      */
    @RequestMapping("/hello2/h1")
    public void hello1(HttpServletRequest request, HttpServletResponse response) throws IOException {
        // 通过response对象进行输出
        response.getWriter().println("Hello,Spring By Servlet API!");
    }
    
}

2. 通过HttpServletResponse实现重定向

package com.kuang.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// 使用@Controller注解, 将该类注册为Controller层,交由Spring的IOC容器统一管理

@Controller
public class HelloController2 {   

    /**
	 * 使用@RequestMapping注解, 设置映射请求的路径
	 * 真实访问路径为: http://localhost:8080/hello2/h2
      */
    @RequestMapping("/hello2/h2")
    public void hello2(HttpServletRequest request, HttpServletResponse response) throws IOException {
        // 通过response对象进行重定向
        response.sendRedirect("/index.jsp");
    }
    
}

3. 通过HttpServletResponse实现转发

package com.kuang.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// 使用@Controller注解, 将该类注册为Controller层,交由Spring的IOC容器统一管理
@Controller
public class HelloController2 {     
    
    /**
	 * 使用@RequestMapping注解, 设置映射请求的路径
	 * 真实访问路径为: http://localhost:8080/hello2/h3
      */
    @RequestMapping("/hello2/h3")
    public void hello3(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        
        // 设置属性msg与值
        request.setAttribute("msg","Hello.SpringMVC");
        // 通过request对象进行转发
        request.getRequestDispatcher("/WEB-INF/jsp/hello.jsp").forward(request,response);
    }
    
}

7.2.3 测试结果

1. 通过HttpServletResponse进行输出

在这里插入图片描述

结果输出成功,显示“Hello,Spring By Servelt API”的信息!

2.通过HttpServletResponse实现重定向

  • 重定向前

在这里插入图片描述

  • 重定向后

在这里插入图片描述

结果重定向成功,访问到默认的index.jsp页面!

3. 通过HttpServletResponse实现转发

在这里插入图片描述

结果转发请求成功,页面显示”Hello,SpringMVC“的信息!

7.2.4 Servlet的Httpsession对象的使用

1. 编写HelloController3控制类

package com.kuang.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

// 使用@Controller注解, 将该类注册为Controller层,交由Spring的IOC容器统一管理
@Controller
public class HelloController3 {
    
    // 使用@RequestMapping注解, 设置映射请求路径
    @RequestMapping("/hello3/h1")
    public String hello(HttpServletRequest request, HttpServletResponse response) {
        // 获取HttpSession对象
        HttpSession session = request.getSession();
        // 打印session对象的Id
        System.out.println(session.getId());
        // 返回给视图解析器进行解析处理(注意: 这里的hello是指要返回给视图解析器的视图逻辑名)
        return "hello"; 
    }
    
}

2. 测试结果

  • 访问请求页面

在这里插入图片描述

  • 查看控制台输出

在这里插入图片描述

结果成功访问/hello3/h1页面,并且打印出HttpSession对象的Id信息

7.3 SpringMVC实现转发和重定向

7.3.1 无视图解析器

通过SpringMVC来实现转发重定向无需视图解析器

注意测试前,要将视图解析器注释掉!

1.修改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:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
    
    <!-- 自动扫描包,让指定包下的注解生效,由IOC容器统一管理 -->
    <context:component-scan base-package="com.kuang.controller"/>
    
</beans>

2.编写SpringmvcController控制类

2-1 实现转发方式一
package com.kuang.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

// 使用@Controller注解, 将该类注册为Controller层,交由Spring的IOC容器统一管理
@Controller
public class SpringmvcController {
    
    /** 
     * 使用@RequestMapping注解, 设置映射请求路径
     * 真实访问地址为: http://localhost:8080/hello4/h1
     */
    @RequestMapping("/hello4/h1")
    public String hello() {
        // 转发一
        return "/index.jsp";
    }
    
}
2-2 实现转发方式二
package com.kuang.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

// 使用@Controller注解, 将该类注册为Controller层,交由Spring的IOC容器统一管理
@Controller
public class SpringmvcController {
    
    /** 
     * 使用@RequestMapping注解, 设置映射请求路径
     * 真实访问地址为: http://localhost:8080/hello4/h2
     */
    @RequestMapping("/hello4/h2")
    public String hell2(Model model) {
        // 转发二
        model.addAttribute("msg","Hello,SpringMVC!");
        return "forward:/WEB-INF/jsp/hello.jsp";
    }
    
}
2-3 实现重定向
package com.kuang.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

// 使用@Controller注解, 将该类注册为Controller层,交由Spring的IOC容器统一管理
@Controller
public class SpringmvcController {
    
    /** 
     * 使用@RequestMapping注解, 设置映射请求路径
     * 真实访问地址为: http://localhost:8080/hello4/h3
     */
    @RequestMapping("/hello4/h3")
    public String hello3() {
        // 重定向
        return "redirect:/index.jsp";
    }
    
}

3.测试结果

2-1 实现转发方式一
  • 默认URL链接后加上 /hello4/h1,即真实访问地址为:http://localhost:8080/hello4/h1

在这里插入图片描述

结果成功转发到index.jsp页面

2-2 实现转发方式二
  • 默认URL链接后加上==/hello4/h2==,即真实访问地址为:==http://localhost:8080/hello4/h2 ==

在这里插入图片描述

结果成功转发到hello.jsp页面,并且显示“Hello,SpringMVC!”的信息!

2-3 实现重定向

默认URL链接后加上==/hello4/h3==,即真实访问地址为:http://localhost:8080/hello4/h3

  • 重定向前

在这里插入图片描述

  • 重定向后

在这里插入图片描述

结果成功重定向到index.jsp页面

7.3.2 使用视图解析器

通过SpringMVC来实现转发重定向,使用视图解析器

注意重定向不需要视图解析器,可以重定向到另一个请求实现

1.修改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: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/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">
    
    <!-- 自动扫描包,让指定包下的注解生效,由IOC容器统一管理 -->
    <context:component-scan base-package="com.kuang.controller"/>
    
    <!-- 让SpringMVC不处理静态资源: .css .js .html .mp3 .mp4 -->
    <mvc:default-servlet-handler/>
    
    <!-- 设置支持mvc注解驱动 (注意: 在Spring中一般采用@RequstMapping注解来完成映射关系)
         要想让@RequstMapping注解生效, 必须向上下文注册DefaultAnnotationHandlerMapping和一个AnnotationMethodHandlerAdapter实例;
         这两个实例分别在类级别和方法级别处理, 而annotation-driven配置帮助我们自动完成上述两个实例的注入
      -->
    <mvc:annotation-driven/>
    
    <!-- 视图解析器: 主要用于解析DispatcherServlet传递的ModelAndView对象 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          id="internalResourceViewResolver">
        <!-- 前缀 -->
        <!-- 在视图解析器中我们吧所有的视图都放在/WEB-INF/目录下:
             这样可以保证视图安全,因为这个目录下的文件,客户端不能直接访问 -->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <!-- 后缀 -->
        <property name="suffix" value=".jsp"/>
    </bean>
    
</beans>

2.编写SpringmvcController控制类

2-1 实现转发
package com.kuang.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

// 使用@Controller注解, 将该类注册为Controller层,交由Spring的IOC容器统一管理
@Controller
public class SpringmvcController2 {

    /** 
     * 使用@RequestMapping注解, 设置映射请求路径
     * 真实访问地址为: http://localhost:8080/hello4/h3
     */
    @RequestMapping("/hello5/h1")
    public String hello(Model model) {
        model.addAttribute("msg","Hello,Spring");
        //转发
        return "hello";
    }
    
}
2-2 实现重定向
  • 重定向不需要视图解析器,本质就是重新请求一个新地方,所以注意路径问题
package com.kuang.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

// 使用@Controller注解, 将该类注册为Controller层,交由Spring的IOC容器统一管理
@Controller
public class SpringmvcController2 {

    /** 
     * 使用@RequestMapping注解, 设置映射请求路径
     * 真实访问地址为: http://localhost:8080/hello5/h2
     */
    @RequestMapping("/hello5/h2")
    public String hello2() {
        //重定向:不需要视图解析
        // 本质就是重新请求一个新页面,所以要注意路径问题
        return "redirect:/index.jsp";
    }
}

3.测试结果

2-1 实现转发
  • 默认URL链接后加上 /hello5/h2,即真实访问地址为:http://localhost:8080/hello5/h2

在这里插入图片描述

结果成功转发到hello.jsp页面,并且显示“Hello,Spring”的信息!

2-2 实现重定向

默认URL链接后加上==/hello5/h2==,即真实访问地址为:http://localhost:8080/hello5/h2

  • 重定向前

在这里插入图片描述

  • 重定向后

在这里插入图片描述

结果成功重定向到index.jsp页面

7.3.3 使用总结

  • 使用forward转发和redirect重定向都不会走视图解析器,本质就是重新请求一个新位置
  • 重定向,不需要视图解析器,可以重定向到另一个请求实现,但要注其路径问题

好了,今天的有关 页面跳转方式的简单使用 的学习就到此结束啦。欢迎小伙伴们积极学习和讨论,喜欢的可以给蜗牛君点个关注,顺便来个一键三连。我们下期见,拜拜啦!


参考视频链接:【狂神说Java】SpringMVC最新教程IDEA版通俗易懂

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringMVC基础学习之页面跳转方式的简单使用 的相关文章

  • 【C++】STL-unodered_map

    文章目录 STL unodered map简介unordered map与map对比自定义key测试参考 STL unodered map 简介 unordered map 容器 xff0c 直译过来就是 34 无序 map 容器 34 的
  • Shell函数参数

    在shell中调用函数时 xff0c 可以向其传递参数 xff0c 其中常用的特殊变量如下表所示 xff1a 函数参数 含义 传递到脚本或函数的参数个数 n 1表示第一个参数 xff0c 2表示第二个参数 注意 xff0c 当n gt 61
  • Dockerfile

    Dockerfile Dockerfile是一种文本文件 xff0c 用于定义如何构建Docker镜像 它包含一系列的指令 xff0c 告诉Docker引擎如何在容器中构建和运行应用程序 Dockerfile指令分类 xff1a 基础镜像指
  • thonny中文版|python编辑

    由于人工智能的兴起 xff0c python语言成了最受欢迎的编程语言 xff0c 为此小编给广大新手用户带来了thonny编辑器 xff0c 这是一款相当优秀的python初学者专用编程学习工具 该软件基于python内置图形库tkint
  • 如何限制HTML中select标签option可见选项数目

    如何限制HTML中select标签option可见选项数目 在使用select标签的时候 xff0c 如果option选项太多 xff0c 会造成下拉列表变得很长 xff08 浏览器默认20条 xff09 如果想控制select中的opti
  • 如何解决win7休眠后自动唤醒的现象

    http jingyan baidu com article ca00d56c50e598e99eebcfea html
  • java实现x 的平方根

    class Solution public int mySqrt int x int left 61 1 int right 61 x int mid while left lt 61 right mid 61 left 43 right
  • 什么是字节对齐?字节对齐与位域的计算

    目录 1 什么是字节对齐 xff1f 为什么要字节对齐 xff1f 2 字节对齐的规则3 字节对齐的数值4 位域5 位域的填充 1 什么是字节对齐 xff1f 为什么要字节对齐 xff1f 字节对齐也称为字节填充 xff0c 它是一种牺牲空
  • Cordova打包流程(其中一种简单的方法)

    1 新建项目 cordova create carder 文件名字 com xtzn carder leader 项目名称 2 cd carder xff08 进入文件 xff09 3 运行 cordova platform add and
  • Could not found property service.vgroup_mapping.my_test_tx_group

    seat本地服务中的 file conf 和regeist conf 配置文件 与项目中的 file conf 和regeist conf 中对应的文件要一致 项目中的 regeist conf 本地服务中的 registry conf 上
  • 获取Windows 10上文件资源管理器的帮助

    Windows 10 no longer has built in help for File Explorer as Windows 7 does Microsoft makes you search the web for inform
  • 餐饮店实现扫码点餐、语音播报、自动打印厨房单结账单

    使用场景 xff1a 餐饮店在桌子上张贴二维码 小程序并引导消费者扫描点餐 xff0c 点餐后收银台会有声音提醒 xff1a 三号桌下单了 xff01 三号桌下单了 xff01 xff0c 服务员打开手机确认订单 xff0c 如果消费者需求
  • 关于electron报read ECONNRESET解决方案

    关于electron报read ECONNRESET解决方案 问题解决方法 问题 D APP gui gt npm install save dev electron npm ERR code 1 npm ERR path D APP gu
  • spring配置文件

    文章目录 1 Spring程序开发步骤2 Spring配置文件2 1 Bean标签基本配置2 2 Bean标签范围配置2 2 Bean生命周期配置2 3 Bean实例化三种方式2 4 Bean的依赖注入分析2 5 依赖注入概念2 6 Bea
  • SpringMVC学习【执行流程-搭建和使用】

    一 xff1a SpringMVC执行流程 1 一共有四大组件 中央管理器 处理器映射器 处理器适配器 视图解析器 2 描述流程 用户向服务端发送一次请求 xff0c 这个请求会先到中央控制器DispatcherServletDispatc
  • 多线程任务超时的处理机制

    使用Thread join long million 方法 xff0c 参数是毫秒 代码 amp 解析如下 xff1a 解析 xff1a 原本有t1和t2两个线程 xff0c 根据实例化new Task xff08 xff09 时t1传入了
  • django-apscheduler “Run time of job was missed“ solution

    在 Django 中使用 django apscheduler 实现定时任务 发现报错如下 Run span class token function time span of job span class token string 34
  • Freemarker异常:freemarker.template.TemplateNotFoundException: Template not found for name “xxx.ftl“.

    问题背景 在Spring Boot项目里整合Freemarker xff0c 目标是使用Freemarker模板文件生成代码 模板在在resources template里边明明有对应的xxx ftl文件 xff0c 但是却报错说没有找到该
  • Eclipse+IntelliJ IDEA如何设置中文

    一 Eclipse中文教程 1 进入 Eclipse Babel Project Downloads The Eclipse Foundation 查看最新的语言包存储库链接 xff0c 复制下来等会儿进入eclipse中需要使用 xff1
  • Linux系统运行等级切换(6和7系列)

    一 查看系统运行等级 运行等级介绍 运行级别 模式说明 简介 0 系统关机 系统默认运行级别不能设置为0 xff0c 不能将initdefault设置为0 1 单用户 root权限 xff0c 用于系统维护 xff0c 禁止远程登陆 xff

随机推荐

  • 在Ubuntu中安装选项卡式文件管理器

    One of the greatest mysteries to me is why most file managers don t have tabs it makes performing tasks so much simpler
  • linux查看防火墙状态及开启关闭命令(centos6版)

    存在以下两种方式 xff1a 一 service方式 查看防火墙状态 xff1a service iptables status 开启防火墙 xff1a service iptables start 关闭防火墙 xff1a service
  • IntelliJ IDEA中程序包org.slf4j 找不到的问题解决方案

    最近导入项目的时候遇到个莫名其妙的问题 xff0c 提示程序包org slf4j找不到 查了下maven xff0c slf4j和log4j都已经导入了 捣鼓了老半天终于发现问题了 xff1a 记得把slf4j log4j的包也一起导入进去
  • 头条一面:Spring IOC容器中只存放单例Bean吗?

    最近 xff0c 很多小伙伴出去面试 xff0c 感觉自己面的不是很理想 xff0c 回来后 xff0c 不少小伙伴把面试题做了记录发给我 xff0c 让我给大家解析下 xff0c 然后发出来 当我看到这些面试题时 xff0c 快速在脑海中
  • SpringBoot 启动类 @SpringBootApplication 注解

    64 SpringBootApplication是SpringBoot项目的核心注解 xff0c 目的是开启自动配置 annotation 以下是 64 SpringBootApplication源代码的一部分 xff1a 64 span
  • 【SAP-FI】承诺项目(Commitment item)详解

    定义 xff1a 承诺项目表示组织在财务管理区域 xff08 FM区域 xff09 内的功能分组 用途 xff1a 承诺项目将影响流动性的预算交易和商业交易分类为收入 xff0c 支出和现金余额项目 您可以将特定责任区域 xff08 资金中
  • ERROR 1054 (42S22): Unknown column ‘password‘ in ‘field list‘

    centos8安装mysql5 7修改密码时报错 xff1a ERROR 1054 42S22 Unknown column password in field list MySQL官网手册表示MySQL5 7版本后 xff0c passw
  • PS二寸证件照制作

    一 新建画布 文件 gt 新建 二寸证件照尺寸 xff1a 3 5 5 3 厘米 413 626 像素 分辨率为300 像素 英寸 一寸证件照尺寸 xff1a 2 5 3 5 厘米 295 413 像素 分辨率为300 像素 英寸 小二寸证
  • Eclipse安装教程(JDK安装+Eclipse+汉化)Windows系统

    文章目录 说明 xff1a 本教程截图是JDK13 43 eclipse2019 12的 xff0c 但是安装方法相同第一步 xff1a 下载并安装JDK1 下载JDK xff08 目前已更新到JDK14 xff0c 和JDK13安装方法相
  • arch linux 安装教程

    注意 本文章停更 xff0c 如果想看最新版本 xff0c 请移步Arch Linux安装教程 下一篇 xff1a archlinux系统配置 archlinux系统配置
  • archlinux 配置

    文章目录 上一篇 xff1a archlinux 系统安装下一篇 xff1a archlinux kde美化 上一篇 xff1a archlinux 系统安装 archlinux安装教程 此文章停止更新 xff0c 最新版请查看archli
  • 【Frobenius norm(弗罗贝尼乌斯-范数)(F-范数)】

    xff08 1 xff09 Frobenius 范数 xff08 F 范数 xff09 一种矩阵范数 xff0c 记为 xff1a 即矩阵中每项数的平方和的开方值 这个范数是针对矩阵而言的 xff0c 具体定义可以类比 向量的L2范数 可用
  • 谷歌pay 手续费_您可以使用Google Pay进行的所有操作

    谷歌pay 手续费 Google Pay has really grown over the last several months It stepped away from the Android specific branding an
  • RabbitMQ工作模式

    RabbitMQ工作模式 简述 xff1a RabbitMQ主要有五种工作模式 xff0c 分别是 xff1a 1 简单模式 xff08 Hello World xff09 2 工作队列模式 xff08 Work Queue xff09 3
  • AD布局时出现的自动推挤的使用

    AD布局时出现的自动推挤的使用 在使用AD进行器件布局发现拖动元件时会出现以下3中情况 xff1a 1 拖动器件时会直接挤走与之相近的器件 xff1b 2 拖动器件时碰到相邻方向有器件时无法越过对应阻碍其拖动的器件 xff1b 3 拖动器件
  • 多线程基础学习之线程安全和抢火车票问题

    前言 xff1a 在生活中 xff0c 每次出远门 xff0c 避免不了的就是要坐火车或者高铁 xff0c 那么抢票就是我们必须要经历的环节 xff0c 但你是否想过 xff0c 假如你和别人同时抢到一张票 xff0c 会发生什么 xff1
  • Git基础学习之Gitee的使用和设置SSH公钥

    前言 xff1a 今天给大家分享的学习内容是 xff1a Gitee的注册和使用 xff0c SSH公钥的设置 xff0c 以及如何搭建自己的远程仓库 学习前提 xff1a 安装和配置好本地Git xff0c 如果还没有安装好本地Git的小
  • Redis基础学习之NoSQL数据库四大分类

    前言 xff1a 在NoSQL数据库中 xff0c 主要有四大分类 xff0c 分别是KV键值对数据库 文档型数据库 列存储数据库和图形关系数据库 xff0c 那么它们各自的特点以及之间的区别是什么呢 xff1f 这就是今天我们所要学习的内
  • SpringBoot基础学习之整合SpringSercurity框架

    前言 xff1a 小伙伴们 xff0c 大家好 xff0c 我是狂奔 蜗牛rz xff0c 当然你们可以叫我蜗牛君 xff0c 我是一个学习Java半年多时间的小菜鸟 xff0c 同时还有一个伟大的梦想 xff0c 那就是有朝一日 xff0
  • SpringMVC基础学习之页面跳转方式的简单使用

    前言 xff1a 小伙伴们 xff0c 大家好 xff0c 我是狂奔 蜗牛rz xff0c 当然你们可以叫我蜗牛君 xff0c 我是一个学习Java半年多时间的小菜鸟 xff0c 同时还有一个伟大的梦想 xff0c 那就是有朝一日 xff0