当前位置:   article > 正文

springmvc实现controller接口_spring controller接口

spring controller接口

springmvc实现controller接口

前置配置

基础环境

  • springmvc 环境

  • jdk1.8

  • tomcat8.5

集成环境

  • idea
  • smart-tomcat (idea 中 tomcat插件)

实现controller接口

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("my");
        return modelAndView;
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

定义jsp页面

webapp/WEB-INF/customer 目录新建 my.jsp 文件

<%--
  Created by IntelliJ IDEA.
  User: -
  Date: 2023/2/20
  Time: 22:02
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>my.jsp 页面</h1>
</body>
</html>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

重要核心配置

springmvc核心配置文件

springmvc-config.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:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc
						http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
						http://www.springframework.org/schema/beans
						http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
						http://www.springframework.org/schema/context
          				http://www.springframework.org/schema/context/spring-context-4.0.xsd">

	<!-- 1.配置前端控制器放行静态资源(html/css/js等,否则静态资源将无法访问) -->
	<mvc:default-servlet-handler />

	<!-- 2.配置注解驱动,用于识别注解(比如@Controller) -->
	<mvc:annotation-driven></mvc:annotation-driven>

	<!-- 3.配置需要扫描的包:spring自动去扫描 base-package 下的类, 如果扫描到的类上有 @Controller、@Service、@Component等注解, 
		将会自动将类注册为bean @Controller public class HelloController{} -->
	<context:component-scan
		base-package="com.shaoming.controller">
	</context:component-scan>

	<!-- 4.配置内部资源视图解析器 prefix:配置路径前缀 suffix:配置文件后缀 /WEB-INF/pages/home.jsp -->
	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/customer/" />
		<property name="suffix" value=".jsp" />
	</bean>


	<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
	<bean id="multipartResolver"
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<!-- 默认编码 -->
		<property name="defaultEncoding" value="utf-8" />
		<!-- 文件大小最大值 -->
		<property name="maxUploadSize" value="10485760000" />
		<!-- 内存中的最大值 -->
		<property name="maxInMemorySize" value="40960" />
		<!-- 启用是为了推迟文件解析,以便捕获文件大小异常 -->
		<property name="resolveLazily" value="true" />
		<property name="uploadTempDir" value="fileUpload/temp" />
	</bean>

	<bean id="/hello.action" class="com.shaoming.controller.MyController"></bean>
</beans>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

测试访问

localhost:8080/mvc/hello.action

image-20230220220957563

核心源码

springmvc 核心 前端控制器 DispatcherServlet

DispatcherServlet --> doDispatch

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kj6GPGmi-1676902699688)(D:\my-note\typora-picture\image-20230220221332534.png)]

getHandle() 获取处理器

BeanNameUrlHandlerMapping

image-20230220221303619

获取处理器适配器

ha.handler(xx) 处理请求

image-20230220221553521

image-20230220221633819

最后跳转自己定义的controller实现类

image-20230220221659156

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/302673
推荐阅读
相关标签
  

闽ICP备14008679号