第一步:导入jar包

第二步:配置DispatcherServlet  前端控制器

  因为此处把DsipatcherServlet的映射路径配置成了"/",代表除了.jsp文件之外,所有的请求都会被DispatcherServlet拦截,但是我们并不希望静态资源被DispatcherServlet拦截,因此在后面Springmvc的配置文件中需要配置放行静态资源(html,css,js)。

  要处理中文乱码问题,还要配置一个CharacterEncodingFilter过滤器

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<servlet>
<!-- springMVC配置文件的命名规则为xxx-serlvet.xml,xxx代表servlet的名称,默认情况下,xxx-servlet.xml文件
放在WEB-INF目录下,不过可以通过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>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> <!-- 字符编码过滤器-->
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> </web-app>

第三步配置springMVC配置文件

(1)开启注解包扫描路径:Controller也就是处理器所在的包需要被SpringMVC容器扫描,不能被Spring容器扫描。pojo或者Service可以被Spring容器扫描   <context:component-scan base-package="com.caopeng.controller"></context:component-scan>

(2)开启SpringMVC中HandlerMapping与HandlerAdapter的注解

 <mvc:annotation-driven></mvc:annotation-driven>
上面的注解相当于配置下面两个类
org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter

(3) 放行静态资源

<mvc:resources location="/js/" mapping="/js/**"></mvc:resources>
<mvc:resources location="/css/" mapping="/css/**"></mvc:resources>
<mvc:resources location="/images/" mapping="/images/**"></mvc:resources>

