request请求就是用户放出的请求信息,这个信息分为get和post两种形式,二者的区别其实也很简单。
- get请求获取request信息是通过字符串直接获取,
- 而post请求是通过IO流的输入流获取,获取后也可以转换为字符串的形式。
因为二者除了这点区别外其他都是一样的,所以我们可以只在doGet下写一遍请求的处理,然后在另一个doPost的方法下调用这个doGet方法,节省时间。
this.doGet(request,response);//在post下调用doGet方法
中文乱码
当请求中有中文时,会出现乱码情况,其实就是编码和解码的方式不统一造成的,浏览器在进行编码时用的时UTF-8,而tomcat解码时用的是 ISO-8859-1, 我们只要将解码的方式也设置成UTF-8就可以了。
request.setCharacterEncoding("UTF-8");//将解码方式改为UTF-8
请求转发
当接受到一个请求,而当前的资源A无法实现请求时,如果资源B可以实现,可以在A下携带请求跳转到资源B下,整个过程只有一次请求和一次响应,并且资源B必须是在当前服务器中,不可以是外部服务器中的资源,这个工程中可以通过request来共享信息。
request.getRequestDispatcher(“请求转发的目的地路径").forward(request.response);//请求转发
重定向
当接受到一个请求,而当前的资源A无法实现请求时,如果资源B可以实现,浏览器在得到资源B的地址后会再次发出一个新的请求,并且资源B可以是任意位置的。这两次请求之间不能共享request的信息
response.sendRedirect("资源的路径");//重定向