基于SpringMVC入门案例及讲解
作者:sswqzx 发布时间:2023-04-06 17:34:43
标签:SpringMVC,Spring,MVC
一、SpringMvc概述
SpringMVC是一个基于MVC设计模式的WEB层框架。
SpringMVC设计模式:
MVC,全名是(Model View Controller)的缩写,是一种软件设计模式。
具体含义:
Model:模型,用来处理数据,一般是一个实体类,例如User类;
View:视图,用来显示界面,可以是JSP或Html;
Controller:控制器,用来决定哪个界面来展示模型;(其实是业务处理器)
SpringMVC在项目中的作用:
JavaEE开发规范规定,一个Java web项目应该要分为三层:
WEB层:页面数据显示、页面跳转调度;
业务层:业务处理和功能逻辑、事务控制;
持久层:数据存取和封装、和数据库打交道;
二、入门案例
开发步骤
环境:jdk1.8 Tomcat8.5 idea2018 manven父工程子模块
1、创建web工程、引入依赖
项目结构:没有的就创建
pom.xml 依赖 添加打包方式为war
<groupId>com.day01springmvc</groupId>
<artifactId>Springmvc01</artifactId>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<!--<version>4.3.1.RELEASE</version>-->
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
<!-- JSP相关 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
添加web.xml文件及目录
2、配置SpringMvc入口文件
--DispatcherServlet--理解为总调度、web.xml里配置
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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"
version="2.5">
<!-- springmvc入口 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 项目启动时,就加载并实例化 -->
<load-on-startup>1</load-on-startup>
<!--当springmvc-servlet.xml没有按照springmvc规定命名就要加载这段来找springmvc.xml-->
<!--<init-param>-->
<!--<param-name>contextConfigLocation</param-name>-->
<!--<param-value>classpath:springmvc.xml</param-value>-->
<!--</init-param>-->
</servlet>
<!--
/*拦截所有请求
/拦截所有请求,不包括jsp(包括html)
*.do表示拦截所有以.do结尾的请求
-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
3、创建Springmvc.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--基于注解、开启注解扫描-->
<!--<context:component-scan base-package="com.day01springmvc.controller"> </context:component-scan>-->
<!--
把Controller交给spring管理,
在浏览器中通过id属性的值来访问
而我们在web.xml中配置的DispatcherServlet的访问路径是*.do
为了能够让请求进入springmvc框架,所以id的值以do结尾
-->
<bean id="/hello.do" class="com.day01springmvc.controller.HelloController"></bean>
<!--
配置视图解析器
prefix:指定视图所在的目录
suffix:指定视图的后缀名
例如:prefix="/WEB-INF/jsp/", suffix=".jsp",当viewname="test"时,
跳转到/WEB-INF/jsp/test.jsp页面
prefix+viewname+suffix 找到WEB-INF/hello.jsp
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
4、创建 业务处理器 Controller类
HelloController.java继承Controller
package com.day01springmvc.controller;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 业务处理器
* @ Author :ShaoWei Sun.
* @ Date :Created in 20:58 2018/11/16
*/
public class HelloController implements Controller {
/**
* 处理请求
*/
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
System.out.println("hello请求进来了.................................................................");
ModelAndView mv = new ModelAndView();
//添加一个数据,页面上可以取出这个数据
mv.addObject("msg", "这是第一个springmvc程序");
//设置视图的名字
mv.setViewName("hello");
return mv;
}
}
5、测试
6、运行流程
来源:https://blog.csdn.net/sswqzx/article/details/84171999
0
投稿
猜你喜欢
- 一、相关概念1.1 Jenkins概念:Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费
- .NET开发人员首选的方法,通过COM组件调用Office软件本身来实现文件的创建和读写,但是数据量较大的时候异常缓慢;如下代码所示已经做了
- spring Boot 熟悉后,集成一个外部扩展是一件很容易的事,集成Redis也很简单,看下面步骤配置:一、添加pom依赖
- 开发环境使用jdk1.8.0_60,把springboot 项目打成war包后,部署到apache-tomcat-7.0.68时报错如下,换
- 一、前言最近写了个项目,前端还没写,需要部署到服务器给女朋友实现前端,可是不熟悉Linux的我,蹑手蹑脚,真的是每一步都是bug,可谓是步步
- 验证码逻辑以前在项目中也做过验证码,生成验证码的代码网上有很多,也有一些第三方的jar包也可以生成漂亮的验证码。验证码逻辑很简单,就是在登录
- 本文实例为大家分享了android实现简易计算器展示的具体代码,供大家参考,具体内容如下效果图:一、如图,首先布局计算器主页显示activi
- 目录一、Lambda 表达式简介1、什么是 Lambda 表达式2、为什么需要 Lambda 表达式二、函数式接口和定义1、什么是函数式接口
- 本节了解一下 SpringBoot 中 Web 开发的静态资源导入和首页设置,对应 SpringBoot-03-Web 项目。1. 静态资源
- 用类加载器的5中形式读取.properties文件(这个.properties文件一般放在src的下面)用类加载器进行读取:这里采取先向大家
- 前言Java中共有八种基本数据类型:byte,int,short,long,float,double,char,boolean。计算机中的基
- 本文实例为大家分享了Java实现简单ATM机功能的具体代码,供大家参考,具体内容如下项目介绍基于大家使用银行卡在ATM机取款操作,进行相对应
- 问题描述:在windows系统下,idea中,操作terminal控制台,使用git log查看日志时,出现如下乱码为什么参考网上很多的gi
- 1、确定本地网络是通的:2、确定SpringBootq启动后是不报错的3、查看是不是自己在配置文件中加入了项目路径:如果加入了项目路径的话,
- 在servlet3.0标准之前,是每一个请求对应一个线程。如果此时一个线程出现了高延迟,就会产生阻塞问题,从而导致整个服务出现严重的性能情况
- 分析代码规范,并从代码角度分析存在的风险,并且支持一键更改。具体操作如下图:简单方便,最主要的是好用!补充:下面看下IntelliJ IDE
- 本文实例为大家分享了Java实现酒店客房管理系统的具体代码,供大家参考,具体内容如下LoginFrame.javapackage login
- 前言在写项目的时候经常需要特定的时间做一些特定的操作,尤其是游戏服务器,维护线程之类的,这时候就需要用到定时器。如果此时你刚好用的是spri
- 1、HashMap HashMap继承抽象类AbstractMap,实现接口Map、Cloneable, Serializable接口。Ha
- 一、方法这里我们用两种方法来实现跑马灯效果,虽然实质上是一种实质就是:1、TextView调出跑马灯效果2、TextView获取焦点&nbs