关键词:
SpringMVC介绍
SpringMVC介绍
SpringMVC是属于是spring中web模块的支持一部分
实现的了WEB MVC的设计模式,进行web层的职责解耦
请求驱动类型的web框架:请求-响应的模型
SpringMVC的运行原理
组件:
前端控制器:控制中心,组件间解耦合(无需开发/配置即可)
处理器映射器:匹配URL是否存在(无需开发/配置即可)
处理器适配器:适配查找具体处理器(无需开发/配置即可)
处理器:不同URL处理逻辑不同(需要开发 后端java)
视图解析器:查找View实例对象(无需开发/配置即可)
视图:web页面(jsp、freemark、pdf等类型视图)(需要开发/网页)
SpringMVC的使用
web项目需要放在容器里执行(Tomcat/jetty)
本文用的是jetty
1、依赖jar包
springMVC中web依赖:
<!--web依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!--Spring 基本核心jar包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<!--log4j日志-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!--注解相关jar包-->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
2、在web.xml中配置前端控制器
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!--配置前端控制器-->
<servlet>
<servlet-name>springmvc-gysx</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springmvc-gysx</servlet-name>
<url-pattern>/</url-pattern>
<!--http://www.baidu.com/index-->
</servlet-mapping>
</web-app>
注意:前端控制器需要使用org.springframework.web.servlet.DispatcherServlet会拦截指定格式的URL到DispatcherServlet
3、创建SpringMVC的配置文件
创建一个spring-mvc.xml文件,放在资源文件路径下resource下,配置映射器,适配器和解析器
<?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-4.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
<!--配置SpringMVC的需要扫描的包路径-->
<context:component-scan base-package="com.tulun.gysx.controller"/>
<!--配置映射器、适配器:使用默认的处理器处理,不用显性配置映射器、适配器-->
<mvc:annotation-driven/>
<!--视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
</beans>
注意:将spring-mvc.xml配置文件加载到web.xml配置文件中,方便加载
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
4、编写controller层
@Controller
public class TestController
@RequestMapping("/gysx")
public String gysx()
//返回页面
return "index.jsp";
5、编写jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!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>success</title>
</head>
<body>
<h1>你好,同学们!</h1>
</body>
</html>
日志分析
1、日志依赖
<!--log4j日志文件-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
2、日志配置文件
创建log4j.properties文件
## debug 级别
log4j.rootLogger=DEBUG,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%dyyyy-MM-dd-HH\\:mm\\:ss,SSS [%t] [%c] [%p] - %m%n
log4j.logger.com.mybatis=DEBUG /
##输出sql 语句
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
3、日志打印
2021-07-02-10:31:27,929 [main] [org.apache.ibatis.transaction.jdbc.JdbcTransaction] [DEBUG] - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@dc24521]
2021-07-02-10:31:27,931 [main] [com.tulun.mapper.StudentMapperGY.selectStudentById] [DEBUG] - ==> Preparing: select * from student where SID = ?
2021-07-02-10:31:28,036 [main] [com.tulun.mapper.StudentMapperGY.selectStudentById] [DEBUG] - ==> Parameters: 3(Integer)
2021-07-02-10:31:28,196 [main] [com.tulun.mapper.StudentMapperGY.selectStudentById] [DEBUG] - <== Total: 1
"SID":3,"Sname":"sunfen","Ssex":"nan","Sage":21
数据插入示例
insert into student (XXX) values():
mapper.java接口文件
//插入数据
int insertStudent(Student student);
mapper.xml文件
<!--插入数据-->
<insert id="insertStudent" parameterType="com.tulun.bean.StudentGY">
insert into student (SID,Sname,Sage,Ssex) values (#SID,#Sname,#Sage,#Ssex)
</insert>
执行代码:
//指定mybatis的全局配置文件
String fileName= "mybatis-config.xml";
//通过流的形式来读取配置文件
InputStream inputStream = Resources.getResourceAsStream(fileName);
//创建会话工厂
SqlSessionFactory sqlSessionFactory =
new SqlSessionFactoryBuilder().build(inputStream);
//获取会话
SqlSession sqlSession = sqlSessionFactory.openSession();
//通过动态代理获取一个代理对象
StudentMapperGY studentMapperGY = sqlSession.getMapper(StudentMapperGY.class);
// 插入操作
StudentGY studentGY = new StudentGY();
studentGY.setSID(21);
studentGY.setSname("GYSX");
studentGY.setSage(21);
studentGY.setSsex("nan");
studentMapperGY.insertStudent(studentGY);
sqlSession.commit();
删除数据示例
mapper.java接口文件
//删除数据
int delStudentById(Integer id);
mapper.xml配置文件
<!--删除数据-->
<delete id="delStudentById" parameterType="int">
delete from student where SID = #id
</delete>
修改数据示例
mapper.java接口文件
//修改数据
int updateNameById(StudentGY studentGY);
mapper.xml配置文件
<!--修改数据-->
<update id="updateNameById" parameterType="com.tulun.bean.StudentGY">
update student set Sname = #Sname where SID = #SID
</update>
springmvc--springmvc介绍快速入门快速入门流程(代码片段)
1.SpringMVC介绍SpringMVC是三层架构(视图层、服务层、持久层)中的视图层框架。SpringMVC是Spring的一个后续产品,是Spring的一个子项目2.快速入门2.1需求客户端发起请求,服务器端接收请求,执行逻辑并进行视图... 查看详情
springmvc的执行流程及组件介绍(代码片段)
UserController.javasuccess.jsp<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>Title</title></head>&l 查看详情
springmvc介绍及基本应用(代码片段)
SpringMVC介绍及基本应用1、SpringMVC简介1.1、MVC体系结构三层架构我们的开发架构⼀般都是基于两种形式,⼀种是C/S架构,也就是客户端/服务器;另⼀种是B/S架构,也就是浏览器/服务器。在JavaEE开发中,⼏乎全... 查看详情
springmvc介绍及基本应用(代码片段)
SpringMVC介绍及基本应用1、SpringMVC简介1.1、MVC体系结构三层架构我们的开发架构⼀般都是基于两种形式,⼀种是C/S架构,也就是客户端/服务器;另⼀种是B/S架构,也就是浏览器/服务器。在JavaEE开发中,⼏乎全... 查看详情
springmvc整体结构介绍,图文+代码(代码片段)
SpringMVC是Spring提供的构建Web应用程序的框架,该框架遵循了Servlet规范,负责接收并处理Servelt容器传递的请求,并将响应写回Response。SpringMVC以DispatcherServlet为核心,众多组件如HandlerMapping为辅助,为用户封装了... 查看详情
springmvc介绍。(代码片段)
目录1、SpringMvc概述1、基本介绍2、工作流程 3、bean加载控制 二、请求1、请求映射路径2、请求方式3、请求参数4、请求参数(传递json数据)5、日期类型参数传递三、响应四、REST风格1、REST简介2、RESTful入门案例3、RESTful... 查看详情
springmvc--验证器(代码片段)
输入验证是Spring处理的最重要Web开发任务之一。在SpringMVC中,有两种方式可以验证输入,即利用Spring自带的验证框架,或者利用JSR303实现。本篇博客将介绍这两种输入验证方法。本篇博客用两个不同的示例分别介绍这两种方式:... 查看详情
springmvc学习笔记(代码片段)
文章目录概述和设计模式介绍@Controller@RequestMapping@ResponseBody控制器方法的返回String返回类型返回普通的Java类型返回ResponseEntity控制器方法支持的参数类型@PathVariable@RequestParamPOJO对象@RequestBody@RequestPartSpringM 查看详情
springmvc学习笔记(代码片段)
文章目录概述和设计模式介绍@Controller@RequestMapping@ResponseBody控制器方法的返回String返回类型返回普通的Java类型返回ResponseEntity控制器方法支持的参数类型@PathVariable@RequestParamPOJO对象@RequestBody@RequestPartSpringM 查看详情
springmvc常见面试题(代码片段)
1.什么是SpringMVC?简单介绍下你对springMVC的理解? SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简... 查看详情
ssm框架整合—详细整合教程(spring+springmvc+mybatis)(代码片段)
SSM框架整合—详细整合教程(Spring+SpringMVC+MyBatis)✨博主介绍MyBatis和Spring整合1、整合原因2、整合条件3、整合入门4、整合MyBatis现有配置SpringMVC和Spring整合1、整合理论2、整合实战💫点击直接资料领取💫✨... 查看详情
springmvc拦截器详解(代码片段)
...框架必备的功能,也是个老生常谈的主题了。本文将分析SpringMVC的拦截器功能是如何设计的,让读者了解该功能设计的原理。重要接口及类介绍1. HandlerExecutionChain类 由HandlerMethod和Interceptor集合组成的类,会被HandlerMapping... 查看详情
加薪必备,springmvc精品面试题(这必须收藏啊!)(代码片段)
前言本文围绕以下“六”个模块详细的讲述了SpringMVC的常见面试题及答案!面试题目录前言SpringMVC概述什么是SpringMVC?简单介绍下你对SpringMVC的理解?SpringMVC的优点SpringMVC核心组件SpringMVC的主要组件?什么是Dispatc... 查看详情
数据绑定流程分析(代码片段)
一:介绍1.介绍 SpringMVC框架将ServletRequest对象及目标方法的入参实例传递给WebDataBinderFactory实例,以创建DataBinder实例对象。 DataBinder调用装配在SpringMVC上下文中的ConversionService组件,进行数据类型转换,数据格式化工作。... 查看详情
springmvc解析编程式路由(代码片段)
多数情况下,我们在使用Spring的Controller时,会使用@RequestMapping的形式把请求按照URL路由到指定方法上。Spring还提供了一种编程的方式去实现请求和路由方法之间的路由关系,这种关系在Spring启动时确定,运行过程中不可变。编... 查看详情
idea插件系列(64):documentassistant插件——springmvc文档助手(代码片段)
1.插件介绍DocumentAssistant插件。文档助手是基于SpringMVC代码动态生成markdown文档的插件,通过文档助手简单的通过代码注释、SpringMVC的基础注解实现HTTPAPI的文档生成。1、通过动态分析项目应用配置文件以及注解配置生成其URI... 查看详情
在web项目中搭建一个springmvc+spring+mybatis的环境(代码片段)
...中会自动请求jsp中指定的接口,请求到达comcat服务器后由springmvc提供的DispatchServlet类进行接受,然后将请求交给HandierMapping接口的 查看详情
javaweb学习之springmvc视图解析器的分析(代码片段)
在这篇博客中将接着介绍一下SpringMVC视图解析器。当我们对SpringMVC控制的资源发起请求时,这些请求都会被SpringMVC的DispatcherServlet处理,接着Spring会分析看哪一个HandlerMapping定义的所有请求映射中存在对该请求的最合理的... 查看详情