javaweb-15:Request应用

6.7 HttpServletRequest

HttpServletRequest代表客户端的请求,用户通过Http协议访问服务器,HTTP请求中的所有信息都会被封装到HttpServletRequset,通过这个HttpServletRequest的方法,获得客户端的所有信息:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vx3KNYCd-1633756660397)(D:\学习笔记\javaweb\javaweb-15:Request应用.assets\image-20211009122749756.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-unvOPPcm-1633756660399)(D:\学习笔记\javaweb\javaweb-15:Request应用.assets\image-20211009122906787.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rnKcKDP4-1633756660401)(D:\学习笔记\javaweb\javaweb-15:Request应用.assets\image-20211009122944111.png)]

获取前端传递的参数,请求转发

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sg0iPLrV-1633756660404)(D:\学习笔记\javaweb\javaweb-15:Request应用.assets\image-20211009123052817.png)]

代码show:

LoginServlet.java

package com.gongyi.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;

public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //解决后台接收中文乱码问题
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String[] hobbys = req.getParameterValues("hobbys");
        System.out.println("=====================");
        System.out.println(username);
        System.out.println(password);
        System.out.println(Arrays.toString(hobbys));
        System.out.println("=====================");
        System.out.println(req.getContextPath());
        //通过请求转发
        //这里的 / 代表当前的web应用
        req.getRequestDispatcher("/success.jsp").forward(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0"
         metadata-complete="true">
    <servlet>
        <servlet-name>LoginServlet</servlet-name>
        <servlet-class>com.gongyi.servlet.LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>LoginServlet</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>
</web-app>

index.jsp【删除默认的index.jsp,新建jsp,默认的index.jsp文件不全,没有头文件】

<%--
  Created by IntelliJ IDEA.
  User: zengqiang.wang
  Date: 2021/10/9
  Time: 12:55
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>登录</title>
    </head>
    <body>
        <h1>登录</h1>
<%--        这里表单表示的意思:以post方法提交表单,提交到我们的login请求--%>
        <form action="${pageContext.request.contextPath}/login" method="post">
            用户名:<input type="text" name="username"> <br>
            密码:<input type="password" name="password"> <br>
            爱好:
            <input type="checkbox" name="hobbys" value="女孩">女孩
            <input type="checkbox" name="hobbys" value="代码">代码
            <input type="checkbox" name="hobbys" value="唱歌">唱歌
            <input type="checkbox" name="hobbys" value="电影">电影
            <br>
            <input type="submit">
        </form>
    </body>
</html>

success.jsp

<%--
  Created by IntelliJ IDEA.
  User: zengqiang.wang
  Date: 2021/10/9
  Time: 13:13
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>登录成功</title>
    </head>
    <body>
        <h1>登录成功</h1>
    </body>
</html>

面试题:请你聊聊重定向和转发的区别?

相同点:

  • 页面都会实现跳转

不同点:

  • 请求转发的时候,url不会发生变化 307
  • 重定向时候,url地址栏会发生变化 302

彩蛋

1.网络趣图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ekVrh7zS-1633756660406)(D:\学习笔记\javaweb\javaweb-15:Request应用.assets\image-20211009124015937.png)]

2.过滤器统一处理乱码问题

3.4XX与5XX

​ 4XX 是个好现象,是路径问题,不是代码问题

​ 5XX是代码问题

4.jsp写${pageContext.有提示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qDeMzwTl-1633756660407)(D:\学习笔记\javaweb\javaweb-15:Request应用.assets\image-20211009131653437.png)]

需要 父pom中添加jsp依赖:

 <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.3</version>
            <scope>provided</scope>
        </dependency>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值