[SpringMVC]上手案例

创建工程

新建项目,选择maven工程,原型(Archetype)选择maven的webapp ,注意名称头尾。会使用到tomcat(因为是javaWeb)。

新建的项目结构目录如下,如果没有java目录,需要自己手动创建,创建之后,记得将其标记为源代码目录。

创建配置类

使用配置类来替代xml配置。我们有两个配置文件需要使用配置类来进行替代:一个是spring的Bean配置xml文件,一个是web.xml。

springBean:

使用两个注解@Configuration、@ComponentScan

java 复制代码
package config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration//声明该类为配置类
@ComponentScan({"config","controller","entity"})//启用扫描,扫描指定包下的所有注解
public class SpringConf {
}

web.xml:

继承AbstractDispatcherServletInitializer 类,实现里面的三个抽象方法。

createServletApplicationContext():

注册用于管理DispatcherServlet 的专用子应用上下文,即web组件的上下文,如controller层

getServletMappings():

定义 DispatcherServlet 的 URL 映射,DispatcherServlet 是 Spring MVC 的核心,负责处理所有 HTTP 请求。

createRootApplicationContext:

创建根应用上下文,即父级上下文(web资源通常在次一级目录里,可以看前面创建项目时的目录结构),通常用于管理服务层(@Service)、数据层(@Repository)、数据源、事务等非 Web 组件。这里因为我不对其他的层做演示,所以该方法为空。

java 复制代码
package config;

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;

public class WebConfig extends AbstractDispatcherServletInitializer {
    @Override
    protected WebApplicationContext createServletApplicationContext() {
        AnnotationConfigWebApplicationContext a =
                new AnnotationConfigWebApplicationContext();
        a.register(SpringConfig.class);
        return a;
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    @Override
    protected WebApplicationContext createRootApplicationContext() {
        return null;
    }
}

创建控制器类

使用注解@Controller声明MVC的控制器类,告诉Spring容器该类负责处理HTTP请求。再使用@RequestMapping来绑定url。

示例:

java 复制代码
package controller;

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

@Controller
//给该controller类设置一个专属url,避免和其他控制器类里的方法的url冲突
@RequestMapping("/text")
public class Text {
    @RequestMapping("/test1")
    public String test1(@RequestParam("username") String username, @RequestParam("password") String password) {
        if(username.equals("liu") && password.equals("123")) {
            System.out.println("登录成功");
            return "success";
        }
        return "failure";
    }
}
相关推荐
大飞pkz几秒前
【设计模式】中介者模式
开发语言·设计模式·c#·中介者模式
tpoog2 分钟前
[C++项目框架]gflags和gtest的简单介绍
开发语言·c++
电子_咸鱼7 分钟前
LeetCode-hot100——验证二叉搜索树
开发语言·数据结构·c++·算法·leetcode·深度优先
tryCbest30 分钟前
Java实现文件下载
java·开发语言
Yunfeng Peng31 分钟前
1- 十大排序算法(选择排序、冒泡排序、插入排序)
java·算法·排序算法
暖木生晖33 分钟前
Javascript变量介绍
开发语言·javascript·ecmascript
心.c37 分钟前
JavaScript继承详讲
开发语言·javascript·ecmascript
立方世界43 分钟前
【Leaflet.js实战】地图标记与弹窗:从基础到高级的完整实现
开发语言·javascript·ecmascript
断剑zou天涯1 小时前
【算法笔记】二叉树递归解题套路及其应用
java·笔记·算法
武子康2 小时前
Java-136 深入浅出 MySQL Spring Boot @Transactional 使用指南:事务传播、隔离级别与异常回滚策略
java·数据库·spring boot·mysql·性能优化·系统架构·事务