中国铁建门户网登录入口/seo的基本步骤包括哪些

中国铁建门户网登录入口,seo的基本步骤包括哪些,一个公司名可以备案多少个网站,做sf网站引言 在 Java Web 开发中,SpringMVC 作为 Spring 框架的重要模块,提供了强大的请求和响应处理机制。本文将深入探讨 SpringMVC 中请求和响应的处理方式,结合实际案例,帮助开发者更好地理解和应用这些功能。 一、SpringMVC 请求处…

引言

在 Java Web 开发中,SpringMVC 作为 Spring 框架的重要模块,提供了强大的请求和响应处理机制。本文将深入探讨 SpringMVC 中请求和响应的处理方式,结合实际案例,帮助开发者更好地理解和应用这些功能。

一、SpringMVC 请求处理

1. RequestMapping 注解

RequestMapping 注解用于建立请求 URL 和处理方法之间的映射关系,可以作用在类或方法上。

  • 作用在类上:作为一级请求路径。

  • 作用在方法上:作为二级请求路径。

@Controller
@RequestMapping("/user")
public class UserController {@RequestMapping("/save")public String save() {return "success";}
}

访问路径为:http://localhost:8080/项目名/user/save

属性说明
  • path/value:指定请求路径的 URL。

  • method:指定允许的 HTTP 请求方法,如 RequestMethod.GET、RequestMethod.POST。

  • params:指定请求参数的条件。

@RequestMapping(value = "/save", method = RequestMethod.POST, params = "age=18")
public String save(@RequestParam("age") int age) {// 处理逻辑
}

2. 请求参数绑定

SpringMVC 支持多种类型的数据绑定,包括基本数据类型、字符串、实体类和集合类型。

基本数据类型和字符串

表单提交的参数名称需与方法参数名称一致。

@RequestMapping("/save")
public String save(String username, Integer age) {System.out.println("Username: " + username + ", Age: " + age);return "success";
}

对应的表单:

<form action="/user/save" method="post"><input type="text" name="username"><input type="text" name="age"><input type="submit" value="Submit">
</form>

预览

实体类绑定

表单参数名称需与实体类属性名称一致。

public class User {private String username;private Integer age;// getter 和 setter
}@RequestMapping("/save1")
public String save1(User user) {System.out.println(user);return "success";
}

对应的表单:

<form action="/user/save1" method="post"><input type="text" name="username"><input type="text" name="age"><input type="submit" value="Submit">
</form>

预览

集合类型绑定

支持 List 和 Map 类型的参数绑定。

@RequestMapping("/save2")
public String save2(@RequestParam("users") List<User> users) {System.out.println(users);return "success";
}

对应的表单:

<form action="/user/save2" method="post"><input type="text" name="users[0].username"><input type="text" name="users[0].age"><input type="text" name="users[1].username"><input type="text" name="users[1].age"><input type="submit" value="Submit">
</form>

预览

3. 使用 Servlet API

在控制器中可以直接使用 HttpServletRequest 和 HttpServletResponse 对象。

@RequestMapping("/save3")
public String save3(HttpServletRequest request, HttpServletResponse response) {String username = request.getParameter("username");int age = Integer.parseInt(request.getParameter("age"));System.out.println("Username: " + username + ", Age: " + age);return "success";
}

4. RequestParam 注解

用于绑定请求参数到方法参数。

@RequestMapping("/save4")
public String save4(@RequestParam("username") String name, @RequestParam("age") int age) {System.out.println("Username: " + name + ", Age: " + age);return "success";
}

二、SpringMVC 响应处理

1. 使用 ModelAndView

通过 ModelAndView 对象返回视图和模型数据。

@RequestMapping("/save5")
public ModelAndView save5() {ModelAndView modelAndView = new ModelAndView();modelAndView.addObject("msg", "保存成功");modelAndView.setViewName("result");return modelAndView;
}

对应的视图 result.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Result</title>
</head>
<body>
<h1 th:text="${msg}"></h1>
</body>
</html>

预览

2. 使用 Servlet API 进行输出

直接通过 HttpServletResponse 输出内容。

@RequestMapping("/save6")
public void save6(HttpServletResponse response) throws IOException {response.getWriter().println("保存成功");
}

3. 重定向与转发

请求转发

请求转发 本身是一种服务器端行为   浏览器的地址栏不发生变化 从始至终都是一个请求 request信息在servlet当中是共享的 只能在网站内部资源之间进行转发

