Request_获取请求参数中文乱码问题处理与Request_请求转发
Request_获取请求参数中文乱码问题处理
中文乱码问题:
get方式:tomcat 8 已经将get方式乱码问题解决了
post方法:会乱码
解决:在获取参数之前,设置request的编码request.setCharacterEncoding("utf-8");
package com.example.day14_servlethttprequest.request; 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.io.UnsupportedEncodingException; import java.util.Enumeration; import java.util.Map; import java.util.Set; @WebServlet("/requestDemo7") public class RequestDemo7 extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, UnsupportedEncodingException { this.doPost(request,response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, UnsupportedEncodingException { //1.设置流的编码 request.setCharacterEncoding("utf-8"); //获取请求参数username String username = request.getParameter("username"); System.out.println(username); } }
Request_请求转发
请求转发:一种在服务器内部资源跳转方式
1.步骤:
1. 通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path)
2. 使用RequestDispatcher对象来进行转发:forward(ServletRequest request, ServletResponse response)
2. 特点:
1. 浏览器地址栏路径不发生变化
2. 只能转发到当前服务器内部资源中。
3. 转发是一次请求
package com.example.day14_servlethttprequest.request; 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("/RequestDemo8") public class RequestDemo8 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("我的爱好是,篮球,唱跳,rap"); //转发到demo9资源 request.getRequestDispatcher("/RequestDemo9").forward(request,response); //request.getRequestDispatcher("http://www.itcast.cn").forward(request,response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request,response); } }
RequestDemo9
package com.example.day14_servlethttprequest.request; 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("/RequestDemo9") public class RequestDemo9 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); } }