HttpServletRequest
HttpServletRequest代表客户端的请求,用户通过Http协议访问服务器,HTTP请求中的所有信息会被封装到HttpServletRequest,通过这个HttpServletRequest的方法,获得客户端的所有信息;|
获取前端请求的参数、请求转发
1.新建一个web项目,导入jsp和servlet的依赖。
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> </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.3</version> <scope>provided</scope> </dependency>
2.修改index.jsp页面,新增登录成功页面。
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录</title>
</head>
<body>
    <h1>登录</h1>
    
    <div>
        <form action = "${pageContext.request.contextPath}/login" method = "post">
            用户名:<input type = "text" name = "userName" /> </br>
            密码:<input type = "password" name = "password" /> </br>
            爱好:
            <input type = "checkbox" name = "hobbies" value = "女孩">女孩
            <input type = "checkbox" name = "hobbies" value = "代码">代码
            <input type = "checkbox" name = "hobbies" value = "唱歌">唱歌
            <input type = "checkbox" name = "hobbies" value = "电影">电影
            
            </br>
            <input type = "submit">
        </form>
    </div>
</body>
</html>success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>登录成功</title> </head> <body> <h1>登录成功</h1> </body> </html>
3.新增LoginServlet类,并在web.xml里面注册配置
LoginServlet
package com.allen.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[] hobbies = req.getParameterValues("hobbies");
        System.out.println(userName);
        System.out.println(password);
        System.out.println(Arrays.toString(hobbies));
        //请求转发
        req.getRequestDispatcher("/success.jsp").forward(req, resp);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.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.allen.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> </web-app>
4.启动tomcat测试
输入参数,点击提交:

页面成功跳转:

接下来我们看一下后台有没有接收到数据:
