SpringMVC学习笔记(一)
1、SpringMVC
概念
SpringMVC
叫做Spring web mvc
。它是Spring
内置的一个MVC
框架,在Spring3.0
后发布。SpringMVC
框架解决了web
开发中比较简单的常见的问题。比如说参数的接收、文件上传、表单验证等内容。
SpringMVC
与Spring
相互连接,形成一个集成。它支持RESTful
风格的URL
请求。采用了松散耦合可插拔组件结构,比其他 MVC
框架更具扩展性和灵活性。
1.1 SpringMVC
原理
在没有使用SpringMVC
框架时,使用的是Servlet
做Web
开发。但是在使用Servlet、开发时,像上面说的数据共享,页面跳转等操作较为复杂。servlet
是java
进行web
开发的标准。
而SpringMVC
是对servlet
的封装,其底层就是servlet
,是对servlet
进行深层次的封装
1.2 SpringMVC
的优势
- 基于MVC架构,功能分工明确。它能解决页面代码和后台代码的分离。
- 简单易用。
SpringMVC
属于轻量级的,jar
很小。它不依赖特定的接口和类就可以开发一个注解的SpringMVC
项目 - 框架的一部分,能够使用
spring
的ioc
和aop
。能够方便整合其他的框架。 -
springMVC
注解强大易用
2、传统的MVC方式
模型1:`jsp+javabean`模型---在`jsp`页面中嵌入大量的`java`代码
模型2:`jsp+servlet+javabean`模型---`jsp`页面将请求发送给`servlet`,由`servlet`调用`javabean`,再由`servlet`将制定`jsp`页面响应给用户。
模型2一般就是现在的MVC
模式,在使用SpringMVC
之前一般使用的都是它。
Model-View-Controller:模型–视图–控制器
- Model:模型层
javaBean
负责数据访问和业务处理dao service pojo
- View:视图 JSP技术负责收集和展示数据
- Controller:控制器
servlet
技术中间调度
3、简单创建入门
3.1 创建maven项目(略)
3.2 pom.xml文件添加依赖和插件
<!--web项目-->
<packaging>war</packaging>
<dependencies>
<!--spring-webmvc依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.13.RELEASE</version>
</dependency>
<!--springmvc底层还是servlet,所以必须添加serlvet依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope><!--插件运行的时候没有范围插件启动会失败-->
</dependency>
</dependencies>
<build>
<plugins>
<!-- 编码和编译和JDK版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<!--tomcat插件-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/</path>
<port>8080</port>
</configuration>
</plugin>
</plugins>
</build>
3.3 创建Spring
和SpringMVC
配置文件
我们一般将除了把Controller
之外的所有 Bean
注册到 Spring
容器中,而将 Controller
注册到 SpringMVC
容器中。所以我们在 resources
目录下添加 applicationContext.xml
作为 spring
的配置, 添加springmvc.xml
作为springmvc
的配置文件。
3.3.1 创建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: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
">
<!--spring的配置文件:除了控制器之外的bean对象都在这里扫描-->
<context:component-scan base-package="com.kkb.dao,com.kkb.service"/>
</beans>
3.3.2 创建SpringMVC
的配置文件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/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
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
">
<!--springmvc的配置文件:控制器的bean对象都在这里扫描-->
<context:component-scan base-package="com.kkb.controller"/>
</beans>
3.4 在web.xml
中进行Spring
和SpringMVC
配置
1.配置文件搞定
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!--spring配置-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--springMVC核心控制器-->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 创建前端控制器的时候读取springmvc配置文件启动ioc容器 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- Tomcat启动就创建此对象 -->
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 配置拦截路径url,所有以.do结尾的请求都会被前端控制器拦截处理 -->
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
load-on-startup:
标记是否在web服务器。
3.5 创建控制器
@Controller
public class TeamController {
@Autowired
private TeamService teamService;
@RequestMapping("hello.do")
public ModelAndView add(){
System.out.println("TeamController----add---");
teamService.add();
ModelAndView mv=new ModelAndView();
mv.addObject("teamName","湖人");//相当于
request.setAttrubuite("teanName","湖人");
mv.setViewName("index");
//未来经过springmvc的视图解析器处理,转换成物理资源路径,相当于request.getRequestDispatcher("index.jsp").forward();
//经过InternalResourceViewResolver对象的处理之后加上前后缀就变为了/jsp/index.jsp
return mv;
}
}
@Service
public class TeamService {
public void add(){
System.out.println("TeamService---- add-----");
}
}
3.6 配置视图解析器
在springmvc.xml
配置文件中添加视图解析器的配置。
<!--视图解析器-->
<bean id="internalResourceViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<mvc:annotation-driven/>
3.7 编写index.jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>index</title>
</head>
<body>
<h1>index---------------${teamName}</h1>
</body>
</html>
最后运行如下:
以上就是对springmvc的基本学习和简单的应用。谢谢大家阅读收看。