码迷,mamicode.com
首页 > 编程语言 > 详细

初窥SpringMVC

时间:2018-10-04 09:37:53      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:val   pid   ESS   mod   isp   lan   容器管理   name   java   

初窥SpringMVC

SpringMVC本质上就是一个Servlet

先忽略具体细节,大体分析一下其结构

springMVC如何创建出来的(轮子怎么造出来的)以及它是如何干活的(轮子怎么用的)?

1.1环境搭建

maven依赖

<dependcy>

  <groupId>javax.servlet</groupId>

  <artifactId>javax.servlet-api</artifactId>

  <version>3.1.0</version>

</dependcy>

<dependcy>

  <groupId>org.springframework</groupId>

  <artifactId>spring-webmvc</artifactId>

  <version>4.1.5</version>

</dependcy>

也可直接下载jar包放入WEB-INF/lib目录,最小依赖包有:

aopalliance-1.0.jar

commons-logging-1.2.jar

spring-aop-4.1.5.RELEASE.jar

spring-beans-4.1.5.RELEASE.jar

spring-context-4.1.5.RELEASE.jar

spring-core-4.1.5.RELEASE.jar

spring-expression-4.1.5.RELEASE.jar

spring-web-4.1.5.RELEASE.jar

spring-webmvc-4.1.5.RELEASE.jar

最简单配置:

1)在web.xml中配置Servlet

<servlet>

  <servlet-name>hello</servlet-name>

  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

  <load-on-up>1</load-on-up>

<servlet>

<servlet-mapping>

  <servlet-name>hello</servlet-name>

  <url-pattern>/</url-pattern>

</servlet-mapping>

以上配置了一个名为hello的Servlet,自动启动并映射到所有请求(配置的类型是DispatcherServlet,即springmvc的入口)可以设置contextConfigLocation参数制定springmvc的配置文件位置,默认使用WEB-INF/【ServletName】-servlet.xml(本例中的WEB-INF/hello-servlet.xml)

2)创建SpringMVC的xml配置文件

在WEB-INF目录下新建hello-servlet.xml

<mvc:annotation-driver/><!--配置后springmvc会自动帮我们做一些如注册组件之类的事情-->

<context:component-scan basepackage="com.code"/><!--扫描通过注释配置的类-->

如果使用了spring,可以设置只扫描@Controller注释的类,别的注释交给spring容器管理,配置如下:

<connect:component-scan basepackage="com.code"  use-default-filters="false">

  <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>

<context:component-scan>

3)创建Controller和view

以上已经完成了环境的搭建,在写个Controller和view即可运行。

在com.code.controller包下建一个类MyController

 1 package com.code.controller;
 2 
 3 
 4 
 5 import org.apache.commons.logging.Log;
 6 
 7 import org.apache.commons.logging.LogFactory;
 8 
 9 import org.springframework.stereotype.Controller;
10 
11 import org.springframework.ui.Model;
12 
13 import org.springframework.web.bind.annotation.RequestMapping;
14 
15 import org.springframework.web.bind.annotation.RequestMethod;
16 
17 
18 
19 @Controller
20 
21 public class MyController {
22 
23     private final Log logger = LogFactory.getLog(MyController.class);
24 
25     //处理HEAD类型的”/”请求
26 
27     @RequestMapping(value={"/"},method= {RequestMethod.HEAD})
28 
29     public String head() {
30 
31         return "hello.jsp";
32 
33     }
34 
35     //处理GET类型的"/index"和”/”请求
36 
37     @RequestMapping(value={"/index","/"},method= {RequestMethod.GET})
38 
39     public String index(Model model) throws Exception {
40 
41         logger.info("======processed by index=======");
42 
43         //返回msg参数
44 
45         model.addAttribute("msg", "hello springmvc");
46 
47         return "hello.jsp";
48 
49     }
50 
51 }

 

 

 简单的view视图:hello.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

    <title> hello springmvc</title>

</head>

<body>

${msg}

</body>

</html>

编译部署到tomcat即可

 

初窥SpringMVC

标签:val   pid   ESS   mod   isp   lan   容器管理   name   java   

原文地址:https://www.cnblogs.com/code2038/p/9740087.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!