Spring MVC 001_ 入门

目前我还是一个大三学生,在接触过Struts2后,觉得其配置繁琐,又在网上搜索了一下MVC框架,便发现了SpringMVC。

一开始接触还有点摸不请头脑,没办法,只有去看官方文档了。

官方文档中的描述非常的零碎,看了好久(因为文档全是英文的,我的英语水平不怎么样),才理出一个Hello Spring MVC.下面贴一下代码,和一个官方介绍图。

见图,如下

       MVC视图模型

      Spring MVC 001_ 入门_第1张图片


 这个图只要有点框架知识都能懂,就不在解释。

关于jar的支持,请去Spring官网下载最新的jar,把里面的jar包全都加进工程就好了(主要省的麻烦一个个添加jar)

下面开始贴入门代码吧

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
	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_3_0.xsd">

  <!-- 所有的请求全都被DispatcherServlet拦截,由它分发请求到每个Controller中
   -->
  <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
	<!--这里很奇怪,当把映射路径写成/*时,无法映射到请求,这算不算BUG??-->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
  
</web-app>

SpringMVC框架默认会根据上面的servlet-name在/WEB-INF目录下寻找一个叫[servlet-name]-serlvet.xml的文件【至于如何指定自己命名的XML,会在后续的学习中提到】,如上面的代码,那么,就应该在创建一个叫dispatcherServlet-servlet.xml的文件。文件内容如下,它的主要左右就是去寻找 客户端发出请求Request的Controller

<?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:p="http://www.springframework.org/schema/p"
 xmlns:context="http://www.springframework.org/schema/context"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  http://www.springframework.org/schema/context
  http://www.springframework.org/schema/context/spring-context-3.0.xsd">
 
 <!-- 扫描指定包下的class,找到有注解的Controller ,下面的包明使用了通配符,扫描com文件夹和com子文件夹中的class-->
 <context:component-scan base-package="com.*" />
  
  <!-- 视图分发器 -->
  <!--关于视图分发器,以后再介绍,今天只完成一个Hello Spring  -->
 <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
	  <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
	  <!-- 指定 你的视图在哪个文件夹下面,以便框架自动寻找 -->
	  <property name="prefix" value="/WEB-INF/jsp/" />
	  <!-- 指定视图的后缀,如.jsp -->
	  <property name="suffix" value=".jsp" />
 </bean>
</beans>

Controller

package com.test.study;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
//注解,表示这个class是个控制器
@Controller
public class Test001_HelloMVC {
	//指明该方法映射的请求路径 是什么
	@RequestMapping("/HelloMVC")
	public String sayHello(){
		//框架根据配置文件 自动寻找一个叫test001的逻辑视图,、
		//因为在dispatcherServlet-servlet.xml中配置的视图路径是/WEB-INF/jsp/
		//视图后缀为.jsp所以框架将会寻找/WEB-INF/jsp/目录下的test001.jsp返回给客户端显示
		return "test001";
		
	}
}

最后的View

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

    <title>My JSP 'test001.jsp' starting page</title>
    

  </head>
  
  <body>
    Hell Spring MVC!!!!<br>
  </body>
</html>

最后部署到Tomcat中,访问 http://localhost:8080/........./HelloMVC 就可以了(中间省略了项目名称)

总结:从以上可以看出,SpringMVC 比Struts2省略掉了很多配置文件,而且控制在方法级别更为的灵活


你可能感兴趣的:(spring,mvc,框架,struts,Class,encoding)