General format and data sharing of request parameters

1. Four general methods for obtaining request data: getParameter

1.1 Get the parameter value through getParamter (key name). Get and post request are common

package cn.sc;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Map;
import java.util.Set;

@WebServlet( "/test3")
public class test3 extends HttpServlet {
    
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        //通过getParamter(键名)来获取参数值 get和post请求通用
        String username = request.getParameter("username");
        String hobby = request.getParameter("hobby");
        System.out.println("爱好是:"+hobby);
        System.out.println(username);
}

JavaWeb code

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="test3"  method="post">
    用户名<input type="text" placeholder="请输入用户名" name="username"/><br/>
    密码<input type="password" placeholder="请输入密码" name="pwd">
    <input type="checkbox" value="cll" name="hobby">123456
    <input type="checkbox" value="ckl" name="hobby">123457
    <input type="submit" value="登陆"/>
</form>
</body>
</html>

The result is
Insert picture description here
1.2 get all the parameters by key name

System.out.println("-------------通过键名获取所有的参数--------------");
//        request.getParameterValues  适用于  一个键名 有多个参数
        String[] hobies = request.getParameterValues("hoby");
        for (String hoby1 : hobies) {
    
    
            System.out.println(hoby1);
        }

The result is
Insert picture description here

1.3request.getParamyterNames() Get all the keys to access the servlet

      Enumeration<String> parameterNames = request.getParameterNames();
        while (parameterNames.hasMoreElements()){
    
    
            String name = parameterNames.nextElement();
//            System.out.println(name);
            String value = request.getParameter(name);
            System.out.println(name+"+++"+value);
        }

The result is
Insert picture description here
1.4 enumerate all the key names and values ​​through the map collection

Map<String, String[]> pm = request.getParameterMap();
Set<String> keySet = pm.keySet();
for (String key : keySet) {
    
    
    String[] values = pm.get(key);
    for (String value : values) {
    
    
        System.out.println(key+"----"+value);
    }
}

The result is
Insert picture description here

2 Solve the Chinese garbled problem of request to obtain parameters

In the 1.1 method, if you enter Chinese in the username text box, garbled characters will appear. For example
Insert picture description here

We can also solve these Chinese garbled codes by adding the code in the red box in the position below.
Insert picture description here
Insert picture description here

3. Request forwarding

It is a way to jump resources inside the server. For example, in the development of Century, we need some different servlets. Each person completes different functions. When we access aservlet to achieve some functions, we need to jump to a new bservlet. This is the resource jump.

for example

package cn.sc;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/test1")
public class test1 extends HttpServlet {
    
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        System.out.println("我的貂,蝉在哪里");
        //1.获取request的请求转发器,内部参数为转发的路径
        RequestDispatcher requestDispatcher = request.getRequestDispatcher("/test2");
        //2.调用转发器对象,传入参数request和response
        requestDispatcher.forward(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        this.doPost(request,response);
    }
}

Jump to test2

package cn.sc;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/test2")
public class test2 extends HttpServlet {
    
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        System.out.println("千军万马一将在,探囊取物有何难");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        this.doPost(request,response);
    }
}

The result is
Insert picture description here

Guess you like

Origin blog.csdn.net/s001125/article/details/111239041