SpringMVC学习(1)第一个SpringMVC程序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SDDDLLL/article/details/87630495

新年的第一篇博客,本来打算前一段时间写,由于学习了新的内容,整理起来费时间所以到现在集中整理一下,加深印象。这篇博客主要是第一个SpringMVC程序2,在这里不牵扯到MyBatis的内容,只是和界面有关,在后续的博客当中会一步一步整合。先看一下Springmvc在Spring中的位置。

从上面可以看到Spring其实是包括SpringMVC的,springMVC只是其中的视图层。

下面直接看例子,看看SpringMVC是如何使用的。首先看一下项目目录结构

一、导入jar包(或maven添加依赖)

在这里是在Spring的基础之上导入两个新的jar。

  • Spring-context-support:包含支持UI模板、邮件服务、缓存Cache等方面的类
  • Spring-webmvc:对SpringMVC的支持。

二、在web.xml注册中央调度器

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

	<!-- 注册中央调度器 -->
	<servlet>
		<servlet-name>springMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- 指定springmvc配置文件的位置以及文件名 -->
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:springmvc.xml</param-value>
		</init-param>
		<!-- 表示Tomcat服务区在启动时候直接创建Servlet -->
		<load-on-startup>1</load-on-startup>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>springMVC</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
	
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

下面解释说明这里面的配置

  1. servlet-class:全限定类名,这个中央调度器其实就是一个servlet。名称是DispatcherServlet
  2. init-param:在这里是springmvc的配置文件的位置以及文件名,默认会通过类路径(src下面开始寻找。)
  3. load-on-startup:他的作用是:是否在web服务器启动的时候创建这个servlet实例,也就是是否在Tomcat服务器启动的时候执行该servlet的init方法,他的值必须是一个整数。(1)当值大于等于0时:表示在Tomcat启动时就加载,数值越小,表示优先级越大。(2)当值小于0或者是没有指定时,表示这个servlet在真正使用到的时候才会去创建。
  4. url-pattern:指定路径。路径问题下面会详解,在这里先写成*.do。

三、定义处理器controller

package com.fdd.handlers;

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

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

public class MyController implements Controller{

	public ModelAndView handleRequest(HttpServletRequest arg0,
			HttpServletResponse arg1) throws Exception {
		ModelAndView mv=new ModelAndView();
		mv.addObject("message", "hello world");
		//mv.setViewName("/WEB-INF/jsp/welcome.jsp");
		mv.setViewName("welcome");
		return mv;
	}

}

四、注册处理器

在这里我们的处理器对应的就是my.do的请求。在这里视图解析器添加了前缀和后缀,如果在这里不指定,那么在MyController.java中就需要指定mv.setViewName("/WEB-INF/jsp/welcome.jsp");

此时执行顺序是这个样。前端浏览器请求my.do页面,那么就会先去web.xml的中央调度器,在中央调度器启动springmvc.xml配置文件,在springmvc配置文件中发现Mycontroller能处理这个请求,那么就会由Mycontroller去处理。

<?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:aop="http://www.springframework.org/schema/aop" 
	xmlns:tx="http://www.springframework.org/schema/tx"
	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/tx 
        http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop.xsd">

	<!-- 注册视图解析器  -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/jsp/"/>
		<property name="suffix" value=".jsp"/>
	</bean>

	<!-- 注册处理器 -->
	<bean id="/my.do" class="com.fdd.handlers.MyController"/>
	
</beans>

五、定义目标页面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>welcome</title>	
  </head>
  
  <body>
    ${message }<br>
  </body>
</html>

六、结果

七、分析执行流程

猜你喜欢

转载自blog.csdn.net/SDDDLLL/article/details/87630495