首页 > 其他分享 >SpringMVC

SpringMVC

时间:2024-11-20 22:44:16浏览次数:3  
标签:web name SpringMVC save public String

七、SpringMVC

(1)SpringMVC简介

  • SpringMVC概述
    • SpringMVC技术与Servlet技术功能等同,均属于web层开发技术,web程序大都基于三层架构实现

  • 如果所有的处理都交给Servlet来处理的话,所有的东西都耦合在一起,对后期的维护和扩展极为不利

  • 将后端服务器Servlet拆分成三层,分别是webservicedao
    • web层主要由servlet来处理,负责页面请求和数据的收集以及响应结果给前端

    • service层主要负责业务逻辑的处理

    • dao层主要负责数据的增删改查操作

  • servlet处理请求和数据的时候,存在的问题是一个servlet只能处理一个请求

  • 针对web层进行了优化,采用了MVC设计模式,将其设计为controllerviewModel
    • controller负责请求和数据的接收,接收后将其转发给service进行业务处理

    • service根据需要会调用dao对数据进行增删改查

    • dao把数据处理完后将结果交给service,service再交给controller

    • controller根据需求组装成Model和View,Model和View组合起来生成页面转发给前端浏览器

    • 这样做的好处就是controller可以处理多个请求,并对请求进行分发,执行不同的业务操作。

  • SpringMVC==主要==负责的就是
    • controller如何接收请求和数据

    • 如何将请求和数据转发给业务层

    • 如何将响应数据转换成json发回到前端

  • 定义
    • SpringMVC是一种基于Java实现MVC模型的轻量级Web框架

  • 优点
    • 使用简单、开发便捷(相比于Servlet)

    • 灵活性强

(2)Spring入门案例

  • Servlet是如何进行开发的?
    • 1.创建web工程(Maven结构)

    • 2.设置tomcat服务器,加载web工程(tomcat插件)

    • 3.导入坐标(Servlet)

    • 4.定义处理请求的功能类(UserServlet)

    @WebServlet("/user/save")
    public class UserSave extends HttpServlet {
        @Override
        public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,IOException{
            //1.接受请求参数
            String name = req.getParameter("name");
            System.out.println("servlet save name ==>"+name);
            //2.产生相应
            res.setContentType("text/json;charset=utf-8");
            PrintWriter writer = res.getWriter();
            writer.write("{'module':'servlet save'}");
        }
        @Override
        public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
            this.doGet(req,res);
        }
    }
    • 5.设置请求映射(配置映射关系) ==》xml

  • SpringMVC的实现流程?
    • 1.创建web工程(Maven结构)

    • 2.设置tomcat服务器,加载web工程(tomcat插件)

    • 3.导入坐标(SpringMVC+Servlet) ,同时添加tomcat插件

    <dependencies>
        <!--1.导入springmvc和servlet依赖-->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>5.3.19</version>
        </dependency>
        <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>servlet-api</artifactId>
          <version>2.3</version>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.tomcat.embed</groupId>
          <artifactId>tomcat-embed-core</artifactId>
          <version>9.0.83</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>SpringMVC_01_quickstart</finalName>
        <plugins>
          <plugin>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-api</artifactId>
            <version>7.0.37</version>
          </plugin>
        </plugins>
    </build>
    • 4.定义处理请求的功能类(UserController)

    @Controller
    @RequestMapping("/user")
    public class UserController {
        @RequestMapping("/save")
        public String save(String name){
            System.out.println("springmvc user save name==>"+name);
            return "{'info':'springmvc save'}";
        }
        @RequestMapping("/delete")
        public String delete(String name){
            System.out.println("springmvc user delete name==>"+name);
            return "{'info':'springmvc delete'}";
        }
        @RequestMapping("/update")
        public String update(String name){
            System.out.println("springmvc user update name==>"+name);
            return "{'info':'springmvc update'}";
        }
        @RequestMapping("/find")
        public String find(String name){
            System.out.println("user find name==>"+name);
            return "{'info':'springmvc find'}";
        }
    }
    • 5.设置请求映射(配置映射关系)==》配置类替代xml配置文件

    //springmvc配置类
    @Configuration
    @ComponentScan({"com.presentationLayer.controller"})
    public class SpringMVCConfig{...}
    //web容器配置类
    public class ServletContainerInitConfig extends AbstractDispatcherServletInitializer {
        //产生springMVC对象,本质上还是spring容器
        protected WebApplicationContext createServletApplicationContext() {
            //初始化web容器
            AnnotationConfigWebApplicationContext ctx =
                                            new AnnotationConfigWebApplicationContext();
            //加载springMVC配置类
            ctx.register(SpringMVCConfig.class);
            return ctx;
        }
    ​
        //设置由springmvc控制器处理的请求映射路径
        protected String[] getServletMappings() {
            return new String[]{"/"};
        }
    ​
        //加载spring配置类
        protected WebApplicationContext createRootApplicationContext() {
            return null;
        }
    }
    • 6.将SpringMVC设定加载到Tomcat容器中

    protected WebApplicationContext createServletApplicationContext() {
        //初始化web容器
        AnnotationConfigWebApplicationContext ctx = 
                                            new AnnotationConfigWebApplicationContext();
        //加载springMVC配置类
        ctx.register(SpringMVCConfig.class);
        return ctx;
    }
    • 7.启动tomcat服务器

    • 原因:由于业务有json数据类型的返回值,需要在方法体上使用@ResponseBody进行指定该方法返回一个json数据格式的返回值

    @RequestMapping("/save")
    //设置当前操作返回结果为指定json数据(本质上是一个字符串信息)
    @ResponseBody
    public String save(String name){
        System.out.println("springmvc user save name==>"+name);
        return "{'info':'springmvc save'}";
    }
    ...
    • 8.总结

      • 一次性工作

        • 创建工程,设置服务器,加载工程

        • 导入坐标 创建web容器启动类,加载SpringMVC配置,并设置SpringMVC请求拦截路径 SpringMVC核心配置类(设置配置类,扫描controller包,加载Controller控制器bean)

      • 多次工作

        • 定义处理请求的控制器类

        • 定义处理请求的控制器方法,并配置映射路径(@RequestMapping)与返回json数据 (@ResponseBody )

