请求转发后页面的乱码问题•学习能力还可以一边做一遍
优采云 发布时间: 2021-08-08 11:36请求转发后页面的乱码问题•学习能力还可以一边做一遍
•在最近的项目中,使用jsp+servlet来开发项目,但是由于后台不熟练,造成了很多困难。幸运的是,学习的能力还是可以边学边做的。
•今天的问题:请求转发后页面出现乱码
•由于特殊原因——图片上传表单无法通过ajax提交,必须直接使用form表单提交。但这会导致一个问题:前后交互时效果不好。为什么效果不好?我在这里谈论的不是功能问题。作为 Web 开发人员,我们必须将客户体验放在首位。因此,我们必须把信息反馈给客户放在更重要的位置。说白了就是上传图片不成功?我发布的信息上传成功了吗?如果你上传的时候网页没有反应,或者你只是跳转到另一个页面,他会认为可以,但实际上并没有上传到服务器。可能有很多原因,比如我现在的网络不好,或者文件太大,或者你的文件不支持,但是不懂代码的用户很难理解。他们会认为你网站所做的真的很垃圾。
•因此,我们会尽力为客户着想,将他们想知道的信息传达给他们。
•当然,Ajax 非常有用,但是在文件流的情况下,无法通过 Ajax 上传数据。
•所以 request.getRequestDispacher('url').forward 请求转发和重定向就派上用场了。重定向不能共享数据,所以只能使用请求转发。
•这里的文件是uploadServlet 和user.jsp 页面。上传购物信息时,我的所有信息都已经插入到后台了,需要返回信息让用户说你成功了。那么传统的方式,request.setAttribute()很实用,直接用request获取jsp页面上的值来判断是否成功。
•但是转发回来后,页面出现乱码。 . .
•多方查找资料,终于找到了解决办法;
•过滤器配置为过滤所有文件。
•粘贴如下:
package com.java.Filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class EncodingFilter implements Filter
{
public void destroy()
{
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException
{
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException
{
// TODO Auto-generated method stub
}
}
•web.xml 配置:
EncodingFilter
com.java.Filter.EncodingFilter
EncodingFilter
/*
以上请求转发jsp页面乱码问题的快速解决方法是小编分享的所有内容,希望能给大家参考,也希望大家支持ASPKU源代码库。
注意:请移步JSP教程频道阅读相关教程知识。