SpringMVC学习1 - JavaWeb - 流程图、配置、第一个SpringMVC网页


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TToW8q4g-1587881744594)(en-resource://database/17964:1)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e5ZAFZRx-1587881744608)(en-resource://database/25576:1)]

1. 了解

SpringMVC是Spring框架的一个模块,所以本来就是Spring的东西,根本不需要整合

优点
提供大量能减少代码量的注解
支持restful
支持视图模板语言:Jsp、freemark、thymeleaf

缩略流程图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LR4msH5y-1587881744620)(en-resource://database/14518:1)]


详细流程图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X5d9rFJi-1587881744629)(en-resource://database/14629:1)]

SpringMVC具体类的作用
DispatcherServlet:内部、外部请求都先交给这个进行处理 - 中间人的作用
HandlerMapping:记录请求对应的具体Servlet - 想象成路由器里面的路由表的作用
Handler:其实就是有处理请求功能的Servlet
View resolver:将资源的逻辑路径 -- 转成真正的路径
View:等价于jsp吧,将数据渲染到jsp上

2. web.xml的配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8WHxG1y8-1587881744635)(en-resource://database/14520:1)]


  web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
	id="WebApp_ID" version="3.1">
	<display-name>SpringMVC学习</display-name>

	<!-- 加载到时Spring容器管理的<bean>对象 - 面向切面编程 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext.xml</param-value>
	</context-param>
	
	<!-- SapringMVC的监听器 - 其实就是一个ServletCotnextListener全局监听器 - 用于监听applicationContext的bean对象 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<!-- 由这里可以知道SpringMVC的Controller中心控制器就是个Servelt,并且里面含有具体处理请求的SpringMVC包含的Servlet -->
	<servlet>
		<servlet-name>dispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:springMVC.xml</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>dispatcherServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	<!-- 由这里可以知道SpringMVC的Controller中心控制器就是个Servelt,并且里面含有具体处理请求的SpringMVC包含的Servlet -->
	<servlet>
		<servlet-name>dispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:springMVC.xml</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>dispatcherServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	
	
	<!-- 使用Spring自带的字符过滤器 -->
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>utf-8</param-value>
		</init-param>
	</filter>	
	<!-- 让这个字符过滤器处理所有的请求 - 编码都是utf-8 -->
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>

3. 访问第一个页面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u7R4syQi-1587881744640)(en-resource://database/14628:1)]

3.1 springMVC.xml配置的形式

  springMVC.xml

<bean name="/test1"  class="top.linruchang.controller.Test1"></bean>

  Test1.java

public class Test1 implements  Controller{
    
    

	@Override
	public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {
    
    
		
        // 视图处理类
		ModelAndView mav = new ModelAndView();
        // 设置具体的视图是哪个 -- 重定向到first.jsp页面
		mav.setViewName("redirect:/first.jsp");
		return mav;
		
	}
	
}



运行效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B53hEqMx-1587881744645)(en-resource://database/14630:2)]

3.2 注解配置的形式 – 常用这个进行开发

步骤:

  1. 使用@Controller注解修饰处理类
  2. 使用@RequestMapping注解修饰处理类 – 用来处理某个请求的Servlet

  springMVC.xml

<!--扫描base-package包下的注解-->
<context:component-scan  base-package="top.linruchang.controller"></context:component-scan>

<!--使有关SpringMVC的注解生效-->
<mvc:annotation-driven></mvc:annotation-driven>

<!-- 上面的一句注解驱动等于下面两句,聪明的你知道该怎么选择
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
-->


  Test1.java

@Controller
public class Test1{
    
    

	@RequestMapping("/test1")
	public ModelAndView test1() {
    
    
		
		System.out.println("你哄啊");
		ModelAndView mav = new ModelAndView();
		mav.setViewName("redirect:/first.jsp");
		return mav;
	}
    
}



运行效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DPC5grxC-1587881744649)(en-resource://database/14630:2)]

Guess you like

Origin blog.csdn.net/weixin_39651356/article/details/105768118