标签:web,name,SpringMVC,save,public,String
From: https://blog.csdn.net/weixin_63655614/article/details/143897673

相关文章

  • SpringMVC全面复习
    JavawebSpringMVCSpringMVC是Spring框架的一个模块,专门用于构建Web应用程序的模型-视图-控制器(MVC)架构。它通过清晰的分离关注点,简化了Web应用各部分的开发。SpringMVC提供了强大的绑定机制,能够将请求参数绑定到控制器方法的参数上,支持灵活的验证和数据转换。它还......
  • 【SpringMVC】基础入门实战(3)
     阿华代码,不是逆风,就是我疯你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你!!目录一:实践1:获取header(1)普通方法 (2)简洁方法获取Header2:返回静态页面(1)返回静态页面失败(2)Controller(3)@RestController和@Controller关联3:返回数据@ResponseBody4:返回HTM......
  • SpringBoot续+SpringMVC入门介绍
    文章目录1.BS/CS架构1.1基本概况说明1.2两个架构的对比2.web服务器3.修改端口号4.其他的项目创建和运行的方法5.SpringMVC入门5.1基本介绍5.2创建说明5.3修改国内源5.4注解和链接5.5两类请求的引入##get请求##post请求##设置请求类型1.BS/CS架构1.1基本概况说明......
  • SpringMVC 学习笔记
    概述SpringMVC中的MVC即模型-视图-控制器,该框架围绕一个DispatcherServlet改计而成,DispatcherServlet会把请求分发给各个处理器,并支持可配置的处理器映射和视图渲染等功能SpringMVC的工作流程如下所示:客户端发起HTTP请求:客户端将请求提交到DispatcherServlet寻找......
  • SpringMvc拦截器
     什么是拦截器?就是你在访问控制层去做业务前后都做一些事,你调用我之前我先看看你有没有这个权限拦截器和过滤器的区别:    归属不同:一个是Servlet技术一个是SpringMvc的技术    拦截的内容不同:过滤器Filter对所有访问进行加强,过滤器Interceptor仅仅针对Sp......
  • SpringMVC笔记 一万字
    此笔记来自于B站尚硅谷文章目录一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点二、HelloWorld1、开发环境2、创建maven工程a>添加web模块b>打包方式:warc>引入依赖3、配置web.xmla>默认配置方式b>扩展配置方式4、创建请求控制器5、创建sprin......
  • springmvc请求源码流程解析(二)
        Spring官网的MVC模块介绍:SpringWebMVC是基于ServletAPI构建的原始Web框架,从一开始就已包含在Spring框架中。正式名称“SpringWebMVC”来自其源模块的名称(spring-webmvc),但它通常被称为SpringMVC。    从Servlet到SpringMVC:    最典型的MVC就是J......
  • 【SpringMVC】web服务器,访问失败的问题,SpringMVC,建立连接,请求
    【web服务器】web服务器可以对http协议进行封装,程序员不需要直接对http协议进行操作(不需要去写复杂的网络编程代码),让web开发更加便捷,所以它也有「WWW服务器」的称呼常见的web服务器:Tomcat,Jboss,IIS等SpringBoot内置了Tomcat服务器,无需配置即可使用Tomcat默认端口是「8080」......
  • 【SpringMVC】传递json,获取url参数,上传文件
    【传递json数据】【json概念】一种轻量级数据交互格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,其本质上是字符串,负责在不同的语言中数据传递与交换json数据以字符串的形式体现【json字符串与Java对象互转】我们需要在pom.xml中增加对json的依赖【对象转jso......
  • springmvc-servlet.xml和web.xml文件的存放路径是哪里?项目添加到Tomcat上运行后就报错
        用eclipse写了一个简单的web项目,springmvc-servlet.xml文件和web.xml文件都配置好了,运行起来能看见hello的web页面,但是有一堆报错,不知道是什么原因                                     ......