Web核心-HTTP简介

1.HttpServlet使用步骤

  继承HttpServlet类,实现HttpServlet接口的doGet()和doPost()

  根据请求方式的不同,进行分别的处理

2.Servlet urlPattern(访问路径) :

  1.一个Servlet可以配置多个访问路径

  2.urlPattern配置规则

   ①精确匹配   @webServlet(urlPattern ="/user/select")

   ②目录匹配   webServlet(urlPattern ="/user/*")

   ③扩展名匹配: webServlet(*.do)

   ④任意匹配 / 或/*   注意:/会覆盖默认tomcat默认Servlet配置,导致无法访问静态资源

 3.Request继承体系

  ServletRequest (java提供的请求对象根接口)<-HttpServletRequestjava(提供的对http协议封装的请求对象接口)<-RequestFacade(tomcat定义的实现类)、

4.Request获取请求数据

  1.请求行:  GET/request-demo/req1?username=zhangsan HTTP/1.1

  2.请求头:  User-Agent:Mozilla/5.0 chrome/91.0.4472.106

  3.请求体:  username=superbaby&password=123

5.Request通用方式获取请求参数

在doPost方法调用doGet方法,前提是统一获取请求参数的方式,从而统一doPost和doGet方法的代码

  Map<String,String[]> getParameterMap():获取所有参数Map集合

  String[] getParameterValues(String name):根据名称获取参数值(数组)

  String getParameter(String name):根据获取参数值(单个值 )

6.请求转发(forward):一种在服务器内部的资源跳转方式

  实现方式:req.getRequestDispatcher("资源B路径").forward(req,resp);

  请求转发资源间共享数据:使用Request对象

  使用步骤:A先存储数据,再转发,B获取数据

  特点:浏览器地址路径不发生变化,只能转发到当前服务器的内部资源,一次请求,可以在转发资源间使用Request共享数据

7.Response设置响应数据功能介绍&完成重定向&响应字符数据&响应字节数据

  ①Response设置响应数据功能介绍

    响应数据分为3部分:

      1.响应行:HTTP/1.1 200 OK      void setStatus(int sc):设置响应状态码

      2.响应头:Content-Type:text/html     void setHeader(String name,String value):设置响应头键值对

      3.响应体:<html><head>head<body></body></html>  PrintWriter getWriter();获取字符输出流    ServletOutputStream getOutputStream():获取字节输出流

  ②Response 完成重定向(Redirect)

    实现方式:resp.setStatus(302);  状态码302表示服务器响应的网页位置和请求者请求的网页位置不同

         resp.setHeader("location","资源B的路径");

         一行代码简单实现重定向:response.sendRedirect("资源B的路径");

    特点:浏览器地址发生变化  可以重定向到任何位置的资源,无论是内部还是外部  两次请求,不能在多个项目中共享数据

  ③资源路径问题

      明确路径给谁使用,判断是否需要加虚拟目录(项目访问路径)

        浏览器使用:需要加虚拟目录

        服务器使用:不需要加虚拟目录

      动态获取虚拟目录:String contextPath = request.getContextPath();

         重定向代码: reponse.sendRedirect(contextPath+"/resp2");

  ④Response响应字符数据

    1.通过response对象获取字符流 PrintWriter writer = response.getWriter(); 2.写数据

    注意:默认编码iso-8859-1,显示中文乱码,需要setContentType,charset=utf-8

  ⑤Response响应字节数据

     1.通过response对象获取字节输出流 ServletOutputStream outputStream = resp.getOutputStream(); 2.写数据 outputStream.write(字节数据);

    

posted @   Pray386  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示