小学生学习Java的request(请求)

HttpServletRequest

  HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。
request内部也维护一个map集合 添加获取删除值 作用范围:只对一次请求有效

获取表单提交的值(常用)

public class lianxi extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String gender = request.getParameter("gender");
        // 获取表单提交的多个值使用
        String[] hobbies = request.getParameterValues("hobbies");
        String city = request.getParameter("city");
        System.out.println(username + " " + password + " " + gender + " " + Arrays.toString(hobbies) + " " + city);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}
// 把请求中的参数 放到map中(常用)
        Map<String, String[]> map = request.getParameterMap();
        for (String key : map.keySet()) {
            String[] value = map.get(key);
            for (String string : value) {
                System.out.println(string);
            }
        }

请求转发

一次请求 并且响应到网页的是转发后的响应结果

    // 请求转发
    // 通过请求对象获取请求转发器
    RequestDispatcher dispatcher = request.getRequestDispatcher("/demo03");     
    // 转发

请求重定向

两次请求 超出了Request域的作用范围 不能使用Request域进行传值

        // 请求重定向
        // 参数是重定向的地址
        response.sendRedirect("/sh-web-03/demo03");

请求包含

一次请求 可以用Request域传值 两个Servlet的响应结果会一起返回给浏览器

        // 请求包含
        // 获取请求转发器
        RequestDispatcher dispatcher = request.getRequestDispatcher("/demo03");
        // 包含方法
        dispatcher.include(request, response);

猜你喜欢

转载自blog.csdn.net/ZMW1224/article/details/80791988