网站建设礼品,电商 企业网站 福州,网站怎样建立数据库连接,外贸新手怎么找客户常见的Request Controller 和 Response Controller 的区别
用餐厅点餐来理解
想象你去一家餐厅吃饭#xff1a;
Request Controller#xff08;接单员#xff09;#xff1a;负责处理你的点餐请求#xff0c;记录你的口味、桌号等信息。Response Controller#xff08…常见的Request Controller 和 Response Controller 的区别
用餐厅点餐来理解
想象你去一家餐厅吃饭
Request Controller接单员负责处理你的点餐请求记录你的口味、桌号等信息。Response Controller厨师服务员根据你的需求制作菜品并把热乎乎的菜端到你桌上。
它们的核心区别
Request Controller专注 接收并解析用户请求比如拿参数、查Cookie、读Session。Response Controller专注 构造并返回响应数据比如返回网页、JSON数据、设置状态码
第一部分RespController - 响应处理中心
相当于快递包装流水线
1. 地址导航员返回页面
RequestMapping(/r1)
public String returnPage(){return /index.html;
}作用引导用户访问指定网页 示例类似点击网页导航链接 访问地址http://localhost/resp/r1 响应结果显示服务器上的index.html网页文件
2. 文字快递员返回纯文本
ResponseBody
RequestMapping(/r2)
public String returnData(){return 我是前端需要的数据;
}作用向浏览器直接发送文字内容 示例手机收到验证码短信 响应头Content-Type: text/plain 响应内容直接显示返回的字符串原文
3. HTML零件供应商
ResponseBody
RequestMapping(/r3)
public String returnHTML(){return h1我是一级标题/h1;
}作用发送HTML片段让浏览器渲染 示例网购时的商品描述模块 响应头Content-Type: text/html 前端显示显示为带样式的标题文字
4. 强制纯文本模式
ResponseBody
RequestMapping(value /r4, produces text/plain)
public String returnTEXT(){return h1我是一级标题/h1;
}作用强制浏览器以纯文本处理内容 示例收到代码截图文档 响应头Content-Type: text/plain 前端显示显示原始代码文本 h1... 5. JSON数据专员
需要UserInfo类支持
ResponseBody
RequestMapping(/r5)
public UserInfo returnJSON(){return new UserInfo(1, zhangsan);
}作用发送结构化数据 示例接收用户信息表单 响应头Content-Type: application/json
响应内容
{id:1, name:zhangsan}6. 异常状态标注员
ResponseBody
RequestMapping(/r6)
public UserInfo setStatus(HttpServletResponse response){response.setStatus(400);return new UserInfo(1, zhangsan);
}第二部分RequestController - 需求处理中心
1. 问询接待员基础参数接收
示例请求 访问http://localhost/request/r1?keyword手机 响应结果接收参数手机
2. 多重接待窗口
RequestMapping(/r2)
public String r2(String name, String password) {return usrname name password password;
}示例请求 访问http://localhost/request/r2?name张三password123456 响应结果username张三 password123456
3. 数字检查员包装类
RequestMapping(/r3)
public String r3(Integer age) {return age age;
}特点
允许空值如访问时不带age参数示例空请求响应age null
4. 强制数字模式
RequestMapping(/r4)
public String r4(int age) {return age age;
}特点
基本类型必须有值空请求时默认返回 age 0
5. 对象收集员
RequestMapping(/r5)
public String r5(UserInfo userInfo) {return userInfo userInfo.toString();
}使用方式 访问http://localhost/request/r5?id2name李四 参数自动装配转换为UserInfo对象
6. 参数改装员
RequestMapping(/r6)
public String r6(RequestParam(q) String keyword) {return keyword keyword;
}示例请求 访问http://localhost/request/r6?q笔记本电脑 功能把参数q映射到keyword变量
7. 批量收货员
RequestMapping(/r7)
public String r7(String[] arr) {return arr Arrays.toString(arr);
}示例请求 访问http://localhost/request/r7?arr苹果arr香蕉 响应结果arr [苹果, 香蕉]
8. 路径解析员
RequestMapping(/article/{type}/{articleId})
public String article(PathVariable String type, PathVariable Integer articleId) {return articleId articleIdtypetype;
}示例请求 访问http://localhost/request/article/tech/1001 响应结果articleId1001 typetech
9. 包裹接收员文件上传
RequestMapping(r12)
public String r12(RequestPart(file11) MultipartFile file) {file.transferTo(new File(C:\\temp\\file.getOriginalFilename()));return 文件上传成功;
}使用方式使用Postman等工具上传文件 表单字段名file11 保存路径C盘temp目录
10. 会员卡收集员
RequestMapping(/r13)
public String r13(HttpServletRequest request) {Cookie[] cookies request.getCookies();return 返回cookie成功;
}功能查看浏览器携带的所有Cookie
11. 精准会员卡读取器
RequestMapping(/r14)
public String r14(CookieValue(java)String java) {return Cookie中java的值java;
}要求浏览器必须携带名为java的Cookie
12. 储物柜管理员Session操作
RequestMapping(/setSession)
public String setSession(HttpServletRequest request) {HttpSession session request.getSession();session.setAttribute(userName, zhangsan);return 设置session成功;
}效果 创建类似保险箱的会话存储空间通过Cookie自动关联用户
13. 储物柜检查员会话验证
RequestMapping(/getSession3)
public String getSession3(SessionAttribute(userName) String userName){return 登录用户为 userName;
}使用场景对比表
功能需求对应控制器典型方法示例需要给浏览器返回网页RespControllerreturnPage() (/r1)开发RESTful API接口RequestControllerreturnJSON()(/r5)用户登录状态保持RequestControllersetSession()相关方法处理复杂的表单参数RequestControllerr5(UserInfo对象接收)需要控制响应头信息RespControllersetHeader() (/r7)上传用户头像文件RequestControllerr12()文件上传方法移动端接口开发RequestController所有带RestController的方法