【Spring MVC】(一)体系结构及开发环境搭建2

简介: 【Spring MVC】(一)体系结构及开发环境搭建2

Spring MVC的体系结构


DispatcherServlet(前端控制器)

Spring MVC最核心的类

web.xml中配置


Handler(处理器):对应MVC中C(Controller层)

     类型:Object

作用:实际处理请求

标注了@RequestMapping的所有方法都可以看作是一个Handler


ModelAndView

逻辑视图名

模型对象


核心组件


HandlerMapping(处理器映射)

BeanNameUrlHandlerMapping(默认)

将请求URL映射到同名的控制器Bean上

DefaultAnnotationHandlerMapping

将请求映射到标注@RequestMapping注解的控制器和处理方法上

RequestMappingHandlerMapping

HandlerAdapter(适配器)

AnnotationMethodHandlerAdapter

RequestMappingHandlerAdapter

ViewResolver(视图解析器)

InternalResourceView


20191108084358697.png

HelloSpringMVC


1、引入JAR包


在“WEB-INF”目录下,建立“lib”目录,导入 Spring MVC 框架的相关依赖包,同时,在“External Libraries”中也导入相同的 jar 包,其中对于“lib”目录,我们直接把 jar 包复制过来就可以;但是对于“External Libraries”,我们就得通过“Project Structure”进行导入啦。至于需要导入的 jar 包,在我们先前下载的“Spring MVC框架的各种依赖包”中都可以找到,下面附上需要导入的 jar 名称:

spring-aop-3.2.2.jar                        AOP
spring-aspects-3.2.2.jar                    AOP
spring-beans-3.2.2.jar                      核心包
spring-context-3.2.2.jar                    扩展包
spring-context-support-3.2.2.jar            对扩展包支持
spring-core-3.2.2.jar                       核心包
spring-expression-3.2.2.jar spring          表达式
spring-web-3.2.2.jar                        web b/s
spring-webmvc-3.2.2.jar                     springmvc
com.springsource.org.aopalliance-1.0.0.jar                  AOP
com.springsource.org.apache.commons.logging-1.1.1.jar       通用日志


2、配置web.xml


servlet

DispatcherServlet(替代所有的servlet) -->主要就是配置 DispatcherServlet,即核心分发器

init-param: classpath:springmvc-servlet.xml

对应的mapping 指定的url-pattern–> / 【不要用/*,会404】

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         id="WebApp_ID" version="3.0">
  <servlet>
    <servlet-name>SpringMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--关联SpringMVC配置文件-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc-servlet.xml</param-value>
    </init-param>
    <!--这个东西要和服务器一起启动;
    load-on-startup,启动级别,数字越小级别越高!-->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <!--所有请求都会经过这个DispatcherServlet请求分发器-->
  <!--
  /和/*的区别:
  < url-pattern > / </ url-pattern > 不会匹配到.jsp, 只针对我们编写的请求;
    即:.jsp不会进入spring的 DispatcherServlet类 。
  < url-pattern > /* </ url-pattern > 会匹配*.jsp,
    会出现返回jsp视图时再次进入spring的DispatcherServlet 类,导致找不到对应的controller所以报404错。
  -->
  <servlet-mapping>
    <servlet-name>SpringMVC</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <!--欢迎页面-->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>


3、编写SpringMVC的配置文件


1.让IOC的注解生效

2.静态资源过滤 :HTML,JS,CSS,图片 , 视频 …

3.MVC的注解驱动

4.配置视图解析器

<?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:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       https://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/mvc
       https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!--扫描指定包下的注解,让指定的类能够被IOC容器管理-->
    <context:component-scan base-package="controller"/>
    <!--静态资源过滤-->
    <mvc:default-servlet-handler/>
    <!--annotation-driven:支持MVC注解驱动 -->
    <mvc:annotation-driven/>
    <!--
    视图解析器
    作用;方便统一管理
    -->
    <bean id="InternalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>


4.编写Controller类


需要给类加注解 :@Controller , 可以让IOC容器管理 , 等价于Bean


请求映射的路径 :@RequestMapping (“路径”),如果类上有就先写类的,在写方法的


Model :模型传递参数


return “hello”:它会去视图解析中拼接前缀和后缀来找到对应的视图


@Controller
@RequestMapping("/HelloController")
public class HelloWorldController {
    //请求映射("路径")
    @RequestMapping("/hello")
    public String hi(Model model){
        model.addAttribute("msg","Hello,SpringMVC");
        System.out.println("进入HELLO");
        return "hello";  // WEB-INF/jsp/hello.jsp
    }
}


5.视图层


注意视图的位置,要和视图解析器对应 web-inf / jsp , 为什么需要在web-inf路径下 , 因为这个路径下的东西用户无法直接访问,更加安全


可以通过EL表达式取出Model中存放的值,或者对象

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>SpringMVC</title>
</head>
<body>
   ${msg}
</body>
</html>


6.测试


配置Tomcat , 设置项目名 , 开启服务器 , 访问对应的请求路径


20191108084358697.png


流程总结


1.建立web项目


2.导包


3.编写web.xml


4.编写springmvc的配置文件 【servletname】-servlet.xml


5.编写控制类


6.编写视图层


7.测试

目录
相关文章
|
6天前
|
前端开发 Java 测试技术
Java一分钟之Spring MVC:构建Web应用
【5月更文挑战第15天】Spring MVC是Spring框架的Web应用模块,基于MVC模式实现业务、数据和UI解耦。常见问题包括:配置DispatcherServlet、Controller映射错误、视图解析未设置、Model数据传递遗漏、异常处理未配置、依赖注入缺失和忽视单元测试。解决这些问题可提升代码质量和应用性能。注意配置`web.xml`、`@RequestMapping`、`ViewResolver`、`Model`、`@ExceptionHandler`、`@Autowired`,并编写测试用例。
293 3
|
4天前
|
前端开发 Java 关系型数据库
使用IDEA搭建一个Spring + AOP (权限管理 ) + Spring MVC
使用IDEA搭建一个Spring + AOP (权限管理 ) + Spring MVC
|
6天前
|
JSON 前端开发 Java
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解(下)
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解
7 0
|
6天前
|
JSON 前端开发 Java
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解(上)
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解
7 0
|
6天前
|
设计模式 前端开发 Java
初识Spring MVC
初识Spring MVC
14 0
|
6天前
|
前端开发 Java 应用服务中间件
Spring MVC框架概述
Spring MVC 是一个基于Java的轻量级Web框架,采用MVC设计模型实现请求驱动的松耦合应用开发。框架包括DispatcherServlet、HandlerMapping、Handler、HandlerAdapter、ViewResolver核心组件。DispatcherServlet协调这些组件处理HTTP请求和响应,Controller处理业务逻辑,Model封装数据,View负责渲染。通过注解@Controller、@RequestMapping等简化开发,支持RESTful请求。Spring MVC具有清晰的角色分配、Spring框架集成、多种视图技术支持以及异常处理等优点。
20 1
|
6天前
|
监控 前端开发 Java
SpringBoot与SpringMVC有哪些区别?
SpringBoot和SpringMVC是Java开发中常用的两个框架,它们都是由Spring框架所提供的,但在功能和使用方式上有着一些区别。
24 2
|
6天前
|
数据采集 前端开发 Java
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
24 3
|
6天前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
49 0
|
6天前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
23 0