• SpringMVC入门第一篇


    三层架构

    • 表现层:web层,用来和客户端进行数据交互的。表现层一般采用MVC的设计模式
    • 业务层:处理具体的业务逻辑
    • 持久层:用来操作数据库

    MVC模型

    • MVC全名是Model View Controller模型视图控制器,每个部分各司其职
    • Model:数据模型,JavaBean的类,用来进行数据封装
    • View:指Jsp、HTML用来展示数据给用户
    • Controller:用来接收用户的请求,整个流程的控制器。进行数据的检验

    SpringMVC的概述

    • 是一种基于Java实现的MVC设计模型的请求驱动类型的轻量级WEB框架。
    • Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。
    • 使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts2等。

    SpringMVC在三层架构中的位置

      表现层

    SpringMVC入门案例

    • 将index.jsp 页面的内容更改为

      <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>入门程序</title> </head> <body> ​ <%--超链接--%> ​ <h3>入门</h3> ​ <a href="/Springmvc.do" >springmvc入门</a> ​ </body> </html>

    • 创建一个maven的工程,引入对应的依赖坐标
       1 <!-- 版本锁定 -->
       2     <properties>
       3         <spring.version>5.0.2.RELEASE</spring.version>
       4     </properties>
       5     
       6     <dependencies>
       7         <dependency>
       8             <groupId>org.springframework</groupId>
       9             <artifactId>spring-context</artifactId>
      10             <version>${spring.version}</version>
      11         </dependency>
      12 ​
      13         <dependency>
      14             <groupId>org.springframework</groupId>
      15             <artifactId>spring-web</artifactId>
      16             <version>${spring.version}</version>
      17         </dependency>
      18 ​
      19         <dependency>
      20             <groupId>org.springframework</groupId>
      21             <artifactId>spring-webmvc</artifactId>
      22             <version>${spring.version}</version>
      23         </dependency>
      24 ​
      25         <dependency>
      26             <groupId>javax.servlet</groupId>
      27             <artifactId>servlet-api</artifactId>
      28             <version>2.5</version>
      29             <scope>provided</scope>
      30         </dependency>
      31 ​
      32         <dependency>
      33             <groupId>javax.servlet.jsp</groupId>
      34             <artifactId>jsp-api</artifactId>
      35             <version>2.0</version>
      36             <scope>provided</scope>
      37         </dependency>
      38     </dependencies>
    • 在新建一个successful.jsp 页面
    • 1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
      2 <html>
      3 <head>
      4     <title>Springmvc successful</title>
      5 </head>
      6 <body>
      7     <h2>springmvc successful</h2>
      8 </body>
      9 </html>
    • 编写一个Controller类和方法
       1 package zh.stuspringmvc;
       2 
       3 import org.springframework.stereotype.Controller;
       4 import org.springframework.web.bind.annotation.RequestMapping;
       5 
       6 //把当前的类交给ioc容器管理
       7 @Controller
       8 public class SpringMVCController {
       9 
      10 //    配置映射的配置
      11     @RequestMapping(path="/Springmvc.do")
      12     public String hello(){
      13 
      14 //        跳转的jsp页面,默认使用的是请求转发
      15 //        返回到successful界面
      16          return "/WEB-INF/pages/successful";
      17     }
      18 }
    • 配置核心的控制器(配置DispatcherServlet)
       1 <!DOCTYPE web-app PUBLIC
       2  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
       3  "http://java.sun.com/dtd/web-app_2_3.dtd" >
       4 
       5 <web-app>
       6   <display-name>Archetype Created Web Application</display-name>
       7 
       8   <!--配置前端控制器-->
       9   <servlet>
      10     <servlet-name>dispatcherServlet</servlet-name>
      11     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      12     <!--加载springmvc.xml配置文件,配置的是Spring配置-->
      13     <init-param>
      14       <param-name>contextConfigLocation</param-name>
      15       <param-value>classpath:springmvc.xml</param-value>
      16     </init-param>
      17     <!--配置启动加载-->
      18     <load-on-startup>1</load-on-startup>
      19   </servlet>
      20   <!--<url-pattern>*.do</url-pattern>
      21       只处理以.do结尾的请求
      22       如果是 "/" 表示:处理所有的请求
      23   -->
      24   <servlet-mapping>
      25     <servlet-name>dispatcherServlet</servlet-name>
      26     <url-pattern>*.do</url-pattern>
      27   </servlet-mapping>
      28 </web-app>

       在web.xml中配置文件的核心控制器

    • 在resource目录下配置springmvc.xml的配置文件
       1 <?xml version="1.0" encoding="UTF-8"?>
       2 <beans xmlns="http://www.springframework.org/schema/beans"
       3        xmlns:mvc="http://www.springframework.org/schema/mvc"
       4        xmlns:context="http://www.springframework.org/schema/context"
       5        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       6        xsi:schemaLocation="
       7         http://www.springframework.org/schema/beans
       8         http://www.springframework.org/schema/beans/spring-beans.xsd
       9         http://www.springframework.org/schema/mvc
      10         http://www.springframework.org/schema/mvc/spring-mvc.xsd
      11         http://www.springframework.org/schema/context
      12         http://www.springframework.org/schema/context/spring-context.xsd">
      13 
      14     <!--配置创建Spring容器创建的时候要扫描的包-->
      15     <context:component-scan base-package="zh.stuspringmvc"></context:component-scan>
      16 
      17     <!--配置试图解析器-->
      18     <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      19         <property name="prefix" value="/WEB-INF/pages/"></property>
      20         <property name="suffix" value="*.jsp"></property>
      21     </bean>
      22 
      23     <!--配置Spring开启注解mvc的支持
      24     <mvc:annotation-driven></mvc:annotation-driven>-->
      25 </beans>

    最后启动配置过的tomcat进行测试即可

    过程分析

    •  启动Tomcat服务器的时候,因为创建了load-on-startup标签,所以会创建DispatcherServlet的对象,所以会加载resource目录下的springmvc.xml文件。
    • 在springmvc.xml中开启了注解扫描,Controller的对象就会被加载
    • 从index.jsp发送请求,请求会先到达DispatcherServlet核心控制器,根据注解@RequestMapping找到具体的执行方法
    • 根据方法的返回值,在springmvc.xml文件中配置的视图解析器,查找指定的jsp文件
    • Tomcat服务器渲染页面,给出相应的响应。
  • 相关阅读:
    Python模糊查询本地文件夹去除文件后缀(7行代码)
    Python正则表达式
    python的logging模块
    Python中hashlib模块
    Python的os模块
    项目初始化mysql建库和授权
    Add correct host key in /root/.ssh/known_hosts to get rid of this message
    高中典型的等比数学题
    autoenv的使用方法
    celery任务进程关闭
  • 原文地址:https://www.cnblogs.com/LBJLAKERS/p/12299796.html
Copyright © 2020-2023  润新知