第一步:导入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. ORM笔记

    ORM工具的唯一作用就是:把对持久化对象的保存.删除.修改等操作,转换成对数据库的操作,而ORM框架则负责转换成对应的SQL(结构化查询语言)操作.(ORM工具可完成对象模型和关系模型直接的相互映射) ...

  2. Aptana在Eclipse的安装

    1.下载 com.aptana.rcp.product-3.4.2.zip文件 https://pan.baidu.com/s/1sl81Vit 2.安装 接着Next.直到成功 3.怎么判定安装成功 ...

  3. LocalDateTime TypeMismatch

    @DateTimeFormat(pattern = "yyyy-MM-dd")@JsonFormat(pattern = "yyyy-MM-dd", timez ...

  4. jggrid应用,后台c#

    参考网址: 1.https://www.cnblogs.com/miro/p/jqGrid.html 2.https://blog.csdn.net/ainuser/article/details/6 ...

  5. springMVC项目部署 服务器启动spring容器报错bean未从类加载器中找到

    bean未从类加载器中找到 警告: Exception encountered during context initialization - cancelling refresh attempt: ...

  6. springMVC数据交互

    控制器 作为控制器,大体的作用是作为V端的数据接收并且交给M层去处理,然后负责管理V的跳转.SpringMVC的作用不外乎就是如此,主要分为:接收表单或者请求的值,定义过滤器,跳转页面:其实就是ser ...

  7. Cloud Foundry v2 部署及入门运维

    之前写过一个Guide for Cloud Foundry New Teamer.不过似乎已经有些过时,那会实验室主要是针对的CF v1进行的研究,现在已经全面进入V2时代了.所以更新一下关于Clou ...

  8. C#中多线程的并行处理

    System.Threading.Tasks,在该命名空间下Task是主类,表示一个类的异步的并发的操作,创建并行代码的时候不一定要直接使用Task类,在某些情况下可以直接使用Parallel静态类( ...

  9. Ubuntu 16.04 更换阿里源

    vim /etc/apt/source.list deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by s ...

  10. 偷懒把本来要判断输入值的textbox 输出提示值,结果点两次程序异常

    调试程序是苦并快乐着的事, 为防止用户直接点击导入下表,于是我设置提示,点击时先判断textbox 里边有无值,为空的话也在textbox做提示 程序如下: 点一次可以正常输出到textbox中,点第 ...