リクエストパラメータの一般的なフォーマットとデータ共有

1.リクエストデータを取得するための4つの一般的な方法:getParameter

1.1 getParamter(キー名)を介してパラメーター値を取得します。getおよびpostリクエストは一般的です。

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コード

<!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>

結果は
ここに画像の説明を挿入します
1.2です。キー名ですべてのパラメータを取得します

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

結果は
ここに画像の説明を挿入します

1.3request.getParamyterNames()サーブレットにアクセスするためのすべてのキーを取得します

      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);
        }

結果は
ここに画像の説明を挿入します
1.4であり、マップコレクションを通じてすべてのキー名と値を列挙します

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);
    }
}

結果は
ここに画像の説明を挿入します

2パラメータを取得する要求の中国語の文字化けした問題を解決します

1.1の方法では、ユーザー名のテキストボックスに中国語を入力すると、文字化けした文字が表示されます。たとえば、
ここに画像の説明を挿入します

下の位置にある赤いボックスにコードを追加することで、これらの中国語の文字化けしたコードを解決することもできます。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

3.転送をリクエストします

これはサーバー内のリソースをジャンプする方法です。たとえば、Centuryの開発では、いくつかの異なるサーブレットが必要です。各人が異なる機能を実行します。いくつかの機能を実現するためにサーブレットにアクセスするときは、新しいサーブレットにジャンプする必要があります。これはリソースジャンプです。

例えば

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);
    }
}

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);
    }
}

結果は
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/s001125/article/details/111239041
おすすめ