标签:val pid ESS mod isp lan 容器管理 name java
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即可
标签:val pid ESS mod isp lan 容器管理 name java
原文地址:https://www.cnblogs.com/code2038/p/9740087.html