这里有新鲜出炉的 JSP 教程,程序狗速度看过来!
JSP 全名为 Java Server Pages - java 服务器页面是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP 技术有点类似 ASP 技术,它是在传统的网页 html(标准通用标记语言的子集)文件 (*.htm,*.html) 中插入 Java 程序段 (Scriptlet) 和 JSP 标记(tag),从而形成 JSP 文件,后缀名为(*.jsp)。
下面小编就为大家带来一篇请求转发 jsp 页面乱码问题的快速解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
• 在最近的项目中 使用了 jsp+servlet 来开发项目,但是由于后台的不太熟练 导致了困难重重。所幸 学习能力还可以 一边做一遍学吧。
• 今天的问题:请求转发后页面的乱码问题
• 由于特殊原因——图片上传的 form 表单无法通过 ajax 提交 因此必须使用 form 表单直接提交。但是这样会导致一个问题:前后台交互的时候效果不好。为什么效果不好?这里说的不是功能的问题。作为 web 开发者,客户的体验我们要放在第一位。因此,我们必须将对客户的信息反馈放在一个比较重要的地位。说白了,就是上传个图片成没成功?我发布的信息是否成功的上传了?如果你上传东西的时候网页没反应,或者直接就跳转到其他页面,他会以为可以了,但是实际上没有上传到服务器上,原因可能很多,比如说是我现在的网络不好,或者文件太大了,或者是你的文件不支持,但是这作为不懂代码的用户来说是很难理解的,他们会认为你的网站做的实在是太垃圾了。
• 因此,我们才会费尽心思的去为客户去思考,把他们想知道的信息传达给他们。
• 理所当然,ajax 很实用,但是在文件流的情况下是无法通过 ajax 上传数据的。
• 于是 request.getRequestDispacher('url').forward 请求转发和重定向派上了用场。而重定向是无法共享数据的,因此只能使用请求转发。
• 在此,文件为 uploadServlet 和 user.jsp 页面。当上传购物的信息时候,我所有信息已经插入到后台,需要为用户返回信息说,你成功了。那么传统的方式,request.setAttribute() 很实用,在 jsp 页面上用 request 获取值判断是否成功就可以了。
• 但是 转发回来之后 页面乱码了。。。
• 经多方查找资料,终于找到解决方案;
• 过滤器 配置成过滤所有的文件。
• 现粘贴如下:
- 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 配置:
- <filter>
- <filter-name>EncodingFilter</filter-name>
- <filter-class>com.java.Filter.EncodingFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>EncodingFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
以上这篇请求转发 jsp 页面乱码问题的快速解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 phperz。
来源: http://www.phperz.com/article/17/0811/339087.html