@RequestMapping("/test1")
public String test1() {return "forward:/otherPage";
}
请求重定向

重定向  本身是一种客户端行为  地址栏是发生改变的  浏览器会发起两次请求 request域当中的信息是不共享的  可以访问网站外部资源

@RequestMapping("/test2")
public String test2() {return "redirect:/otherPage";
}

4. 返回 JSON 数据

使用 @ResponseBody 注解将 Java 对象转换为 JSON 响应。

@RequestMapping("/find")
@ResponseBody
public User find() {return new User("张三", 25, '男');
}

需要引入 Jackson 相关依赖:

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version>
</dependency>

三、总结

本文详细介绍了 SpringMVC 中请求和响应的处理方式,包括 RequestMapping 注解的使用、参数绑定、Servlet API 的应用、重定向与转发、JSON 响应、文件上传下载以及异常处理等内容。通过这些技术点的讲解和示例,开发者可以更高效地使用 SpringMVC 构建功能完善的 Web 应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899408.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始的 Kafka 学习(四)| 生产消息

1. 生产消息 1.1 生产消息的基本步骤 &#xff08;一&#xff09;创建Map类型的配置对象&#xff0c;根据场景增加相应的配置属性&#xff1a; 参数名参数作用类型默认值推荐值bootstrap.servers集群地址&#xff0c;格式为&#xff1a;brokerIP1:端口号,brokerIP2:端口号必…

新手村:逻辑回归-理解04:熵是什么?

新手村&#xff1a;逻辑回归04&#xff1a;熵是什么? 熵是什么? 前置条件 在开始学习逻辑回归中的熵理论之前&#xff0c;需要掌握以下基础知识&#xff1a; 概率论与统计学&#xff1a; 概率分布&#xff08;如伯努利分布、正态分布&#xff09;。条件概率和贝叶斯定理。期…

STM32通用定时器结构框图

STM32单片机快速入门 通用定时器框图 TIM9和TIM12 通用定时器框图 TIM9和TIM12 &#xff08;二&#xff09; 通用定时器框图

3.28-2 jmeter读取mysql

jmeter操作mysql 1.下载数据驱动&#xff0c;安装数据驱动 &#xff08;1&#xff09;存放四个路径 a.jre下的lib C:\Program Files\Java\jre1.8.0_60\lib &#xff08;2&#xff09;存放在jre 下的lib 中的ext 路径&#xff1a; C:\Program Files\Java\jre1.8.0_60\lib\…

Postman CORS 测试完全指南:轻松模拟跨域请求,排查 CORS 相关问题

在使用 Postman 进行 API 测试时&#xff0c;通常不会遇到跨域问题&#xff0c;因为 Postman 是一个独立的客户端应用程序&#xff0c;不同于在浏览器中运行的 JavaScript 代码&#xff0c;它没有同源策略&#xff08;SOP&#xff09;的限制。跨域资源共享&#xff08;CORS&…

基于SpringBoot和Vue的SQL TO API平台的设计与实现

文章目录 前言一、系统功能模块二、数据库设计1. 实体属性图1. 实体属性图1.1 职员表1.2 数据源配置表1.3 接口配置表1.4 请求记录表 2. E-R图 三、系统实现1. 登录页面2. 职员管理页面1.1 创建用户1.2 编辑用户 2. 数据源管理2.1 创建数据源2.2 编辑数据源 3. 接口管理3.1 创建…

【Portainer】Docker可视化组件安装

Portainer Portainer 是用于管理容器化环境的一体化平台工程解决方案&#xff0c;提供广泛的定制功能&#xff0c;以满足个人开发人员和企业团队的需求。 官方地址: https://www.portainer.io/ 安装 在 WSL / Docker Desktop 上使用 Docker 安装 Portainer CE 通过命令或UI页…

unity中Xcharts图表鼠标悬浮表现异常

鼠标悬浮在面板附近&#xff0c;只显示单独的一个项目 而且无论鼠标如何移动&#xff0c;根本没有效果。 解决方案&#xff1a; 需要在对应的Canvas上绑定主相机才可以 鼠标移动到项目上就有信息展示了

CentOS 安装LAMP全过程 - 完整步骤与最佳实践

在开始搭建 LAMP 环境之前&#xff0c;需要确保系统已经满足以下条件&#xff1a; 1、操作系统&#xff1a;CentOS 7 或 CentOS 8 2、网络连接&#xff1a;系统必须能够访问互联网以下载所需的软件包 3、权限&#xff1a;需要 root 权限或者通过sudo 提权执行命令 先更新系…

