• Spring中的监听器与SpringMVC简述


    目录

    Spring中的监听器

    SpringMVC概述

    web层的框架完成的相应的操作图示

    SpringMVC开发使用步骤

    SpringMVC流程图示

     


    Spring中的监听器

    前一篇写出的手动实现的监听器,Spring提供了一个监听器ContextLoderListener就是对上述功能的封装,该监听器内部加载Spring配置文件,创建应用上下文对象,并存储到ServletContext域中,提供一个客户亿工具WebApplicationContextUtils供使用者获得上下文对象

    要使用监听器,需要做两件事

    ①:在web.xml中配置ContextLoaderListener监听器(导入spring-web坐标)

    ②:使用WebApplicationContextUtils获得应用上下文对象  ApplicationContext              

    在pim.xml中导入坐标

    1. <dependency>
    2. <groupId>org.springframework</groupId>
    3. <artifactId>spring-web</artifactId>
    4. <version>5.0.5.RELEASE</version>
    5. </dependency>

    web.xml中

    1. <!--全局初始化参数-->
    2. <context-param>
    3. <!--name和value为任意 -->
    4. <param-name>ContextConfigLocation</param-name>
    5. <param-value>classpath:applicationContext.xml</param-value>
    6. </context-param>
    7. <!--配置监听器-->
    8. <listener>
    9. <!-- <listener-class>com.Listener.ContextLoaderListener</listener-class>-->
    10. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    11. </listener>

    userServlet类中,使用WebApplicationUtils获得上下文

    1. @WebServlet("/user")
    2. public class UserServlet extends HttpServlet {
    3. @Override
    4. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    5. // ApplicationContext app= new ClassPathXmlApplicationContext("applicationContext.xml");
    6. ServletContext servletContext = req.getServletContext();
    7. //ApplicationContext app = (ApplicationContext) servletContext.getAttribute("app");
    8. //变动处
    9. //ApplicationContext app = WebApplicationContextUtils.getApplicationContext(servletContext);
    10. WebApplicationContext app = WebApplicationContextUtils.getWebApplicationContext(servletContext);
    11. UserService userService=app.getBean(UserService.class);
    12. }
    13. }

    这样就成功使用了spring给我们提供的监听器。

    SpringMVC概述

    SpringMVC(M:Model模型,V:views视图,C:Controller控制器)是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow中。

    SpringMVC已经成为目前最主流的MVC框架之一,并且随着Spring3.0的发布,全面超越Struct2,成为最优秀的MVC框架,他通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口,同时他还支持RESTful编程分格的请求

    web层的框架完成的相应的操作图示

     SpringMVC的核心是前端控制器,SpringMVC使用Servlet充当前端控制器

    SpringMVC开发使用步骤

    需求::客户端发起请求,服务器接受请求,执行逻辑并进行视图跳转。

    1、先导入SpringMVC的相关坐标

    2、配置SpringMVC核心控制器DispathcerServlet

    3、创建Controller类和视图界面

    4、使用注解配置Controller类中业务方法的映射地址

    5、配置SpringMVC核心文件spring-mvc.xml

    6、客户端发起请求测试

    ②、导入坐标

    1. <dependency>
    2. <groupId>org.springframework</groupId>
    3. <artifactId>spring-webmvc</artifactId>
    4. <version>5.0.5.RELEASE</version>
    5. </dependency>

    ②、配置控制器

    1. <!-- 配置spring的前端控制器 -->
    2. <servlet>
    3. <servlet-name>DispatcherServlet</servlet-name>
    4. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    5. <!-- 设置控制器服务器开始就启动,没有设置则第一次访问才创建对象-->
    6. <load-on-startup>1</load-on-startup>
    7. </servlet>
    8. <servlet-mapping>
    9. <servlet-name>DispatcherServlet</servlet-name>
    10. <url-pattern>/</url-pattern>
    11. </servlet-mapping>

    ③、创建controller视图和视图界面④、使用注解映射地址

    创建一个controller包,包下创建一个userController类,类中

    1. package com.controller;
    2. import org.springframework.stereotype.Controller;
    3. import org.springframework.web.bind.annotation.RequestMapping;
    4. //配置类,使用注解把这个类放到容器中
    5. @Controller
    6. public class userController {
    7. //用注解给这个方法请求映射某个地址
    8. @RequestMapping("/quick")
    9. public String save(){
    10. System.out.println("controller save running");
    11. //就会跳转到KCandZH.jsp这个页面上去
    12. return "KCandZH.jsp";
    13. }
    14. }

    在webapp下创建一个KCandZH.jsp页面

    1. <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
    2. <%
    3. String path = request.getContextPath();
    4. String basepath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
    5. %>
    6. <html>
    7. <head>
    8. <base href="<%=basepath %>"/>
    9. <meta charset="utf-8"/>
    10. <title>Insert title here</title>
    11. </head>
    12. <body>
    13. kCandZH forever
    14. </body>
    15. </html>

    ⑤、配置核心spring-mvc.xml(web.xml中)

    1. <!-- 配置spring的前端控制器 -->
    2. <servlet>
    3. <servlet-name>DispatcherServlet</servlet-name>
    4. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    5. <!-- 设置配置SpringMVC核心文件spring-mvc.xml-->
    6. <init-param>
    7. <param-name>contextConfigLocation</param-name>
    8. <param-value>classpath:spring-mvc.xml</param-value>
    9. </init-param>
    10. <!-- 设置控制器服务器开始就启动,没有设置则第一次访问才创建对象-->
    11. <load-on-startup>1</load-on-startup>
    12. </servlet>
    13. <servlet-mapping>
    14. <servlet-name>DispatcherServlet</servlet-name>
    15. <url-pattern>/</url-pattern>
    16. </servlet-mapping>

    在resource下写一个spring-mvc.xml用于组件扫描

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    6. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd" >
    7. <!--controller的组件扫描 -->
    8. <context:component-scan base-package="com.controller"/>
    9. </beans>

    SpringMVC流程图示

  • 相关阅读:
    智能家居涉及到的12个物联网传感器!
    镉系量子点 CdSe/ZnS QDs,硒化镉/硫化锌量子点(油溶性)
    高德地图开发实战案例:实现信息弹出框的富文本展示效果
    【图书管理系统】附源码+教程
    ABAP语法基础
    2023年09月在线IDE流行度最新排名
    MySQL (十四) 两阶段提交
    【MySQL】 Java的JDBC编程
    临沂ISO食品安全管理体系认证
    R语言:在R中使用SQL
  • 原文地址:https://blog.csdn.net/weixin_60719453/article/details/125636826