请求转发后页面的乱码问题•学习能力还可以一边做一遍

优采云 发布时间: 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教程频道阅读相关教程知识。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线