学习笔记(9):JavaWeb基础核心技术-9. 佟刚_JavaWEB_ServletRequest

研发管理 专栏收录该内容
8 篇文章 0 订阅

立即学习:https://edu.csdn.net/course/play/1060/15790?utm_source=blogtoedu

10. 如何在 Serlvet 中获取请求信息:


1). Servlet 的 service() 方法用于应答请求: 因为每次请求都会调用 service() 方法


public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException

ServletRequest: 封装了请求信息. 可以从中获取到任何的请求信息.
ServletResponse: 封装了响应信息, 如果想给用户什么响应, 具体可以使用该接口的方法实现. 


这两个接口的实现类都是服务器给予实现的, 并在服务器调用 service 方法时传入. 


2). ServletRequest: 封装了请求信息. 可以从中获取到任何的请求信息.


①. 获取请求参数: 


> String getParameter(String name): 根据请求参数的名字, 返回参数值. 
若请求参数有多个值(例如 checkbox), 该方法只能获取到第一个提交的值. 


> String[] getParameterValues(String name): 根据请求参数的名字, 返回请求参数对应的字符串数组. 

> Enumeration getParameterNames(): 返回参数名对应的 Enumeration 对象, 
类似于 ServletConfig(或 ServletContext) 的 getInitParameterNames() 方法. 


> Map getParameterMap(): 返回请求参数的键值对: key: 参数名,  value: 参数值, String 数组类型. 


②. 获取请求的 URI:


HttpServletRequest httpServletRequest = (HttpServletRequest) request;

String requestURI = httpServletRequest.getRequestURI();
System.out.println(requestURI); //  /day_29/loginServlet


③. 获取请求方式: 


String method = httpServletRequest.getMethod();
System.out.println(method); //GET

④. 若是一个 GET 请求, 获取请求参数对应的那个字符串, 即 ? 后的那个字符串. 


String queryString = httpServletRequest.getQueryString();
System.out.println(queryString); //user=atguigu&password=123456&interesting=game&interesting=party&interesting=shopping


⑤. 获取请求的 Serlvet 的映射路径 
  
   String servletPath = httpServletRequest.getServletPath();
   System.out.println(servletPath);  //  /loginServlet
   
⑥. 和 attribute 相关的几个方法:   


3). HttpServletRequest: 是 SerlvetRequest 的子接口. 针对于 HTTP 请求所定义. 里边包含了大量获取 HTTP 请求相关的方法. 
 
4). ServletResponse: 封装了响应信息, 如果想给用户什么响应, 具体可以使用该接口的方法实现. 


①. *getWriter(): 返回 PrintWriter 对象. 调用该对象的 print() 方法, 将把 print() 中的参数直接打印
到客户的浏览器上. 


②. 设置响应的内容类型: response.setContentType("application/msword");


③. void sendRedirect(String location): 请求的重定向. (此方法为 HttpServletResponse 中定义.)

 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值