/js/* 代表项目下的js文件夹下的所有的文件
/js/js** 代表项目下的js文件夹下的所有文件以及子文件夹下的所有文件
<mvc:resources location="/js/" mapping="/js/**"></mvc:resources>
上面的mapping代表的是请求的资源的请求路径,location请求的资源所在的服务器的路径
下面代表:只要发现 请求路径 符合/js/**格式,就到当前项目所在的本地服务器的/js/路径下去找资源

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
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-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd "> <!-- 开启扫描注解的包
当前的配置文件是被DispatcherServlet加载的
注意,此处的处理器所在的包要在springMVC的配置文件中进行扫描,不能在spring的配置文件中进行
扫描,因为处理器要注册到springMVC容器中,也就是controller所在的包需要被SpringMVC容器扫描,
不能被Spring容器所扫描
-->
<context:component-scan base-package="com.caopeng.controller"></context:component-scan>
<!-- 注解驱动 -->
<!--
上面的注解相当于下面两个类
org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
-->
<mvc:annotation-driven></mvc:annotation-driven>
<context:annotation-config />
<!-- 放行静态资源,不拦截静态资源 -->
<!-- /js/* 代表项目下的js文件夹下的所有的文件
/js/js** 代表项目下的js文件夹下的所有文件以及子文件夹下的所有文件
<mvc:resources location="/js/" mapping="/js/**"></mvc:resources>
上面的mapping代表的是请求的资源的请求路径,location请求的资源所在的服务器的路径
下面代表:只要发现 请求路径 符合/js/**格式,就到当前项目所在的本地服务器的/js/路径下去找资源 -->
<mvc:resources location="/js/" mapping="/js/**"></mvc:resources>
<mvc:resources location="/css/" mapping="/css/**"></mvc:resources>
<mvc:resources location="/images/" mapping="/images/**"></mvc:resources> <!-- 注册 视图解析器
有时候,我们为了保护页面不被别人访问,可以把页面放在WEB-INF中,
就可以把prefix配置成"/WEB-INF/"
【注意】视图解析器是解析处理器最后的return 的值,并非我们在前端自己输入的请求
如果return 的视图有前缀(forward或者redirect),视图解析器用默认的,如果没有前缀,则用我们自己配置的
-->
<bean id="viewResolver" class=" org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"></property>
<property name="suffix" value=""></property>
</bean>
</beans>

第四步:编写controller

返回值最好写全路径,全路径就是以"/"开头的路径,否则就是相对路径,
相对路径就是以相对当前方法的映射路径,例如如果返回值是"main.jsp",是相对路径,最后的绝对路径是
"demo/main.jsp"
@Controller
public class DemoController { @RequestMapping("/demo")
public String fun01(String name,int age) {//字符串的返回值代表代表要跳转的页面
System.out.println(name);
System.out.println(age);
System.out.println("指定了demo");
//返回值最好写全路径,全路径就是以"/"开头的路径,否则就是相对路径,
//相对路径就是以相对当前方法的映射路径,例如如果返回值是"main.jsp",是相对路径,最后的绝对路径是
//"demo/main.jsp"
return "/main.jsp";
}
}

springMVC学习三 注解开发环境搭建的更多相关文章

  1. Beaglebone Back学习三(开发环境搭建)

    开发环境搭建 1 Ubuntu环境搭建 2 Window环境搭建 3 开发板环境搭建 1 Ubuntu环境搭建 (1)安装必要的网络工具 samba nfs tftp vmware-tools sam ...

  2. Scala学习1————scala开发环境搭建(windows 10)

    Scala开发环境搭建 先讲几点我学习scala的目的或者原因吧: JVM在企业中的霸主地位,Scala也是JVM上的语言,很有可能未来会从Java过度到Scala也不是不可能. 先进的函数式编程和面 ...

  3. python学习之python开发环境搭建

    Python简介 Python是一种面向对象.解释型计算机程序设计语言.Python语法简洁而清晰,具有丰富和强大的类库等等众多的特性,这是来自百度百科的介绍,在百度百科还能看到它的更详细的介绍信息, ...

  4. 从零开始学习音视频编程技术(三) 开发环境搭建(Qt4.86手动设置环境,主要就是设置g++和qmake,比较透彻,附下载链接)

    1.先下载安装Qt 我们使用的版本是4.8. 可以自行百度下载也可以从下面的网盘地址下载: Qt库和编译器下载: 链接:http://pan.baidu.com/s/1hrUxLIG 密码:0181 ...

  5. 基于GTK+3 开发远程控制管理软件(C语言实现)系列三 Windows7开发环境搭建

    一.介绍与准备 考虑到目标客户端基本都是windows客户端,所以此次开发环境将搭建在windows7下,相关开发工具有Msys2 和 Eclipse For C/C++ Msys2 是msys的升级 ...

  6. Java Web开发SpringMVC和MyBatis框架开发环境搭建和简单有用

    1.下载SpringMVC框架架包,下载地址: 点击下载 点击打开地址如图所看到的.点击下载就可以 然后把相关的jar拷贝到lib下导入 2.MyBatis(3.4.2)下载 X-Amz-Algori ...

  7. Cocos2dx 学习笔记整理----开发环境搭建

    最近在学习cocos2dx,预备将学习过程整理成笔记. 需要的工具和环境整理一下: 使用的版本 cocos2dx目前已经出到了v3.1.1,学习和项目的话还是用2.2.3为宜,毕竟不大想做小白鼠,并且 ...

  8. PHP学习笔记(1) - 开发环境搭建

    运行环境:phpstudy 它基本包括运行php应用需要的一切,php. apache.mysql,一键傻瓜安装 装好之后只需要配置虚拟主机和修改host文件就可以支持多站点 下载: http://w ...

  9. angular2.0学习笔记1.开发环境搭建 (node.js和npm的安装)

    开发环境, 1.安装Node.js®和npm, node 6.9.x 和 npm 3.x.x 以上的版本. 更老的版本可能会出现错误,更新的版本则没问题. 控制台窗口中运行命令 node -v 和 n ...

随机推荐

  1. VM虚拟机的配置文件(.vmx)损坏

    为了禁用时间同步,使用sublime修改vmx文件 文件第一行为.encoding = "GBK" 修改完毕,无法打开虚拟机,报 VM虚拟机的配置文件(.vmx)损坏错误 因为su ...

  2. 前端、数据库、Django简单的练习

    一.前端 1.前端页面由哪几层构成,分别是什么,作用是什么? 分为:结构层(html),表示层(css),行为层(js). 结构层 超文本标记语言.由HTML或XHTML之类的标记语言负责创建.标签, ...

  3. Shell教程 之printf命令

    上一章节我们学习了 Shell 的 echo 命令,本章节我们来学习 Shell 的另一个输出命令 printf. printf 命令模仿 C 程序库(library)里的 printf() 程序. ...

  4. 超强、超详细Redis入门教程【转】

    这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用red ...

  5. tcp中的keepalive(转)

    理解Keepalive(1) 大家都听过keepalive,但是其实对于keepalive这个词还是很晦涩的,至少我一直都只知道一个大概,直到之前排查线上一些问题,发现keepalive还是有很多玄机 ...

  6. day 25 udp, socketserver

    建立UDP连接的示例: # server端 import socket sk = socket.socket(type=socket.SOCK_DGRAM) sk.bind(('127.0.0.1', ...

  7. C++ 计算直线的交点数(动态规划)

    问题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1466 Problem Description 平面上有n条直线,且无三线共点,问这些直线能有多少种不同 ...

  8. go语言使用go-sciter创建桌面应用(六) Element元素操作和Event事件响应

    详细的文档请看下面两个链接: https://sciter.com/docs/content/sciter/Element.htm https://sciter.com/docs/content/sc ...

  9. php使用fputcsv进行大数据的导出

    为了实验大数据的导出,我们这里先自已创建一张大表,表结构如下: CREATE TABLE `tb_users` ( `id` int(11) unsigned NOT NULL AUTO_INCREM ...

  10. python any() all()

    any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True. 元素除了是 0.空.FALSE 外都算 TRUE. ...