HttpServlet

本文介绍了Servlet的基础知识,包括如何导入所需jar包,以及获取前端请求参数和进行请求转发的方法。示例代码展示了如何处理GET请求,设置字符编码,获取并打印参数,以及使用请求转发到指定页面。同时,对比了请求转发和重定向的区别,如地址栏变化、请求次数以及资源访问范围。此外,还讨论了路径的绝对和相对路径及其使用场景。
摘要由CSDN通过智能技术生成

HttpServlet

前提导入Servlet所需要的的jar包

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.1</version>
        <scope>provided</scope>
    </dependency>

常见应用

  • 获取前端请求的参数
    在这里插入图片描述

  • 请求转发

代码


protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置前端数据,避免后台接收乱码
        req.setCharacterEncoding("utf-8");
        //获取前端参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String[] hobbies = req.getParameterValues("hobbies");
        System.out.println(username);
        System.out.println(password);
        System.out.println(Arrays.toString(hobbies));
        //请求转发
        req.getRequestDispatcher("/success.html").forward(req, resp);
    }

请求转发和重定向的区别

  • 请求转发的特点(req.getRequestDispatcher("/success.html").forward(req, resp))

    • 访问地址栏不变化
    • 一次请求
    • 只能访问当前服务器的资源,可以使用request对象共享数据
  • 重定向的特点(response.sendRedirect("/day15/responseDemo2"))

    • 访问地址栏变化
    • 两次请求
    • 可以访问其他服务器的资源,不可以使用request对象共享数据

路径的写法

  • 绝对路径:可以确定唯一资源,比如http://localhost/day15/responseDemo2, /day15/responseDemo2

  • 相对路径:不能确定唯一资源

  • 使用规则:资源给谁用? 请求是从哪来的?

    • 如果是给浏览器用的需要加虚拟目录(项目的访问目录)可以动态获取 getContextPath(),比如 ,,重定向

    • 如果是给服务器自己使用,不需要加虚拟目录,比如请求转发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值