Java基础关键_031_反射(一)

目 录 一、概述 二、获取 Class 的四种方式 1.Class.forName("完整全限定类名") 2.getClass() 3.class 属性 4.通过类加载器获取 三、通过反射机制实例化对象 1.newInstance()&#xff08;已过时&#xff09; 2.配置文件利用反射机制实例化对象 四、反射 Cla…

33.[前端开发-JavaScript基础]Day10-常见事件-鼠标事件-键盘事件-定时器-案例

1 window定时器 window定时器方法 setTimeout的使用 setInterval的使用 2 轮播消息提示 案例实战一 – 轮播消息提示 3 关闭隐藏消息 案例实战二 – 关闭隐藏消息 4 侧边栏展示 案例实战三 – 侧边栏展示 5 tab切换实现 案例实战四 – 登录框&#xff08;作业&#xff09;…

react ant design树穿梭框实现搜索并展开到子节点、同级节点选择及同时选择数量限制功能

功能点&#xff1a; 点击节点前的箭头&#xff0c;可以手动展开或折叠该节点的子节点。在搜索框中输入关键词&#xff0c;匹配的节点及其父节点会自动展开。清空搜索框后&#xff0c;恢复到用户手动控制的展开状态。勾选节点时仍然遵守 "最多勾选 6 个节点" 和 &quo…

阿里云云效 Maven

阿里云云效 Maven 官网&#xff1a;https://developer.aliyun.com/mvn/guide 阿里云Maven中央仓库为 阿里云云效 提供的公共代理仓库&#xff0c;帮助研发人员提高研发生产效率&#xff0c;使用阿里云Maven中央仓库作为下载源&#xff0c;速度更快更稳定。 阿里云云效 是企业…

如何在 Postman 中正确设置 Session 以维持用户状态?

在 Postman 里面设置有 session 的请求。如果你还不知道什么是 session&#xff0c;那么请看这里—— session 是一种记录客户端和服务器之间状态的机制&#xff0c;用于保持用户的登录状态或者其他数据&#xff0c;从而让用户在不同页面之间保持一致的体验。 Postman 设置带 …

DQN与PPO在算法层面的核心区别

DQN与PPO在算法层面的核心区别 1. 学习目标不同 DQN(基于价值): 核心:学习动作价值函数 Q ( s , a ) Q(s, a)

解析 HTML 网站架构规范

2025/3/28 向全栈工程师迈进&#xff01; 一、网页基本的组成部分 网页的外观多种多样&#xff0c;但是除了全屏视频或游戏&#xff0c;或艺术作品页面&#xff0c;或只是结构不当的页面以外&#xff0c;都倾向于使用类似的标准组件。 1.1页眉 通常横跨于整个页面顶部有一…

Three.js 快速入门教程【二十】3D模型加载优化实战:使用gltf-pipeline与Draco对模型进行压缩,提高加载速度和流畅性

系列文章目录 Three.js 快速入门教程【一】开启你的 3D Web 开发之旅 Three.js 快速入门教程【二】透视投影相机 Three.js 快速入门教程【三】渲染器 Three.js 快速入门教程【四】三维坐标系 Three.js 快速入门教程【五】动画渲染循环 Three.js 快速入门教程【六】相机控件 Or…

基于51单片机的速度检测报警器proteus仿真

地址&#xff1a; https://pan.baidu.com/s/1I7roZEjrk349Is_YdMcsxQ 提取码&#xff1a;1234 仿真图&#xff1a; 芯片/模块的特点&#xff1a; AT89C52/AT89C51简介&#xff1a; AT89C51 是一款常用的 8 位单片机&#xff0c;由 Atmel 公司&#xff08;现已被 Microchip 收…

DeepSeek 本地化部署教程

1 概述 1.1 配置参考图 科普&#xff1a; B&#xff0c;Billion&#xff08;十亿&#xff09;&#xff0c;是 “参数量” 的单位。 模型量超过 一亿&#xff0c;可称之为 “大模型”。 2 软件安装 2.1 下载 Ollama 官方主页&#xff1a;https://ollama.com/download主页截图…

matlab打开两个工程

1、问题描述 写代码时&#xff0c;需要实时参考别人的代码&#xff0c;需要同时打开2个模型&#xff0c;当模型在同一个工程内时&#xff0c;这是可以直接打开的&#xff0c;如图所示 2、解决方案 再打开一个MATLAB主窗口 这个时候就可以同时打开多个模型了 3、正确的打开方…