• 2022-08-30 第六小组 瞒春 学习笔记


    🚩前言

    🌻今天进行JavaWEB的servlet学习

    ✅作者简介:大家好我是烫嘴的辛拉面,大家可以叫我拉面。
    📜个人主页: weixin_49405762的博客
    📕系列专栏: 经典算法习题集
    🌞为大🔥推荐一款刷题神器哦 👉点击跳转进入网站

    ✏️Servlet

    除了form表单之外都是get请求

    HttpServletRequest— req——请求

    所有请求的操作都用req对象来处理

    当有请求来的时候,req就被实例化

    HttpServletResponse— resp——响应

    所有响应的操作都用resp对象来处理

    当有响应来的时候,resp就被实例化

    当你想要给出响应时,使用resp

    我们要给出的响应,必须要展示在客户端(浏览器)

    【servlet的匹配优先级最高】

    如果使用路径匹配,必须有/

    如果使用扩展名匹配,必须没有/

    扩展名匹配与路径匹配无法同时设置

        /
    
    • 1

    ✒️生命周期

    初始化
    init方法什么时候执行
    默认当我们第一次访问servlet的时候被调用,——延迟加载
    初始化方法只执行一次
    请求
    常用的方法
    ​System.out.println(req.getMethod()+“请求的方法”);
    ​System.out.println(req.getContextPath()+“请求的根路径”);
    ​System.out.println(req.getServletPath()+“请求的servletPath路径”);
    ​System.out.println(req.getRequestURI()+“请求的URI”);
    ​System.out.println(req.getRequestURL()+“请求的URL”);
    ​System.out.println(req.getScheme()+“请求的协议”);
    重要的方法——接受参数
    ​ // 接受参数,处理请求
    ​String username = req.getParameter(“username”);
    ​String password = req.getParameter(“password”);

    ✒️接受参数

    ​// 接受参数,处理请求

       ​// 根据key获取value
       ​String username = req.getParameter("username");
       ​String password = req.getParameter("password");
       ​// 复选框返回多个值
       ​String[] hobbies = req.getParameterValues("hobby");
    
    
       ​// 获取key的值,根据key的值获取value
       ​Enumeration parameterNames = req.getParameterNames();
       ​while (parameterNames.hasMoreElements()) {
           ​String s = parameterNames.nextElement();
           ​String parameter = req.getParameter(s);
       ​}
    
       ​//获取请求中传过来键值对,返回值是一个map集合;
       ​// 这个map集合的key是String,value是String[];
       ​Map parameterMap = req.getParameterMap();
       ​for (Map.Entry entry : parameterMap.entrySet()) {
           ​String key = entry.getKey();
           ​String[] value = entry.getValue();
       ​}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    ✒️请求转发

    由多个servlet来处理一个请求
    请求转发是在服务器上完成的,根客户端无关
    作用域
    起作用的区域

    	req.setAttribute("name","张三");
        // 获取
        System.out.println("demo04.do-------->"+req.getAttribute("name"));
        // 删除
        req.removeAttribute("name");
        req.getRequestDispatcher("/demo03.do").forward(req,resp);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    ✒️响应

        ​// 给出响应
       ​// 客户端与服务端的信息传递
    
    • 1
    • 2

    // resp.setContentT
    ​// 响应的字符集一定放在流之前
    ​// 添加响应头,告诉浏览器以HTML的格式来解析响应字符串
    ​resp.addHeader(“content-type”,“text/html;charset=utf-8”);
    ​PrintWriter writer = resp.getWriter();
    ​writer.write(“我是后台,已经接到你的请求了!!!”);

           ​// 写字符
           ​writer.write("login success!!!");
           ​// 写字节
           ​writer.println("");
    
       ​// 流的操作
       ​writer.flush();
       ​writer.close();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    ✒️重定向

        ​resp.sendRedirect("index.html");
    
    • 1

    ✒️面试题

    路径配置中【/与/*有什么区别】

    【/*】——属于路径匹配,可以匹配所有的请求,路径匹配的优先级仅次于精确匹配的
    会覆盖所有的扩展名匹配,非常恶劣的匹配规则(语法)
    【/】——是servlet中的特殊匹配模式,优先级最低,不会覆盖任何的【url-patter】,匹配所有的请求
    /和/*拦截静态资源

    📌GET和POST的区别

    GET:请求的参数会在浏览器的地址栏中显示,不安全;请求的长度限制在1k之内
    没有请求体,无法通过request去设置参数。
    POST:请求的参数不会在浏览器的地址栏中显示,安全;没有长度限制
    有请求体
    请求转发和重定向的区别

    重定向——是两次请求,是客户端行为,是浏览器的地址会发生改变,【重定向可以定义到任意地址】
    请求转发——是一次请求,是服务器行为,浏览器地址不会发生改变,【转发只能项目内转发】

    必看

    算法对程序员来说及其重要,语言和开发平台不断变化,但是万变不离其宗的是那些算法和理论,刷算法最最最直白的原因就是找一个好的工作,那刷题一定是必不可少的
    现在算法刷题平台还是蛮多的,给大家介绍一个我认为与大厂关联最深的平台——牛客网
    在这里插入图片描述

    相较于其他平台,他们的题单更和工作,大厂靠拢,不光有面试必刷的101到题目,还有大量大厂真题,内容也全程免费,相较于其它会员费结算的来说 非常的友好
    在这里插入图片描述

    牛客网还支持ACM模式,没有练习过的一定要提前适应!像某团、某为,都要求自己处理输入输出,如果不提前练习会很吃亏的!
    牛客的题解更新迭代也很快,讨论区也有奇技淫巧的分享,能帮你把所有盲点扫清楚,整体来说还是非常推荐去练习的~
    传送门:牛客网

  • 相关阅读:
    前端进击笔记第十一节 改善编程思维:从事件驱动到数据驱动
    【浅学Java】端口号 / UDP
    三级分类的数据表设计和构造API数据
    Spring中Bean的作用域
    【SSL 1589】汉明距离(NTT)
    (Qt5Gui.dll)处(位于 xxx.exe 中)引发的异常: 0xC0000005: 读取位置 XXXXXXXX 时发生访问冲突
    AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘
    【研发管理】产品经理知识体系-产品创新中的市场调研
    PAT A1013 Battle Over Cities分数 25(连通块数量,割点是针对连通块的,不是整个图)
    【机器学习】三要素——数据、模型、算法
  • 原文地址:https://blog.csdn.net/weixin_49405762/article/details/126617734