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

Java EE期末总结(第五章)

目录

一、Spring MVC工作原理

二、Spring MVC框架依赖 

三、Spring MVC项目配置

四、Spring MVC框架配置

1、注解驱动配置

2、组件扫描包配置

3、视图解析器配置( spring - mvc.xml )

4、静态资源映射配置

五、Spring MVC示例

文件结构

代码实现

1、pom.xml

2、web.xml

3、spring-mvc-config.xml

4、HelloController.java

5、hello.jsp

六、Spring MVC控制器

1、控制器定义

2、请求映射注解

3、控制器方法的返回值

4、数据绑定与参数接收


一、Spring MVC工作原理

如图所示,所有传入的请求都被作为前台控制器的 DispatcherServlet 拦截。
DispatcherServlet 从 XML 文件中获得一个处理程序映射的条目,并将请求转发给控制器。
控制器返回一个 ModelAndView 的对象。
DispatcherServlet 检查 XML 文件中的视图解析器条目并调用指定的视图组件。

二、Spring MVC框架依赖 

pom.xml

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>版本号</version>
</dependency>

三、Spring MVC项目配置

web.xml

<servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:config/springmvc</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

四、Spring MVC框架配置

1、注解驱动配置

<mvc:annotation-driven/>

2、组件扫描包配置

<context:component-scan base-package="com.example.controllers"/>

标签扫描包含控制器等组件的包,让 Spring 能自动发现和注册这些组件。 

3、视图解析器配置( spring - mvc.xml )

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
</bean>

这表示逻辑视图名对应的 JSP 文件在/WEB-INF/views/ 目录下,且以.jsp 为后缀。

4、静态资源映射配置

<mvc:resources location="/resources/" mapping="/resources/**"/>

表示将/resources/ 目录下的静态资源映射到/resources/** 路径供访问。

五、Spring MVC示例

文件结构

spring-mvc-simple-example
├── src
│   └── main
│       ├── java
│       │   └── com
│       │       └── example
│       │           └── controller
│       │               └── HelloController.java
│       ├── resources
│       │   └── spring-mvc-config.xml
│       └── webapp
│           └── WEB-INF
│               ├── web.xml
│               └── views
│                   └── hello.jsp
└── pom.xml

代码实现

1、pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>spring-mvc-simple-example</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <dependencies>
        <!-- Spring Web MVC -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.28</version>
        </dependency>
        <!-- Servlet API -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <port>8080</port>
                    <path>/</path>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
2、web.xml
<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>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-mvc-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>
3、spring-mvc-config.xml
<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.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context.xsd
           http://www.springframework.org/schema/mvc
           http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- 开启组件扫描 -->
    <context:component-scan base-package="com.example.controller"/>

    <!-- 开启注解驱动 -->
    <mvc:annotation-driven/>

    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>
4、HelloController.java
package com.example.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {

    @RequestMapping("/hello")
    @ResponseBody
    public String hello() {
        return "Hello, Spring MVC!";
    }
}
5、hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title>Hello Spring MVC</title>
</head>
<body>
    <h1>Hello, Spring MVC!</h1>
</body>
</html>

六、Spring MVC控制器

1、控制器定义

        在 Spring MVC 中,通过在 Java 类上添加@Controller注解来标识该类为一个控制器。

package com.example.controller;

import org.springframework.stereotype.Controller;

@Controller
public class UserController {
    // 控制器方法将在这里定义
}

2、请求映射注解

        /list方法处理/users/list的请求,/detail/{id}方法处理类似/users/detail/1这样带有路径参数的请求,@PathVariable注解用于将路径中的参数值绑定到方法的参数上。 

@Controller
@RequestMapping("/users")
public class UserController {

    @RequestMapping("/list")
    public String listUsers() {
        // 处理获取用户列表的业务逻辑
        return "userList"; // 返回逻辑视图名
    }

    @RequestMapping("/detail/{id}")
    public String userDetail(@PathVariable("id") int userId) {
        // 根据userId获取用户详情的业务逻辑
        return "userDetail";
    }
}

3、控制器方法的返回值

4、数据绑定与参数接收

相关文章:

  • STM32 HAL DHT11驱动程序
  • LeetCode --- 444 周赛
  • 【C++初学】课后作业汇总复习(一)概述、输入输出、类的入门——理解封装
  • KTransformers安装笔记 利用docker安装KTransformers
  • 系统分析师(六)-- 计算机网络
  • 留守儿童|基于SprinBoot+vue的留守儿童爱心网站(源码+数据库+文档)
  • 我又叕叕叕更新了~纯手工编写C++画图,有注释~
  • 【实证分析】数智化转型对制造企业全要素生产率的影响及机制探究(1999-2023年)
  • spring security oauth2.0 使用GitHub
  • KiActivateWaiterQueue函数和Queue->Header.WaitListHead队列等待列表的关系
  • 【第三章】13-常用模块1-ngx_http_upstream_module
  • Introduction To Raymarching
  • AI结合VBA提升EXCEL办公效率尝试
  • SQL:Relationship(关系)
  • 类似东郊到家的上门按摩预约服务系统小程序APP源码全开源
  • 3.5 字典补充
  • Google 官方提示工程 (Prompt Engineering)白皮书 总结
  • ESP32与STM32哪种更适合初学者?
  • Qt触摸屏隐藏鼠标指针
  • Python数组(array)学习之旅:数据结构的奇妙冒险
  • 一级做爰片a视频网站试看/百度网址大全怎么设为主页
  • 最新衡水今日头条/app优化
  • 免费推广网站怎么做/小吴seo博客
  • 建筑劳务东莞网站建设/seo排名点击器曝光行者seo
  • 彩票站自己做网站/360指数
  • 长寿时代的企业解决方案/seo中心