您的位置:

Spring MVC笔记

一、Spring vs Spring MVC

Spring是一个轻量级的Java开源框架,使用它可以方便地处理各种应用程序的技术问题,同时该框架也被广泛应用于企业级开发。

Spring MVC是Spring框架的一个扩展,用于更方便地开发Web应用程序。它提供了一个分离的MVC模型,丰富的数据验证、处理和视图渲染功能。

二、Spring MVC的工作流程图

  -----------                                 --------------
 |           |        HTTP Request / Response   |            |
 | Dispatcher|-------------------------------->| Controllers|
 |  Servlet  |                                 |            |
  -----------                                 --------------
        |                                                   |
        |                                                   |
        |                                                   |
  -----------                                 --------------
 |           |        HTTP Request / Response   |    Views   |
 |   View    |<--------------------------------|  Resolver |
 |  Resolver |                                 |            |
  -----------                                 --------------

三、Spring MVC的三大特性

1. MVC架构:Spring MVC使用MVC(模型—视图—控制器)设计模式,它使代码更加模块化,易于维护和测试。

2. 映射和注解:Spring MVC使用基于注解的请求处理器方法,从而更容易地将请求映射到处理器方法上,不需要使用XML文件进行配置。

3. 数据绑定和验证:Spring MVC提供了强大的表单处理功能,可以将表单数据自动绑定到JavaBean中,同时还可以进行数据验证和格式化。

四、简述Spring MVC的工作流程

当用户请求到达Dispatcher Servlet时,Dispatcher Servlet将请求分派给相应的控制器(Controller)进行处理。控制器根据业务逻辑调用服务层(Service)获取数据,并把结果返回给视图层(View)。视图层使用模板引擎进行动态页面的生成,并将结果返回给用户。

五、Spring MVC框架搭建及详解

1. 创建Maven项目

2. 添加Spring MVC相关的依赖

3. 编写Spring MVC配置文件,如dispatcher-servlet.xml

4. 编写Controller类,并添加@RequestMapping注解

5. 编写视图逻辑

配置文件示例:

<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.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

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

<mvc:annotation-driven />

</beans>

Controller类示例:

package com.example.controller;

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

@Controller
public class HelloWorldController {

    @RequestMapping("/hello")
    public String hello() {
        return "hello";
    }
}

六、Spring MVC框架介绍

Spring MVC框架是一个MVC风格的Web应用程序框架,它使用Spring思想来开发Web应用。

Spring MVC框架具有以下优点:

1. 即插即用:Spring MVC框架提供了许多可重用的组件,可以方便地进行扩展。

2. 分离关注点:Spring MVC框架的MVC模型使应用程序各个部分之间的关注点分离得非常明显。

3. 易于测试:Spring MVC框架的使用使得测试更加容易,因为它们是松耦合的,而且不依赖于环境或硬件限制。

七、Spring MVC笔试题

题目:Spring MVC框架中,@RequestMapping注解的作用是什么?

答案:@RequestMapping注解用于将控制器方法映射到请求路径或URL。

八、Spring MVC目录

Spring MVC的目录结构一般如下:

src/main/java/
    com.example.controller/
        HomeController.java
    com.example.model/
        UserModel.java
    com.example.service/
        UserService.java
src/main/webapp/
    WEB-INF/
        jsp/
            home.jsp
        dispatcher-servlet.xml

九、Spring MVC知识点

1. 配置Dispatcher Servlet:在web.xml文件中配置Dispatcher Servlet。

2. 使用@RequestMapping注解:使用@RequestMapping注解将控制器方法映射到请求路径或URL。

3. 表单数据绑定:可以使用@ModelAttribute注解来绑定表单数据到JavaBean中。

4. 重定向和转发:Spring MVC提供了重定向和转发两种方式,可以使用它们来导航到不同的页面。

十、Spring MVC登录案例

1. 配置文件:

<mvc:annotation-driven />

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

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

2. 登录页面:

<form:form method="post" action="login" modelAttribute="user">
    <form:input path="username" />
    <form:password path="password" />
    <input type="submit" value="Login" />
</form:form>

3. 控制器:

@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(@ModelAttribute("user") User user, Model model) {
    if (user.getUsername().equals("admin") && user.getPassword().equals("password")) {
        model.addAttribute("username", user.getUsername());
        return "success";
    } else {
        model.addAttribute("error", "Invalid login credentials");
        return "login";
    }
}

4. 成功页面:

Welcome ${username}

Logout

以上便是关于Spring MVC的基本知识点和相关案例的介绍,希望对初学者有所帮助。