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

安全协议书 网站开发公司网站建设开发外包公司

安全协议书 网站开发公司,网站建设开发外包公司,香港免费网站,腾讯公司Spring_MVC 快速入门指南 一、Spring_MVC 简介 1. 什么是 Spring_MVC? Spring_MVC 是 Spring 框架的一个模块,用于构建 Web 应用程序。它基于 MVC(Model-View-Controller)设计模式,将应用程序分为模型(M…

Spring_MVC 快速入门指南

一、Spring_MVC 简介

1. 什么是 Spring_MVC?

Spring_MVC 是 Spring 框架的一个模块,用于构建 Web 应用程序。它基于 MVC(Model-View-Controller)设计模式,将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个部分,使代码结构更加清晰,便于维护和扩展。

2. Spring_MVC 的优势

清晰的分离:将业务逻辑、数据和视图分离,使代码更易于管理和测试。

灵活的配置:支持多种配置方式,包括 XML 和注解。

丰富的功能:提供了许多内置功能,如数据绑定、类型转换、国际化等。

与其他 Spring 模块集成:可以无缝地与其他 Spring 模块(如 Spring Data、Spring Security)集成。

二、创建 Spring_MVC 应用

1. 依赖导入

在项目的 pom.xml 文件中添加以下依赖:

<dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifactId><version>6.1.0</version><scope>provided</scope>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>6.1.12</version>
</dependency>

2. 创建配置类

创建一个配置类 SpringMvcConfig.java,用于替代传统的 XML 配置:

package com.itheima.config;import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;@Configuration
@ComponentScan("com.itheima.Controller") // 指定要扫描的包
@EnableWebMvc // 启用 Spring_MVC 的功能
public class SpringMvcConfig {
}

3. 创建启动类

创建一个继承自 AbstractDispatcherServletInitializer 的类 ServletConfig.java,用于配置和启动 Spring_MVC 应用:

package com.itheima.config;import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;
import org.springframework.web.servlet.support.AnnotationConfigWebApplicationContext;import javax.servlet.Filter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;public class ServletConfig extends AbstractDispatcherServletInitializer {@Overrideprotected WebApplicationContext createServletApplicationContext() {AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();context.register(SpringMvcConfig.class); // 注册配置类return context;}@Overrideprotected String[] getServletMappings() {return new String[]{"/"}; // 所有请求都由 Spring_MVC 处理}@Overrideprotected WebApplicationContext createRootApplicationContext() {return null;}@Overrideprotected Filter[] getServletFilters() {CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();characterEncodingFilter.setEncoding("UTF-8");characterEncodingFilter.setForceEncoding(true);return new Filter[]{characterEncodingFilter};}
}

4. 创建控制器

创建一个控制器类 UserController.java,使用 @Controller 注解标记,并通过 @RequestMapping 注解设置请求路径:

package com.itheima.Controller;import org.springframework.web.bind.annotation.*;@Controller
public class UserController {@RequestMapping("/hello")@ResponseBodypublic String sayHello() {return "Hello, Spring_MVC!";}@RequestMapping(value = "/user/save", method = RequestMethod.POST)@ResponseBodypublic String saveUser() {System.out.println("User saved successfully");return "{\"status\": \"success\", \"message\": \"User saved\"}";}@RequestMapping(value = "/user/{id}", method = RequestMethod.GET)@ResponseBodypublic String getUserById(@PathVariable Integer id) {System.out.println("Retrieving user with ID: " + id);return "{\"id\": " + id + ", \"name\": \"John Doe\"}";}
}

构造形式:

在这里插入图片描述

三、请求路径设置与控制器注解详解

1. @Controller 注解

  • 用于标记一个类为控制器类。
  • Spring 容器会扫描带有 @Controller 注解的类,并将其注册为 Spring Bean。

2. @RequestMapping 注解

  • 用于映射 HTTP 请求到处理方法。
  • 可用于类级别(设置基础路径)和方法级别(设置具体路径)。
  • 支持多种 HTTP 方法(GET、POST、PUT、DELETE)。
@Controller
@RequestMapping("/api") // 类级别的基础路径
public class ApiController {@RequestMapping(value = "/user", method = RequestMethod.GET)public String getUser() {return "User data";}
}

3. @ResponseBody 注解

  • 用于指定方法的返回值将直接作为响应体返回给客户端。
  • 常用于返回 JSON 或 XML 数据。
@RequestMapping(value = "/user", method = RequestMethod.GET)
@ResponseBody
public String getUser() {return "{\"id\": 1, \"name\": \"John Doe\"}";
}

4. @RequestBody 注解

  • 用于将请求体中的数据绑定到方法参数。
  • 常用于处理 POST 或 PUT 请求中的 JSON 或 XML 数据。
@RequestMapping(value = "/user", method = RequestMethod.POST)
@ResponseBody
public String saveUser(@RequestBody User user) {return "{\"status\": \"success\"}";
}

5. @PathVariable 注解

  • 用于从 URL 中提取占位符参数。
  • 常用于动态获取路径中的参数。
@RequestMapping(value = "/user/{id}", method = RequestMethod.GET)
@ResponseBody
public String getUserById(@PathVariable Integer id) {return "{\"id\": " + id + ", \"name\": \"John Doe\"}";
}

四、运行应用

完成上述步骤后,启动应用服务器(如 Tomcat),可以通过以下 URL 访问您的应用:

  • http://localhost:8080/hello:返回 “Hello, Spring_MVC!”。
  • http://localhost:8080/user/save:返回用户保存成功的 JSON 数据。
  • http://localhost:8080/user/1:返回用户信息的 JSON 数据。

五、常见问题与解决方案

1. 无法访问控制器方法

  • 可能原因:控制器类或方法未正确标注注解,或注解路径配置错误。
  • 解决方案:检查控制器类是否使用 @Controller 注解,方法是否使用 @RequestMapping 注解,以及路径是否正确。

2. 返回 JSON 数据时出现 406 错误

  • 可能原因:客户端不接受应用返回的 JSON 数据类型。
  • 解决方案:确保在控制器方法上添加 @ResponseBody 注解,并在请求头中设置 Accept: application/json

3. 中文乱码问题

  • 可能原因:请求或响应的编码设置不正确。

  • 解决方案

    ServletConfig 类中添加字符编码过滤器:

    @Override
    protected Filter[] getServletFilters() {CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();characterEncodingFilter.setEncoding("UTF-8");characterEncodingFilter.setForceEncoding(true);return new Filter[]{characterEncodingFilter};
    }
    

    在 Tomcat 启动配置中添加 JVM 参数:

-Dfile.encoding=UTF-8
http://www.dtcms.com/wzjs/156729.html

相关文章:

  • flash网站好做seo不江门百度seo公司
  • 重庆电商网站建设qq群推广网站免费
  • 自己申请一个网站怎么做建设网站的网站首页
  • 分类网站 模板百度平台客服
  • 那个网站做搬家推广比较好长沙seo优化推荐
  • 安徽建网站企业培训课程表
  • 唐山市城乡建设网站上海app定制开发公司
  • asp.net mvc 企业网站制作网页的流程步骤
  • 郑州营销策划公司排行榜seo优化软件哪个好
  • 赌钱网站怎么做的专业seo网站优化推广排名教程
  • 做网站建设挣钱吗企业培训有哪些方面
  • 企业vi设计全套欣赏seo研究中心
  • 网站页面描述网站seo推广员招聘
  • 沈阳网站建设搭建最新全国疫情实时大数据
  • 做买家秀的网站5188关键词挖掘
  • 试用网站如何做新乡网站优化公司
  • 做毕设网站多少钱seo关键词
  • 南阳网站设计百度账号中心官网
  • 做网站用b s和c s中视频自媒体平台注册官网
  • wordpress 页面模板不显示苏州seo网站推广哪家好
  • 国外网站推广方法软文推广发布
  • 顺德专业网站制作谷歌seo排名技巧
  • 模板网站开发推广百度seo点击软件
  • 河南做网站哪个公司好sem运营
  • 自己做网站可以赚钱吗网络营销的流程和方法
  • 网站推广的方式有哪几种网络营销学什么
  • 佛山外贸网站建设精英鸣蝉智能建站
  • 南昌it制作电商网站的公司seo经典案例
  • 网站如何做整合营销游戏推广文案
  • 专做网页的网站对网站和网页的认识