request请求

版权声明:yuanmomoya https://blog.csdn.net/yuanmomoya/article/details/82527473

request对象:

        创建: 服务器运行中接受到用户请求时,会将请求报文封装为请求对象,并传入到service方法中最终交给doGet

        代表:请求报文对象

        作用:获取请求报文中的所有内容

             1、获取请求头

             2、获取请求url地址中的所有内容

             3、获取请求参数[重要]

             4、请求的转发[重要]

       转发的特点:  转发和重定向的区别 是重点

             - 转发是在服务器内部执行的

             - 浏览器只发起了一次请求,得到了一个响应结果

             - 浏览器地址栏地址没有改变,打开的页面变为了转发之后的资源,url地址和打开的资源不对应

             - 浏览器不知道转发的发生

             - 效率相对重定向高

获取请求头、上下文

import java.io.IOException;

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class EHttpServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

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

        //1、获取请求头

        String agent = request.getHeader("User-Agent");

        System.out.println("agent:"+agent);

        //2、获取请求地址内容

        String scheme = request.getScheme();

        String serverName = request.getServerName();

        int port = request.getServerPort();

        //上面的了解。在后面的动态获取项目的全路径时会用到

        String path = request.getContextPath();//获取上下文路径,重点,项目中经常要获取项目名

        System.out.println(scheme+","+serverName+","+port+","+path);

        //3、获取请求参数[用户通过表单或get方式拼接在url地址后的键值对]   get提交参数:url?            username=aaa&age=111&password=1221321

        String username = request.getParameter("username");//根据请求参数的name值获取value值

        String age = request.getParameter("age");

        System.out.println("username:"+username);

        System.out.println("age:"+age);

        //调用其他类处理请求,在根据处理结果给用户响应

        //4、转发

        //获取请求转发器

        RequestDispatcher dispatcher = request.getRequestDispatcher("success.html");

        //发起转发

        dispatcher.forward(request, response);

    }



    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        doGet(request, response);

    }



}

猜你喜欢

转载自blog.csdn.net/yuanmomoya/article/details/82527473