SpringMVC配置
来源:互联网 发布:唯品会淘宝天猫哪个好 编辑:程序博客网 时间:2024/06/04 01:11
用maven搭建的springmvc:
一、注解说明:
springmvc常用注解:
1、@Controller
@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。@Controller 只是定义了一个控制器类。
2、@RequestMapping
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
返回值会通过视图解析器解析为实际的物理视图,对于 InternalResourceViewResolver 视图解析器,会做如下的解析:
通过 prefix + returnVal + suffix 这样的方式得到实际的物理视图,然后做转发操作;
1、 value
value:指定请求的实际地址;
2、method;
method: 指定请求的method类型, GET、POST、PUT、DELETE等,下面例子的@PathVariable后
衍生:
@GetMapping
@PostMapping
@PutMapping
3、@PathVariable
用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数。如:
@RequestMapping(value="/product/{productId}",method = RequestMethod.GET)
public String getProduct(@PathVariable("productId") String productId){
System.out.println("Product Id : " + productId);
return "hello";
}
4、@CookieValue
作用:用来获取Cookie中的值;
参数: value:参数名称 required:是否必须 defaultValue:默认值
使用案例:
@RequestMapping("/testCookieValue")
public String testCookieValue(@CookieValue("JSESSIONID") String sessionId) {
System.out.println("JSESSIONID = " + sessionId);
return "success";
}
5、@RequestParam
@RequestParam用于将请求参数区数据映射到功能处理方法的参数上,用例
@RequestMapping("/testRequestParam")
public String testRequestParam(@RequestParam("id") int id) {
System.out.println("testRequestParam " + id);
return "success";
}
6、@ResponseBody
作用: 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
springmvc请求参数获取的几种方法
1、 直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交。
2、 通过HttpServletRequest接收,post方式和get方式都可以。
3、 通过一个bean来接收,post方式和get方式都可以。
4、 通过@PathVariable获取路径中的参数
二、实例:
1、pom.xml中引入相关依赖:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.ifytek</groupId> <artifactId>mymvc</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging><properties><spring.version>4.3.13.RELEASE</spring.version></properties><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjrt</artifactId><version>1.8.10</version></dependency><dependency><groupId>aopalliance</groupId><artifactId>aopalliance</artifactId><version>1.0</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.10</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>4.3.11.Final</version></dependency><!-- web jar --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.0.1</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.1.2</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.1</version><scope>provided</scope></dependency><!-- jstl jar --><!-- * compile,缺省值,适用于所有阶段,会随着项目一起发布。 * provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 * runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。 * test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 * system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。 --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.38</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.2</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.2</version></dependency></dependencies></project>
2、resources资源文件夹下创建两个资源文件:
(1、)spring.xml为spring配置文件:
<?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:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd"><!-- 扫描除Controller外的注解 --><context:component-scan base-package="com.iflytek"><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan></beans>
(2、)springmvc.xml为springmvc的配置文件:
<?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:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"><mvc:annotation-driven/><context:component-scan base-package="com.iflytek"><context:include-filter type="annotation"expression="org.springframework.stereotype.Controller" /></context:component-scan><!-- view Resolvers --><beanclass="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"><property name="viewResolvers"><list><bean class="org.springframework.web.servlet.view.BeanNameViewResolver" /><!-- 配置前缀后缀 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean></list></property><property name="defaultViews"><list><!-- 配置返回json --><beanclass="org.springframework.web.servlet.view.json.MappingJackson2JsonView" /></list></property></bean></beans>
3、web.xml中引入上述两个配置文件,让tomcat在启动的时候扫描这两个文件:
<?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"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID" version="3.0"><!-- spring配置文件的路径 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring.xml</param-value></context-param><servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.js</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.css</url-pattern></servlet-mapping><servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><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>dispatcher</servlet-name><url-pattern>/</url-pattern></servlet-mapping><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener></web-app>
4、代码实例:
实体类:
package com.iflytek.domain;public class Person {int id;String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
控制器:
package com.iflytek.controller;import java.util.ArrayList;import java.util.List;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import com.alibaba.fastjson.JSON;import com.iflytek.domain.Person;@Controllerpublic class HomeController {@RequestMapping("/home")public String goHome() {System.out.println("hello");return "home";}@RequestMapping("/home1")@ResponseBodypublic List<Person> goHome1() {List<Person> list=new ArrayList<>();Person person=new Person();person.setId(1);person.setName("zs");list.add(person);person=new Person();person.setId(2);person.setName("李四");list.add(person);System.out.println("hello1");return list;}}
前台:home.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script type="text/javascript" src="assets/jquery.min.js"></script><script type="text/javascript">$(function(){$.post("home1",function(data){$("#div1").html(data[1].id+data[1].name);})})</script></head><body><div id="div1"></div>hello</body></html>
- 【SpringMVC】SpringMVC配置FastJson
- SpringMVC 配置
- SpringMVC配置
- SpringMVC 配置
- SpringMVC配置
- SpringMVC配置
- SpringMVC 配置
- springMVC 配置
- springmvc 配置
- springmvc 配置
- SpringMVC配置
- SpringMVC配置
- springMVC配置
- SpringMvc配置
- springmvc 配置
- springmvc配置
- springmvc配置
- springmvc配置
- JVM内存监控工具
- BZOJ2243: [SDOI2011]染色(洛谷P2486)
- 不同版本的python共用一个opencv
- mac 终端 使用ftp命令
- spring-boot文章收集
- SpringMVC配置
- net-snmp开发过程整理-src开发
- PHP自动捕捉页面500错误
- 调试CRF出现的错误:cannot be interpreted as a Tensor.
- Mybatis之序列插入语句(Mysql和Oracle)
- kuangbin专题五并查集 POJ1308 Is It A Tree?(并查集)
- 网络编程代码实例
- 图像处理笔试面试题
- 开发jQuery插件