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

13 篇文章 0 订阅

1. 了解

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

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

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


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

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

2. web.xml的配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uHPjVfvQ-1577643559313)(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-5QMiBMi9-1577643559320)(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-57V1sSQe-1577643559325)(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-3UwaZyfJ-1577643559327)(en-resource://database/14630:2)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值