完整的项目案例: springmvc.zip

介绍

SpringMVC是一款Web MVC框架。 它跟Struts框架类似,是目前主流的Web MVC框架之一。

文章通过实例来介绍SpringMVC的入门知识。

目录

实例

maven依赖springmvc jar:

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.1.RELEASE</version>
</dependency>

项目结构路径:

一、配置web.XMl:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"> <!-- 配置请求总控器,由Spring-webmvc提供,它负责接收所有客户端的请求
,然后通过解析url并交给后端控制器(Controller)进行请求处理-->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- springmvc默认会从WEB-INF下查找名为
[servlet-name]-servlet.xml的配置文件,
也可以通过init-param重新指定配置文件的路径-->
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- 指定从classpath中查找 -->
<param-value>classpath:dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> </web-app>

二、配置dispatcher-servlet.xml

<?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:mvc="http://www.springframework.org/schema/mvc"
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/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 启用注解并扫描 -->
<context:component-scan base-package="edu.nf.ch01.controller"/>
<!-- 启用mvc注解驱动-->
<!-- 这个注解驱动注册了RequestMappingHandlerMapping(请求映射处理器)
和一个RequestMappingHandlerAdapter(请求映射适配器),同时启用了
@RequestBody,@ResponseBody注解以及表单验证的等功能-->
<mvc:annotation-driven/> <!-- 配置视图解析器,spring有很多种视图解析器,不同的解析器用于解析成不同的视图对象
其中有一个叫做InternalResourceViewResolver(内部资源解析器)
,用于解析内部的jsp资源-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 给这个视图解析器注入两个属性 -->
<!-- 指定资源目录的前缀 -->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!-- 指定资源的后缀-->
<property name="suffix" value=".jsp"/>
<!-- 这个解析器默认解析的视图对象为InternalResourceView,
如果需要在JSP中使用jstl标签库,那么可以设置为JstlView,
它是InternalResourceView的子类-->
<!--<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>-->
</bean>
</beans>

三、控制器Controller类:

package edu.nf.ch01.controller;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; /**
* @author wangl
* @date 2018/10/26
* 后端控制器
*/
@Controller
@Scope("prototype")
public class HelloController { /**
* 通过@RequestMapping来映射请求的url
* @return
*/
@RequestMapping("/hello")
public ModelAndView hello(){
System.out.println("hello spring");
ModelAndView mv = new ModelAndView("index");
return mv;
}
}

四、请求转发的页面

<%--
Created by IntelliJ IDEA.
User: wangl
Date: 2018/10/26
Time: 10:50
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>Welcome!</h1>
</body>
</html>

最新文章

  1. async.whilst 的一个简化版实现
  2. android穿越之旅--如何弹出一个非比寻常的窗体
  3. HTML结构文档中那些基础又重要又容易被忽略的事?
  4. 【液晶模块系列基础视频】3.2fatfs接口函数的使用2
  5. Python实现LR(逻辑回归)
  6. Ubuntu下Android编译环境的配置
  7. asp.net等项目编译失败的原因之不能写入
  8. Asp.Net Mvc后台数据验证自测小Demo
  9. 转:Raspberry Pi(树莓派)试用小记
  10. 使用CarrierWave上传图片时,多版本文件名的统一
  11. NYOJ 104 最大子矩阵(二维DP)
  12. Set下面HashSet,TreeSet和LinkedHashSet的区别
  13. Linux中的sed命令
  14. 托管C++线程锁实现
  15. Lambda表达式资料整理
  16. axd文件
  17. Android Lifecycle使用
  18. 分布式队列celery 异步----Django框架中的使用
  19. SSM集成activiti6.0错误集锦(二)
  20. Maxscale-在第一个节点的配置

热门文章

  1. UVa OJ 120
  2. 【web开发】docker中的数据库
  3. PHP中对象的本质
  4. 每个 Python 程序员都要知道的日志实践
  5. 微信小程序--帮助选择困难症者
  6. spring boot(三) 集成mybatis
  7. PPP中的PAP和CHAP的区别
  8. IdentityServer开题篇
  9. mysql双主+keepalived
  10. H5 video播放视频遇到的问题