十二、SpringMVC
1. SpringMVC环境搭建
1. 创建maven—web项目
2. 补全目录
3. 添加依赖
4. 加入tomcat插件
<dependencies><!--依赖了Spring框架核心功能的5个依赖以及Spring整合web的依赖spring-web--><dependency> <groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.16</version></dependency></dependencies><build><!--Tomcat插件--><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><path>/testwebproject</path><port>8849</port></configuration></plugin></plugins></build>
5. 创建控制器类,跳转到index.jsp
@Controller
public class TestController { //控制器类@RequestMapping("/test1")public String test1(){//响应给前端(浏览器)index.jsp页面:return "index.jsp";}
}
6. 新建Spring MVC框架配置文件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:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--扫描控制器类,千万不要把service等扫描进来,也千万不要在Spring配置文件扫描控制器类所在包--><context:component-scan base-package="com.luo.controller"></context:component-scan><!--让Spring MVC的注解生效:@RequestMapping--><mvc:annotation-driven></mvc:annotation-driven>
</beans>
修改web.xml配置
<?xml version="1.0" encoding="UTF-8" ?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0">
</web-app>
7. 编写web.xml内容
<?xml version="1.0" encoding="UTF-8" ?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><!--springmvc.xml 名称自定义,只要和我们创建的配置文件的名称对应就可以了。--><param-value>classpath:springmvc.xml</param-value></init-param><!--Tomcat启动立即加载Servlet,而不是等到访问Servlet才去实例化DispatcherServlet--><!-- 配置上的效果:Tomcat启动立即加载Spring MVC框架的配置文件 --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><!--/表示除了.jsp结尾的uri,其他的uri都会触发DispatcherServlet。此处千万不要写成/*--><url-pattern>/</url-pattern></servlet-mapping>
</web-app>
2. SpringMVC获取普通参数
获取普通参数,只需要在控制单元中提供与请求参数同名的方法参数即可,Spring MVC会自动进行类型转换。
@RequestMapping("/testParam")public String testParam(String name, int age){System.out.println(name+"---"+ age);return "index.jsp";}
3. 使用类对象作为控制单元参数
JavaBean:一个包含私有属性,getter/setter方法和无参构造方法的Java类,是不是感觉和实体类特别像。其实写法上和实体类相同。唯一区别是实体类是数据库层面的概念,类型中属性要和数据库字段对应。而JavaBean的属性是灵活的,不是必须和哪里对应的。
JavaBean是一个专业概念,可以简单点理解:使用类对象做为控制单元参数,接收请求参数,如果不是特别较真,狭义上可以认为JavaBean就是项目中的实体类。
在控制单元中放置一个类型对象,对象名称没有要求,只需要保证请求参数名和类的属性名相同就可以了。
public class Person {private String name;private int age;private double score;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}public Person() {}public Person(String name, int age, double score) {this.name = name;this.age = age;this.score = score;}
}
@RequestMapping("/testParam2")public String testParam2(Person p){System.out.println(p.getName()+"---"+ p.getAge()+"---"+p.getScore());return "index.jsp";}