jsp过滤器之encoding字符编码过滤器

一、创建两个jsp页面:a.jsp和b.jsp。

1、a.jsp

1 <!-- 登陆表单 -->
2 <form action="CheckLoginServlet.do" method="post">
3     <input type="text" name="username">
4     <input type="password" name="password" />
5     <input type="submit" value="submit">
6 </form>

2、b.jsp

1 <!-- 登录成功,打印欢迎信息 -->
2 ${requestScope.username }    欢迎您。。。。。。

二、创建用于进行登录判断的Servlet:CheckLoginServlet.js

 1 import java.io.IOException;
 2 import javax.servlet.ServletException;
 3 import javax.servlet.annotation.WebServlet;
 4 import javax.servlet.http.HttpServlet;
 5 import javax.servlet.http.HttpServletRequest;
 6 import javax.servlet.http.HttpServletResponse;
 7
 8 @WebServlet("/CheckLoginServlet.do")
 9 public class CheckLoginServlet extends HttpServlet {
10     private static final long serialVersionUID = 1L;
11
12     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
13         /**
14          * 登录验证:如果用户名和密码相同,跳转到b.jsp页面。否则跳回到a.jsp页面重新登录。
15          */
16         String name = request.getParameter("username");
17         String password = request.getParameter("password");
18         if(name.equals(password) && name.trim()!="" && password.trim()!=""){
19             request.setAttribute("username", name);
20             request.getRequestDispatcher("b.jsp").forward(request, response);
21             return;
22         }else{
23             response.sendRedirect("a.jsp");
24         }
25     }
26 }

三、在web.xml文件中配置初始化参数encoding,值为utf-8。

<context-param>
    <param-name>encoding</param-name>
    <param-value>utf-8</param-value>
</context-param>

四、编写字符编码过滤器:EncodingFilter.java,过滤根目录下所有的文件。

 1 import java.io.IOException;
 2 import javax.servlet.Filter;
 3 import javax.servlet.FilterChain;
 4 import javax.servlet.FilterConfig;
 5 import javax.servlet.ServletException;
 6 import javax.servlet.ServletRequest;
 7 import javax.servlet.ServletResponse;
 8 import javax.servlet.annotation.WebFilter;
 9
10 @WebFilter("/*")
11 public class EncodingFilter implements Filter {
12
13     private String encoding;
14
15     public EncodingFilter() {}
16
17     public void init(FilterConfig fConfig) throws ServletException {
18         encoding = fConfig.getServletContext().getInitParameter("encoding");
19     }
20
21     public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
22         request.setCharacterEncoding(encoding);
23         chain.doFilter(request, response);
24     }
25
26     public void destroy() {}
27
28 }

五、完成。。。。。。

时间: 2024-12-22 11:47:27

jsp过滤器之encoding字符编码过滤器的相关文章

Servlet字符编码过滤器

在Java Web程序开发中,由于Web容器内部使用编码格式并不支持中文字符集,所以,处理浏览器请求中的中文数据就会出现乱码的现象.由于Web容器使用了ISO-8859-1的编码格式,所以在Web应用的业务处理中也会使用ISO-8859-1编码格式.虽然浏览器提交的请求使用的是中文编码格式UTF-8,但经过业务处理中的ISO-8859-1编码,仍然会出现中文乱码现象.解决此问题的方法非常简单,在业务处理中重新指定中文字符集进行编码即可解决.在实际的开发过程中,如果通过每一个业务处理指定中文字符集

servlet中的字符编码过滤器的使用

一:简介 Servlet过滤器是客户端和目标资源的中间层组件,主要是用于拦截客户端的请求和响应信息.如当web容器收到一条客户端发来的请求 web容器判断该请求是否与过滤器相关联,如果相关联就交给过滤器进行处理,处理完可以交给下一个过滤器或者其他业务,当其他业务完成 需要对客户端进行相应的时候,容器又将相应交给过滤器进行处理,过滤器处理完响应就将响应发送给客户端. 注意:上面话中的几个问题 1:web容器是如何判断请求和过滤器相关联. 2:过滤器是如何将处理完的请求交给其他过滤器的 前提知识:过

Java Web---登录验证和字符编码过滤器

什么是过滤器? 在Java Web中,过滤器即Filter.Servlet API中提供了一个Filter接口(javax.servlet.Filter),开发web应用时,如果编写的Java类实现了这个接口,则把这个Java类称之为过滤器Filter.通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截.简单说,就是可以实现web容器对某资源的访问前截获进行相关的处理,还可以在某资源向web容器返回响应前进行截获进行处理. 创建一个Filter的步骤 1

深入Struts2的过滤器FilterDispatcher--中文乱码及字符编码过滤器

引用 前几天在论坛上看到一篇帖子,是关于Struts2.0中文乱码的,楼主采用的是spring的字符编码过滤器(CharacterEncodingFilter)统一编码为GBK,前台提交表单数据到Action,但是在Action中得到的中文全部是乱码,前台的页面编码都是GBK没有问题.这是为什么呢?下面我们就通过阅读FilterDispatcher和CharacterEncodingFilter这两个过滤器的源代码,了解其实现细节,最终得出为什么中文还是乱码! 测试环境及其前置知识 Struts

字符编码过滤器

<!--字符编码过滤器--> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <!--指定字符编码--> <init-param> <param-name>enc

springmvc字符编码过滤器对于中文get请求乱码问题的解决方法

<filter> <filter-name>encodingFilter</filter-name> <filter-class> org.springframework.web.filter.CharacterEncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-

Encoding filter 编码过滤器

1.首先编写过滤器,实际上就是继承了filter接口的一个类,实现其中的init  doChain  和destroy方法 package com.util; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; impor

Spring字符编码过滤器

1 <filter> 2 <filter-name>characterEncodingFilter</filter-name> 3 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 4 <init-param> 5 <param-name>encoding</param-name> 6 <

CharacterEncodingFilter-Spring字符编码过滤器

通过源码可以看到在web.xml配置CharacterEncodingFilter 时,可以配置两个参数:encoding和forceEncoding : encoding:编码格式: forceEncoding :是否允许设置的encoding 覆盖request和response中已经存在的encodings. 如何使用: 1 <filter> 2 <filter-name>characterEncodingFilter</filter-name> 3 <fi