当前位置: 首页 > news >正文

SpirngMVC框架学习笔记(一):SpringMVC基本介绍

1 SpringMVC 特点&概述

  • SpringMVC 从易用性,效率上 比曾经流行的 Struts2 更好 
  • SpringMVC WEB 层框架,接管了 Web 层组件, 比如控制器, , 视图解析, 返回给用户的数据格式, 同时支持 MVC 的开发模式/开发架构
  • SpringMVC 通过注解,让 POJO 成为控制器,不需要继承类或者实现接口
  • SpringMVC 采用低耦合的组件设计方式,具有更好扩展和灵活性.
  • 支持 REST 格式的 URL 请求.
  • SpringMVC 是基于 Spring , 也就是 SpringMVC 是在 Spring 基础上的。SpringMVC 的核心包 spring-webmvc-xx.jar spring-web-xx.jar

2 Spring、SpringMVC和SpringBoot 的关系

  • Spring MVC 只是 Spring 处理 WEB 层请求的一个模块/组件, Spring MVC 的基石是Servlet[Java WEB]
  • Spring Boot 是为了简化开发者的使用, 推出的封神框架(约定优于配置,简化了 Spring 的配置流程), SpringBoot 包含很多组件/框架,Spring就是最核心的内容之一,也包含 SpringMVC
  • 他们的关系大概是: Spring Boot > Spring > Spring MVC

SpringMVC-快速入门(构建项目)

(1)新建一个java项目

 (2)添加web框架

 点击确定后,可以看到项目目录下自动生成了一个web目录

 

(3)在WEB-INF目录下新建一个lib目录,存放jar包

 

(4)将需要使用的jar包复到lib目录下(所需jar包可在文章顶部获取)

 全选复制

粘贴到lib目录

(5)将所有jar包添加为库

 

(6)在src目录下创建spring容器文件

 

 (7)配置 web/WEB-INF/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"><!--配置前端控制器/中央控制器/分发控制器--><!--1.用户的请求都会经过它的处理--><servlet><!--servlet-name可以自己定义--><servlet-name>springDispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--配置属性contextConfigLocation,指定 DispatcherServlet 去操作的spring配置文件--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext-mvc.xml</param-value></init-param><!--在web项目启动时,就自动加载DispatcherServlet--><load-on-startup>1</load-on-startup></servlet><servlet-mapping><!--需要和上面的servlet-name保持一致--><servlet-name>springDispatcherServlet</servlet-name><!--1.这里配置的 url-pattern 是 / ,表示用户的请求都经过DispatcherServlet2.这样配置也支持 rest 风格的 url 请求--><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

(8)在web目录下创建 login.jsp 作为登录页面

<%--Created by IntelliJ IDEA.User: xxxDate: 2024-05-25Time: 20:50To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>登录</title>
</head>
<body>
<h3>登录页面</h3>
<%--
action="login" 表示的url 是 http://localhost:8080/springmvc/login
--%>
<form action="login">u:<input name="username" type="text">p:<input name="password" type="password"><input type="submit" value="登录">
</form>
</body>
</html>

(9)在src目录下创建包com.web,在该包下创建 UserServlet.java 作为控制器

package com.web;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;/*** 如果使用了SpringMVC框架,在一个类上标识@Controller* 表示将该类视为一个控制器,注入到容器中*/
@Controller
public class UserServlet {//编写方法,响应用户的请求/*** 1.login方法是用于响应用户的登录请求* 2.@RequestMapping(value = "/login") 表示给控制器的这个方法配了一个url映射* 当用户在浏览器输入 http://localhost:8080/web工程路径/login 就能访问到login()* 3.return "login_ok"; 表示返回结果给视图解析器(InternalResourceViewResolver)* ,视图解析器会根据配置,来决定跳转哪个页面*/@RequestMapping(value = "/login")public String login(){System.out.println("login ok....");return "login_ok";}
}

(10)在前面已经创建好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 https://www.springframework.org/schema/context/spring-context.xsd"><!--配置自动扫描包--><context:component-scan base-package="com.web"/><!--下面配置springMVC的视图解析器,比如我们的controller return 的是 login_ok那么要跳转的页面页面就是 /WEB-INF/pages/login_ok--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!--配置属性suffix(后缀) 和 prefix(前缀)--><property name="prefix" value="/WEB-INF/pages/"/><property name="suffix" value=".jsp"/></bean>
</beans>

(11)在web/WEB-INF目录下新建目录 pages,在pages目录新建一个jsp文件,login_ok.jsp

<%--Created by IntelliJ IDEA.User: 王伟俊Date: 2024-05-25Time: 21:11To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>登录成功</title>
</head>
<body>
<h1>恭喜 登录成功</h1>
</body>
</html>

(12)配置 tomcat 服务器

 

 

tomcat配置成功!

 (13)启动服务器

在浏览器输入网址http://localhost:8080/springmvc/login.jsp 

点击登录,显示如下页面,跳转成功!

4 细节说明

  •  重点学习如何搭建一个 springmvc 项目,初步理解 springmvc 工作流程
  • 这里的 UserServlet 需要注解成@Controller ,我们称为一个 Handler 处理器
  • UserServlet 指定 url 时,value可以省略
@RequestMapping("/login")
  • 关 于 SpringMVC DispatcherServlet 的 配 置 文 件 , 如 果 不 在 web.xml 指 定 applicationContext-mvc.xml, 默认在 /WEB-INF/springDispatcherServlet-servlet.xml 找这 个配置文件
http://www.lryc.cn/news/353023.html

相关文章:

  • 实现信号发生控制
  • 二叉树基于队列实现的操作详解
  • LabVIEW常用开发架构有哪些
  • 告别 Dart 中的 Future.wait([])
  • Cisco ASA防火墙抓包命令Capture
  • Linux网络编程:HTTP协议
  • HTTP 协议中 GET 和 POST 有什么区别?分别适用于什么场景?
  • talib 安装
  • echarts-树图、关系图、桑基图、日历图
  • 04Django项目基本运行逻辑及模板资源套用
  • 安徽大学数学科学学院教授陈昌昊
  • com.alibaba.fastjson.JSONObject循环给同一对象赋值会出现“$ref“:“$[0]“现象问题
  • 【C++】详解AVL树——平衡二叉搜索树
  • 《计算机网络微课堂》2-2 物理层下面的传输媒体
  • 【算法设计与分析】基于Go语言实现动态规划法解决TSP问题
  • Golang单元测试
  • mac下安装airflow
  • 二进制中1的个数c++
  • 【面试干货】数据库乐观锁,悲观锁的区别,怎么实现
  • 移动端仪表盘,支持更多组件
  • 科技产业园3D探秘:未来科技之城的奇幻之旅
  • 【Python搞定车载自动化测试】——Python基于Pytest框架实现UDS诊断自动化(含Python源码)
  • 探索SPI单线传输模式中时钟线与数据传输的简化
  • 使用FFmpeg推流实现在B站24小时点歌直播
  • 汽车防抱死制动系统ABS的单片机程序Proteus仿真设计
  • IOS开发者证书快捷申请
  • python 火焰检测
  • 栈——顺序存储
  • 军队仓库管理系统|DW-S301系统特点
  • MySQL和MongoDB数据库的区别