SpringMVC初步整合

三层架构
请求流程
导入的包
配置文件

三层架构

        C/S 客户端 服务器架构

        B/S 浏览器 服务器架构 java开发基本上都是B/S

        三层架构

        表现层  WEB层 与客户端数据交互

        业务层 Service 业务逻辑

        持久层 操作数据库

MVC设计

        即模型视图控制器

        Model 数据 javaBean 数据封装 与数据库直接交互 读写数据

        View  前端的展示  JSP HTML展示数据 与用户交互

        Controller 接受用户请求 用来控制

        模型 视图 控制

        用来解耦

请求流程

        

        

1 用户发送请求到前端控制器DispatcherServlet 

2 调用处理器映射器,映射器根据url找到具体处理器

3根据方法找到处理器适配器调用处理器

4 执行处理器 Controller 也叫后端控制器

5 Controller执行完成返回ModelAndView

6 返回给分发器 然后根据View找到那个视图 视图解析器

总之是这样的

请求到达前端控制器 然后通过映射器跟适配器对应的url 跟方法找到具体的Controller

执行之后返回ModelAndView

最后视图解析器解析该返回内容的View解析到前端 

通过Model到达View层 然后返回response

XML方式配置

导依赖包

        我在之前的笔记中总结了Mybatis 跟 Spring的依赖包

        现在我们只介绍要引入的MVC 使用的

        

 <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.3</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.9.3</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.9.3</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.47</version>
    </dependency>

      <!--spring mvc-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${spring.version}</version>
    </dependency>

web.xml文件

<?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">
    <display-name>SpringMVC_01_Basic</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>

    <servlet>
        <!-- 设置所有请求拦截到分发器
                         第一种 如果SpringMVC的配置文件,和web.xml在同一个目录
                         比如 MVC配置文件名字叫 basic-servlet.xml
                         只需要把servlet-name的值 设置为basic就可以,
                         但是 MVC配置文件的名字必须是xxx-servlet.xml的格式 -->
        <servlet-name>basic</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 指定配置文件-->
        <!-- <init-param> -->
        <!-- <param-name>contextConfigLocation</param-name> -->
        <!-- 可以放在任何地方 -->
        <!-- <param-value>/a/b/c/d/xxxxxxxxx.xml</param-value> -->
        <!-- 放在src下 -->
        <!-- <param-value>classpath:xxxxxxxxx.xml</param-value> -->
        <!-- </init-param> -->
        <!-- 项目启动就会加载这个servlet -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>basic</servlet-name>
        <url-pattern>/</url-pattern>
        <!--
                         /* 会拦截jsp文件
                         / 不会拦截jsp
         -->
    </servlet-mapping>
</web-app>

创建basic-servlet.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"
       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-4.2.xsd
                  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
                  http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">
    <!-- 使用XML进行映射
            MVC框架基本两个点
                              1 url怎么映射进去进行处理
                              2 处理完如何找到视图
    -->
    <!-- 处理映射器配置-->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    <!-- 创建映射,配置映射器,name必须是 / 打头-->
    <bean name="/w" class="com.tledu.mySpringmvc_01.controller.TestController"/>

    <!-- 视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--        给你的返回的ModelAndView 前后分别拼接 这样找到指定的jsp页面-->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

测试

        新建一个controller类 类名跟上面配置文件bean标签的名一样

public class TestController   extends AbstractController {
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest req, HttpServletResponse resp) throws Exception {
        System.out.println("我看完病了");
        return new ModelAndView("userList");
    }
}

由于是xml方式没有用注解那么 我们需要继承AbstractController

然后覆写该方法

返回ModelAndView     userList会被上面的配置解析器解析然后拼接为一个前端页面路径

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值