The request object of Javaweb

Table of contents

The browser interacts with the servlet 

request Get request data

The use of request general method request parameters

Idea quickly creates servlets

Solve the Chinese garbled problem (post solution)


 The browser interacts with the servlet 

package com.mwy.web;

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;

//http和servlet进行数据交互,动态显示页面内容

@WebServlet("/demo03")
public class ServletDemo03 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String name = req.getParameter("username");

        resp.setHeader("content-type","text/html;charset=utf-8");
        resp.getWriter().write("<h1>"+name+"欢迎您!</h1>");
    }
}

request Get request data

get method: use the getQueryString method to obtain parameters

post method: use the character input stream to obtain parameters 

package com.mwy.web;

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.BufferedReader;
import java.io.IOException;

//request请求方式,获取请求行
//输出结果:
//GET
//        /Tomcat_demo1_war
//        http://localhost:8085/Tomcat_demo1_war/req1
//        /Tomcat_demo1_war/req1
//        usernamezhangsan&password=123456

@WebServlet("/req1")
public class ServletDemo04 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        获取方法:get或者post
        String method = req.getMethod();
        System.out.println(method);
//获取访问资源路径
        String contextPath = req.getContextPath();
        System.out.println(contextPath);

        StringBuffer url = req.getRequestURL();
        System.out.println(url);

        String uri = req.getRequestURI();
        System.out.println(uri);

//        参数
        String queryString = req.getQueryString();
        System.out.println(queryString);

        //--------------获取请求头,user-agent:浏览器的版本信息-----------
        String header = req.getHeader("user-agent");
        System.out.println(header);
//输出:
// Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.70


    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取post参数

//        获取字符输入流
        BufferedReader br = req.getReader();
//        读取数据
        String line=br.readLine();
        System.out.println(line);
        
//        输出:username=111&password=111
    }
}

The use of request general method request parameters

The most used method is getParameter() to get a single parameter value

The method in get is the same as that in post, so you can only write the method in get, and then use this.doGet(res, req) in doPost to directly use the method already written in get to improve efficiency. 

package com.mwy.web;

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.Map;

//request通用方法请求参数的使用

@WebServlet("/demo2")
public class ServletDemo2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //get请求逻辑
        System.out.println("get...");

//        1. 获取所有参数的map集合
        Map<String,String[]> map = req.getParameterMap();
        for(String key:map.keySet()){
            System.out.println(key+":");

            String[] values=map.get(key);
            for(String value:values){
                System.out.println(value+" ");
            }
        }
        System.out.println("------------------");

        //2. 获取对应的参数值
        String hobbies[]=req.getParameterValues("hobby");
        for(String hobby:hobbies){
            System.out.println(hobby);
        }

//        ------------------
//             1
//             2

//        3. 根据key获取单个参数值
        String psw = req.getParameter("password");
        String usn = req.getParameter("username");
        System.out.println(psw+" "+usn);


    }

//    get...
//username:
//19120543075
//
//password:
//111
//
//hobby:
//1

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //post请求逻辑
        //get请求逻辑
        System.out.println("post...");
//直接使用get中的方法
        this.doGet(req, resp);
        1. 获取所有参数的map集合
//        Map<String,String[]> map = req.getParameterMap();
//        for(String key:map.keySet()){
//            System.out.println(key+":");
//
//            String[] values=map.get(key);
//            for(String value:values){
//                System.out.println(value+" ");
//            }
//        }
//        System.out.println("------------------");
//
//        //2. 获取对应的参数值
//        String hobbies[]=req.getParameterValues("hobby");
//        for(String hobby:hobbies){
//            System.out.println(hobby);
//        }
//
        ------------------
             1
             2
//
        3. 根据key获取单个参数值
//        String psw = req.getParameter("password");
//        String usn = req.getParameter("username");
//        System.out.println(psw+" "+usn);
    }
//post
// username:
//19120543075
//password:
//qqqq
//hobby:
//1
//2
//------------------
//1
//2
//qqqq 19120543075
}

Idea quickly creates servlets

There is no solution for servlet in new:

(163 messages) There is no Servlet option in the right-click new list in idea_Zuo Yueer's Blog-CSDN Blog

modify template

 

 

Solve the Chinese garbled problem (post solution)

package com.mwy.web;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet("/RequestDemo1")
public class RequestDemo1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//        1. 解决乱码:getReader()
        request.setCharacterEncoding("UTF-8");
        
        //       2. 获取username
        String username = request.getParameter("username");
        System.out.println(username);
    }

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

Guess you like

Origin blog.csdn.net/weixin_45662399/article/details/126675284