• SSM学习45:设置请求映射路径,避免路径相同


    4.1.2 问题分析

    团队多人开发,每人设置不同的请求路径,冲突问题该如何解决?

    解决思路:为不同模块设置模块名作为请求路径前置

    对于Book模块的save,将其访问路径设置http://localhost/book/save

    对于User模块的save,将其访问路径设置http://localhost/user/save

    这样在同一个模块中出现命名冲突的情况就比较少了。

     

    创建SpringMVC项目

     目录

    补全目录结构 :添加java项结构

     

    导入jar包

    将pom.xml中多余的内容删除掉,再添加SpringMVC需要的依赖

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <modelVersion>4.0.0modelVersion>
    5. <groupId>com.itheimagroupId>
    6. <artifactId>SpringMVCartifactId>
    7. <version>1.0-SNAPSHOTversion>
    8. <packaging>warpackaging>
    9. <name>SpringMVC Maven Webappname>
    10. <url>http://www.example.comurl>
    11. <properties>
    12. <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    13. <maven.compiler.source>1.8maven.compiler.source>
    14. <maven.compiler.target>1.8maven.compiler.target>
    15. properties>
    16. <dependencies>
    17. <dependency>
    18. <groupId>junitgroupId>
    19. <artifactId>junitartifactId>
    20. <version>4.11version>
    21. <scope>testscope>
    22. dependency>
    23. <dependency>
    24. <groupId>javax.servletgroupId>
    25. <artifactId>javax.servlet-apiartifactId>
    26. <version>3.1.0version>
    27. <scope>providedscope>
    28. dependency>
    29. <dependency>
    30. <groupId>org.springframeworkgroupId>
    31. <artifactId>spring-webmvcartifactId>
    32. <version>5.2.1.RELEASEversion>
    33. dependency>
    34. dependencies>
    35. <build>
    36. <plugins>
    37. <plugin>
    38. <groupId>org.apache.tomcat.mavengroupId>
    39. <artifactId>tomcat7-maven-pluginartifactId>
    40. <version>2.1version>
    41. <configuration>
    42. <port>80port>
    43. <path>/path>
    44. configuration>
    45. plugin>
    46. plugins>
    47. build>
    48. project>

    添加tomcat运行快捷键

    创建配置类 SpringMvcConfig.class

    1. package com.itheima.config;
    2. import org.springframework.context.annotation.ComponentScan;
    3. import org.springframework.context.annotation.Configuration;
    4. @Configuration
    5. @ComponentScan("com.itheima.controller")
    6. public class SpringmvcConfig {
    7. }

    创建Controller类

    1. package com.itheima.controller;
    2. import org.springframework.stereotype.Controller;
    3. import org.springframework.web.bind.annotation.RequestMapping;
    4. import org.springframework.web.bind.annotation.ResponseBody;
    5. //@Controller:Springmvc的bean标志
    6. @Controller
    7. public class UserController {
    8. @RequestMapping("/save")
    9. @ResponseBody
    10. public String save(){
    11. System.out.println("郭浩康第一个Sprintmvc项目创建成功");
    12. return "{spring1save()...}";
    13. }
    14. }
    15. @Controller
    16. public class BookController {
    17. @RequestMapping("/save")
    18. @ResponseBody
    19. public String save(){
    20. System.out.println("book save ...");
    21. return "{'module':'book save'}";
    22. }
    23. }

    使用配置类ServletConfig替换web.xml

    将web.xml删除,换成ServletContainersInitConfig

    1. package com.itheima.config;
    2. import org.springframework.web.context.WebApplicationContext;
    3. import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
    4. import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;
    5. public class ServletConfig extends AbstractDispatcherServletInitializer {
    6. //加载Springmvc容器
    7. @Override
    8. protected WebApplicationContext createServletApplicationContext() {
    9. AnnotationConfigWebApplicationContext ctx=new AnnotationConfigWebApplicationContext();
    10. ctx.register(SpringmvcConfig.class);
    11. return ctx;
    12. }
    13. //设置请求处理
    14. @Override
    15. protected String[] getServletMappings() {
    16. return new String[]{"/"};
    17. }
    18. //加载Spring容器
    19. @Override
    20. protected WebApplicationContext createRootApplicationContext() {
    21. return null;
    22. }
    23. }

    运行结果

  • 相关阅读:
    【Hack The Box】windows练习-- Bastard
    任意版本JLink驱动官方下载指引
    【从零到一的Raspberry】数莓派踩坑实录(二) 内核编译配置和模块安装
    【项目方案】DUBBO 负载均衡策之略哈希一致的应用
    继承、抽象类、代码块
    Java I/O(4):AIO和NIO中的Selector
    驱动和嵌入式开发其他注意事项——Volatile 关键字
    基于Oracle数据库高校学生宿舍管理系统
    Linux进程间通信
    化合物的四种基本反应与氧化还原反应;化合物极性与非极性;亲核反应与亲电反应
  • 原文地址:https://blog.csdn.net/weixin_51330376/article/details/127661611