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

付网站开发费计入什么科目做网站推广的难点、

付网站开发费计入什么科目,做网站推广的难点、,江西省住房和城乡建设厅的网站,今天重大新闻摘抄一、核心作用对比 对象HttpServletRequest(请求对象)HttpServletResponse(响应对象)本质客户端发给服务器的 HTTP 请求信息(输入)服务器返回客户端的 HTTP 响应信息(输出)生命周期一…

一、核心作用对比

对象HttpServletRequest(请求对象)HttpServletResponse(响应对象)
本质客户端发给服务器的 HTTP 请求信息(输入)服务器返回客户端的 HTTP 响应信息(输出)
生命周期一次 HTTP 请求中创建,请求处理完成后销毁同左
获取方式由 Servlet 容器自动注入(如 doGet(request, response)同左
核心功能读取请求参数、头信息、会话数据等设置响应状态、头信息、返回内容等

二、关键方法与示例

(一)HttpServletRequest - 请求信息读取器

(一)HttpServletRequest - 请求信息读取器

主要方法及使用场景:

方法作用示例场景
String getParameter(String name)获取 URL参数 或 表单参数用户注册表单的 username 字段
Enumeration<String> getParameterNames()获取所有请求参数名调试时打印全部参数
String[] getParameterValues(String name)获取同名参数的多个值(复选框等)多选的兴趣爱好
String getHeader(String name)获取请求头信息获取设备类型 User-Agent
Cookie[] getCookies()获取客户端的 Cookies自动登录功能
HttpSession getSession()获取或创建会话对象保存用户登录状态
String getRequestURI()获取请求路径(不包含协议和域名)记录请求日志
StringBuffer getRequestURL()获取完整请求 URL生成重定向地址

代码示例 - 传统 Servlet 中读取请求参数:

protected void doGet(HttpServletRequest request, HttpServletResponse response) {// 获取单个参数String username = request.getParameter("username");// 获取多选参数String[] hobbies = request.getParameterValues("hobby");// 获取请求头String userAgent = request.getHeader("User-Agent");// 获取所有参数名(调试用)Enumeration<String> params = request.getParameterNames();while (params.hasMoreElements()) {String paramName = params.nextElement();System.out.println(paramName);}
}

(二)HttpServletResponse - 响应信息控制器

主要方法及使用场景:

方法作用示例场景
void setStatus(int sc)设置 HTTP 状态码返回错误码 404
void sendError(int sc, String msg)发送错误状态码及描述信息参数校验失败时返回 400
void setHeader(String name, String value)设置响应头信息跨域支持(CORS)
void addCookie(Cookie cookie)添加 Cookie记住用户语言偏好
PrintWriter getWriter()获取文本输出流返回 JSON/HTML 内容
ServletOutputStream getOutputStream()获取二进制输出流返回图片/文件下载
void sendRedirect(String location)重定向到新 URL登录成功后跳转首页
void setContentType(String type)设置内容类型(MIME 类型)application/json 或 image/png

代码示例 - 自定义响应头和返回二进制内容:

protected void doGet(HttpServletRequest request, HttpServletResponse response) {// 设置响应类型为图片response.setContentType("image/png");// 设置缓存头(缓存1小时)response.setHeader("Cache-Control", "max-age=3600");// 返回二维码图片字节流try (OutputStream out = response.getOutputStream()) {byte[] qrCode = generateQRCode("https://example.com");out.write(qrCode);} catch (IOException e) {response.sendError(500, "生成二维码失败");}
}

三、Spring MVC 中的实际应用

示例 1:RESTful API 参数接收

@RestController
@RequestMapping("/api")
public class UserApiController {// 获取查询参数和请求头@GetMapping("/user")public ResponseEntity<User> getUser(@RequestParam("id") Long userId,@RequestHeader("Authorization") String token) {// 验证Token逻辑if (!validateToken(token)) {return ResponseEntity.status(401).build();}User user = userService.findById(userId);return ResponseEntity.ok(user);}
}

示例 2:文件上传与重定向

@Controller
public class FileUploadController {@PostMapping("/upload")public String uploadFile(@RequestParam("file") MultipartFile file,HttpServletRequest request,HttpServletResponse response) throws IOException {// 检查文件大小if (file.getSize() > 10_000_000) { response.setStatus(HttpServletResponse.SC_BAD_REQUEST);return "error/400"; }fileService.save(file);// 重定向到结果页response.sendRedirect("/upload-success");return null;}
}

四、关键差异总结

对比维度HttpServletRequestHttpServletResponse
数据流向服务器接收客户端数据服务器向客户端发送数据
操作方法信息读取类方法(getXxx)数据写入类方法(setXxx/sendXxx)
内容处理解析请求 URL、参数、头信息设置响应状态、头信息、写入正文内容
生命周期请求到达时创建,响应结束后销毁同左

五、常见问题解答

问题 1:为何要同时使用这两个对象?

在一个完整的 HTTP 交互中:

  • HttpServletRequest: 了解客户端的请求细节(要什么)
  • HttpServletResponse: 构建服务器返回的响应(给什么)

协作流程示例

protected void doPost(HttpServletRequest request, HttpServletResponse response) {// 1. 通过request获取数据String input = request.getParameter("input");// 2. 业务处理String result = process(input);// 3. 通过response返回结果response.setContentType("text/plain");response.getWriter().write(result);
}

问题 2:如何在 Spring 中优雅地使用它们?

  • 最佳实践原则:优先使用 Spring 的抽象方式(如 @RequestParam@ResponseBody),必要时再直接操作原生对象。
@RestController
public class ModernController {// 通过注解自动映射参数@GetMapping("/search")public List<Product> searchProducts(@RequestParam String keyword,  // 自动从请求参数获取@CookieValue("sessionId") String sessionId,HttpServletResponse response) { // 需要设置Cookie时使用response.addCookie(new Cookie("lastSearch", keyword));return productService.search(keyword); // 自动转JSON}
}

总结

  • HttpServletRequest:客户端 → 服务器的信息桥梁,用于读取请求数据。
  • HttpServletResponse:服务器 → 客户端的信息出口,用于构造响应。
  • 核心技巧:在传统 Servlet 开发中直接使用它们,在 Spring 开发中优先通过注解简化操作,必要时才直接操作原生对象。
http://www.yayakq.cn/news/136107/

相关文章:

  • 自己做网站 教程中企动力科技股份有限公司佛山分公司
  • 网站背景怎么设置德州seo优化
  • 有没有必要给企业做网站布吉网站设计
  • 各种购物网站大全济宁市住房和城乡建设局网站
  • 广州建网站哪里比较好体验好的网站
  • 网站网页设计项目计划书wordpress josn查询
  • 成都网站游戏设计长沙智能建站模板
  • 神华集团两学一做网站手机 网站开发aspx
  • 电子商务网站建设项目服饰网站建设 e-idea
  • 宁波网站建设官乐清网站优化推广
  • 邢台网站优化建设做视频网站需要多少带宽
  • 兰州网站seo优化公司谷歌seo文章
  • 江西省城乡建设厅网站查询证件vps如何搭建网站
  • 沈阳手机端建站模板wordpress微信服务号登录
  • 湖南企业网站制作济宁网站建设第一品牌
  • 装修网站开发思路潍坊医院网站建设
  • 重庆梁平网站建设费用开源微信商城源码
  • 南京建设网站维护网站后台上传图片步骤
  • 东营做网站seo的百度智能创作平台
  • 天津哪里有做网站的网站开发哪种语言比较好
  • 大屏网站模板网络推广软件排行
  • 淘宝网站750海报怎么做河南做网站的公司有哪些
  • 四线城市做网站建设怎么样设计说明怎么写200字
  • 商城网站制作公司怎么样模仿一个网站做简历
  • 查网站域名备案做电脑系统的网站
  • 沧州网站建设开发服务网站正能量晚上在线观看
  • 网站做cdn服务流量wordpress 作者名称
  • 网页设计茶叶网站建设网站制作一般怎么收费
  • 石家庄开发网站爱上链外链购买交易
  • 彩票网站开发解决方案百度手机提高关键词排名