15:Request应用

### 6.7、HttpServletRequest

HttpServletRequest代表客户端的请求,用户通过Http协议访问服务器,HTTP请求中的所有信息会被封装到HttpServletRequest,通过这个HttpServletRequest的方法,获得客户端的所有信息;

15:Request应用

 

15:Request应用

 

#### 获取参数,请求转发

15:Request应用

 

创建一个module(webapp的maven)

15:Request应用

删除之前的index.jsp,重新new一个index.jsp

 

15:Request应用

 

15:Request应用

 

```java

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    req.setCharacterEncoding("utf-8");

    resp.setCharacterEncoding("utf-8");

 

    String username = req.getParameter("username");

    String password = req.getParameter("password");

    String[] hobbys = req.getParameterValues("hobbys");

    System.out.println("=============================");

    //后台接收中文乱码问题

    System.out.println(username);

    System.out.println(password);

    System.out.println(Arrays.toString(hobbys));

    System.out.println("=============================");

 

    System.out.println(req.getContextPath());

    //通过请求转发

    //这里的 / 代表当前的web应用

    req.getRequestDispatcher("/success.jsp").forward(req,resp);

}

```

15:Request应用

 

15:Request应用

 

运行

15:Request应用

 

15:Request应用

 

**面试题:请你聊聊重定向和转发的区别?**

相同点

- 页面都会实现跳转

不同点

- 请求转发的时候,url不会产生变化   307

- 重定向时候,url地址栏会发生变化; 302