SpringMVC配置及使用
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配置及使用的更多相关文章
- SpringMVC配置实例
一.SpringMVC概述 MVCII模式实现的框架技术 Model--业务模型(Biz,Dao...) View--jsp及相关的jquery框架技术(easyui) Contraller--Dis ...
- SpringMVC配置与使用
一.MVC概要 MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范,用一种将业务逻辑.数据.显示分离的方法组织代码,MVC主要作用是降低了视图与业务 ...
- 3.2.2 SpringMVC配置式开发
SpringMVC配置式开发 1. SpringMVC运行原理(执行过程) 2. 需求 用户提交一个请求, 服务端处理器接收到请求后, 给出一条信息,在相应页面中显示该条信息 3. 开发步骤 (1) ...
- springmvc配置之mvc:annotation-driven
为了简化springmvc配置,spring同时引入了mvc namespace, 配置了 <mvc:annotation-driven/> spring会默认注册a RequestMap ...
- SpringMVC配置多视图-内容协商原理
SpringMVC配置多视图-内容协商原理 2014年03月06日 16:46:59 日积月累_滴水石穿 阅读数:10964更多 个人分类: SpringMVC Spring Framework ...
- Spring-MVC配置Gson做为Message Converter解析Json
Spring-MVC配置Gson做为Message Converter解析Json 在学习Spring的时候看到可以使用@RequestBody 和@ResponseBody注解来是的Spring自动 ...
- Spring实战第七章————SpringMVC配置的替代方案
SpringMVC配置的替代方案 自定义DispatherServlet配置 我们之前在SpittrWebAppInitializer所编写的三个方法仅仅是必须要重载的abstract方法.但还有更多 ...
- springMVC 配置jdbcTemplate连接Oracle数据库出错
springMVC 配置jdbcTemplate连接Oracle数据库出错 错误信息: log4j:WARN No appenders could be found for logger (org.s ...
- Spring Boot2 系列教程(十八)Spring Boot 中自定义 SpringMVC 配置
用过 Spring Boot 的小伙伴都知道,我们只需要在项目中引入 spring-boot-starter-web 依赖,SpringMVC 的一整套东西就会自动给我们配置好,但是,真实的项目环境比 ...
- javaConfig下的springmvc配置
javaConfig下的springmvc配置 一.静态资源过滤 XML的配置 <mvc:resources mapping="/**" location="/&q ...
随机推荐
- JSON和Serialize数据格式的对比
1.相同点: 都是把其它数据类型转换为可传输的字符串 都是结构性数据 2.不同点: JSON比Serialize序列后的格式要简洁 Serialize序列化的数据格式保存数据原有类型 3.扩展 JSO ...
- 利用Vistual Studio自带的xsd.exe工具,根据XML自动生成XSD
利用Vistual Studio自带的xsd.exe工具,根据XML自动生成XSD 1, 命令提示符-->找到vs自带的xsd.exe工具所在的文件夹 例如: C:\Program Files ...
- 20171022xlVBA练手提取入所记录
Sub GetWordText改进() Dim Wb As Workbook Dim Sht As Worksheet Dim Rng As Range Dim wdApp As Object Dim ...
- 01Flask基础
简介 Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎所有的 ...
- SVN入门使用
1.安装客户端:TortoiseSVN-1.9.7.27907-x64-svn-1.9.7 2.安装服务器:Setup-Subversion-1.8.5.msi 下载地址:http://sou ...
- 反射API(一)
<?php function classData(ReflectionClass $class) { echo '<hr>'; $details = '当前文件:'; $detail ...
- Linux下查看相应端口的进程
1)查找被占用的端口:netstat -tln | grep 7777 2)查看被占用端口的PID:lsof -i:7777 3)禁用使用kill -9 PID来禁用端口进程
- 【其他】【Restful】【1】简单了解Restful概念
内容: REST是一种设计风格,不是一种标准,是一种思想.符合REST原则的架构方式即可称为RESTful. 在Restful之前的操作:http://127.0.0.1/user/query/1 G ...
- grid的简单使用
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>grid ...
- MongoDB 第一篇
概述 MongoDB是一个高性能,开源,无模式的文档型数据库,使用C++开发.是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是 ...