SpringMVC基本配置

  SpringMVC是基本请求响应模式的框架。

  在项目中集成SpringMVC框架首先需要导入相关的jar包,所需包具体如下:

  commons-dbcp.jar
  commons-fileupload-1.2.2.jar
  commons-io-2.0.1.jar
  commons-logging-1.1.1.jar
  jackson-annotations-2.2.3.jar
  jackson-core-2.2.3.jar
  jackson-databind-2.2.3.jar
  spring-aop-4.1.6.RELEASE.jar
  spring-beans-4.1.6.RELEASE.jar
  spring-context-4.1.6.RELEASE.jar
  spring-context-support-4.2.3.RELEASE.jar
  spring-core-4.1.6.RELEASE.jar
  spring-expression-4.1.6.RELEASE.jar
  spring-jdbc-4.2.3.RELEASE.jar
  spring-tx-4.1.6.RELEASE.jar
  spring-web-4.1.6.RELEASE.jar
  spring-webmvc-4.1.6.RELEASE.jar

  在导入相关jar包之后需要配置web.xml文件与SpringMVC相关联,完整web.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>springMVC</display-name>
<servlet>
<servlet-name>demo</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>demo</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>

  在web.xml中关于springMVC的两个标签是<servlet></servlet>和<servlet-mapping></servlet-mapping>

  这两个标签的第一个子标签<servlet-name>要互相对应保持一致

  <servlet>标签的子标签<servlet-class>指定路由的处理类

  <servlet-mapping>标签的子标签<url-pattern>指定被拦截的路由模式,上面的配置表示系统中所有以.do结尾的请求都交给org.springframework.web.servlet.DispatcherServlet来进行处理

  <servlet>标签的子标签<init-param>表示参数的配置,<init-param>的子标签<param-name>设置为contextConfigLocation,<param-value>标签表示contextConfigLocation的值,其值classpath:mvc.xml表示路径是在src目录下的mvc.xml,mvc.xml表示具体的关于springMVC应用的配置,如果不进行<init-param>的配置则springMVC的具体的配置文件要指定为[name]-servlet.xml,[name]表示<servlet-name>的值

  <load-on-value>表示项目启动则配置生效

  在web.xml配置完成之后需要对springMVC.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
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">
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html; charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html; charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</list>
</property>
</bean>
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/pages/"/>
</bean>
<context:component-scan base-package="com.wx.controller"/>
</beans>

  beans里面的第一个bean表示开启注解扫描

  beans里面的第二个bean表示注解映射器

  beans里面的第三个bean表示注解适配器,主要实现了返回一个json数据的功能。第二和第三的要有绑定关系,要么全写,要么全不写

  beans里面的第四个bean表示视图解析器,里面的<property name=prefix value="/WEB-INF/pages"/>表示对返回的视图添加前缀,与之对应的就是添加后缀,使用方式为<property name="sufix" value=".jsp">,例如controller类中一个方法return "demo",则最终的结果为/WEB-INF/pages/demo.jsp

  最后一行表示配置文件对com.wx.controller下的所有java文件起作用(扫描里面的注解)

  至此完成了一个最简单的springMVC的配置。

代码实现

  在springMVC的配置文件中我们指明了监控com.wx.controller包内的所有文件的注解,我们在该包内新建一个DemoController.java文件,最终其内容如下:

package com.wx.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class DemoController {
@RequestMapping("/demo/html.do")
public String toHtml(){
return "html.html";
}
@RequestMapping("/demo/jsp.do")
public String toJSP(){
return "jsp.jsp";
}
}

  在WEB-INF下的pages文件中新建html.html和jsp.jsp文件

  运行项目在地址输入/demo/html.do可以跳转到html.html页面,输入/demo/jsp.do可以跳转到jsp.jsp页面

SpringMVC处理json数据格式的数据

  我们在客户端已发出如下的请求:

    $(function(){
var data = {
name:"zt",
age:23
}
$.ajax({
url:"http://zt:8088/springmvc-demo/demo/send.do",
type:"post",
data:JSON.stringify(data),
contentType:"application/json; charset=utf-8"
}).done(function(data){
console.log(data);
}).fail(function(){
console.error("server error");
})

  在服务端的controller类中添加对应的处理方法:

    @RequestMapping("/demo/send.do")
@ResponseBody
public List<Person> send(@RequestBody User user){
System.out.println("client send age:"+user.getAge());
System.out.println("client send name:"+user.getName());
List<Person> list = new ArrayList<Person>();
Person p1 = new Person("张三",23);
Person p2 = new Person("李四",22);
list.add(p1);
list.add(p2);
return list;
}

  @ResponseBody表示返回的是数据不再是页面不再需要视图解析器的处理

  User是一个实体类用来接收从客户端发送过来的数据,前面要用@RequestBody来进行修饰

  此时客户端也可以正确的接收到服务端返回的JSON数据:[{"name":"张三","age":23},{"name":"李四","age":22}]

SpringMVC配置及使用的更多相关文章

  1. SpringMVC配置实例

    一.SpringMVC概述 MVCII模式实现的框架技术 Model--业务模型(Biz,Dao...) View--jsp及相关的jquery框架技术(easyui) Contraller--Dis ...

  2. SpringMVC配置与使用

    一.MVC概要 MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范,用一种将业务逻辑.数据.显示分离的方法组织代码,MVC主要作用是降低了视图与业务 ...

  3. 3.2.2 SpringMVC配置式开发

    SpringMVC配置式开发 1. SpringMVC运行原理(执行过程) 2. 需求 用户提交一个请求, 服务端处理器接收到请求后, 给出一条信息,在相应页面中显示该条信息 3. 开发步骤 (1) ...

  4. springmvc配置之mvc:annotation-driven

    为了简化springmvc配置,spring同时引入了mvc namespace, 配置了 <mvc:annotation-driven/> spring会默认注册a RequestMap ...

  5. SpringMVC配置多视图-内容协商原理

    SpringMVC配置多视图-内容协商原理 2014年03月06日 16:46:59 日积月累_滴水石穿 阅读数:10964更多 个人分类: SpringMVC   Spring Framework ...

  6. Spring-MVC配置Gson做为Message Converter解析Json

    Spring-MVC配置Gson做为Message Converter解析Json 在学习Spring的时候看到可以使用@RequestBody 和@ResponseBody注解来是的Spring自动 ...

  7. Spring实战第七章————SpringMVC配置的替代方案

    SpringMVC配置的替代方案 自定义DispatherServlet配置 我们之前在SpittrWebAppInitializer所编写的三个方法仅仅是必须要重载的abstract方法.但还有更多 ...

  8. springMVC 配置jdbcTemplate连接Oracle数据库出错

    springMVC 配置jdbcTemplate连接Oracle数据库出错 错误信息: log4j:WARN No appenders could be found for logger (org.s ...

  9. Spring Boot2 系列教程(十八)Spring Boot 中自定义 SpringMVC 配置

    用过 Spring Boot 的小伙伴都知道,我们只需要在项目中引入 spring-boot-starter-web 依赖,SpringMVC 的一整套东西就会自动给我们配置好,但是,真实的项目环境比 ...

  10. javaConfig下的springmvc配置

    javaConfig下的springmvc配置 一.静态资源过滤 XML的配置 <mvc:resources mapping="/**" location="/&q ...

随机推荐

  1. JSON和Serialize数据格式的对比

    1.相同点: 都是把其它数据类型转换为可传输的字符串 都是结构性数据 2.不同点: JSON比Serialize序列后的格式要简洁 Serialize序列化的数据格式保存数据原有类型 3.扩展 JSO ...

  2. 利用Vistual Studio自带的xsd.exe工具,根据XML自动生成XSD

    利用Vistual Studio自带的xsd.exe工具,根据XML自动生成XSD 1, 命令提示符-->找到vs自带的xsd.exe工具所在的文件夹 例如: C:\Program Files ...

  3. 20171022xlVBA练手提取入所记录

    Sub GetWordText改进() Dim Wb As Workbook Dim Sht As Worksheet Dim Rng As Range Dim wdApp As Object Dim ...

  4. 01Flask基础

    简介 Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎所有的 ...

  5. SVN入门使用

    1.安装客户端:TortoiseSVN-1.9.7.27907-x64-svn-1.9.7     2.安装服务器:Setup-Subversion-1.8.5.msi 下载地址:http://sou ...

  6. 反射API(一)

    <?php function classData(ReflectionClass $class) { echo '<hr>'; $details = '当前文件:'; $detail ...

  7. Linux下查看相应端口的进程

    1)查找被占用的端口:netstat -tln | grep 7777 2)查看被占用端口的PID:lsof -i:7777 3)禁用使用kill -9 PID来禁用端口进程

  8. 【其他】【Restful】【1】简单了解Restful概念

    内容: REST是一种设计风格,不是一种标准,是一种思想.符合REST原则的架构方式即可称为RESTful. 在Restful之前的操作:http://127.0.0.1/user/query/1 G ...

  9. grid的简单使用

    <!DOCTYPE html><html><head><meta charset="UTF-8"><title>grid ...

  10. MongoDB 第一篇

    概述 MongoDB是一个高性能,开源,无模式的文档型数据库,使用C++开发.是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是 ...