<!-- 过滤器1,解决中文乱码 -->
<filter>
<!-- 名字随便起,但是类要写完整的带包的路径-->
<filter-name>encodingFitler</filter-name>
<filter-class>com.accp.filter.EcondingFilter</filter-class>
<!-- 获取初始化的一些参数-->
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<!-- 过滤器2,权限控制 -->
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.accp.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingFitler</filter-name>
<!-- *表示匹配所有 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<!-- 过滤除login.jsp和register.jsp页面的 -->
<url-pattern>/page/*</url-pattern>
</filter-mapping>
这个是过滤器解决中文乱码的类
package com.accp.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;
//过滤器类
public class EcondingFilter implements Filter {
private String charset = null;
public void destroy() {
// TODO Auto-generated method stub
System.out.println("filter销毁");
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
System.out.println("doFilter前");
//对请求的转码
request.setCharacterEncoding(charset);
//对回应的转码
response.setCharacterEncoding(charset);
chain.doFilter(request, response);
System.out.println("doFilter后");
}
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
System.out.println("filter初始化");
//读取初始化filter的参数
charset=filterConfig.getInitParameter("encoding");
System.out.println(charset);
}
}
这个是过滤器控制用户权限的类
package com.accp.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.HttpSession;
public class LoginFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
System.out.println("filter销毁");
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
System.out.println("doFilter前面");
//获取HttpServletRequest通过,它的实例获取一个session
HttpSession session = ((HttpServletRequest)request).getSession();
//判断session中是否有数据
if(session.getAttribute("user")!=null){
System.out.println(session.getAttribute("user"));
chain.doFilter(request, response);
System.out.println("doFilter后");
}else{
String mes = "你还没有登录";
System.out.println(mes);
request.setAttribute("mes", mes);
request.getRequestDispatcher("../login.jsp").forward(request, response);
}
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
System.out.println("filter被实例化");
}
}
过滤器无需我们在程序中调用,每次当我们获取web请求时,会首先自动的进入过滤器类。
分享到:
相关推荐
jsp 用过滤器解决中文乱码问题的方法 jsp(JavaServer Pages)是一种广泛应用于Web开发的技术,但是在实际开发中,我们经常会遇到中文乱码问题。为了解决这个问题,我们可以使用jsp过滤器来实现编码设置。我今天要...
JSP利用过滤器解决request中文乱码问题 JSP中requestgetParameter中文乱码问题是经常遇到的问题,解决这个问题有多种方法,但利用过滤器解决request中文乱码问题是其中最有效的一种方法。本文将详细介绍如何使用...
总之,解决JavaWeb中的乱码问题需要从多个层面进行考虑:设置过滤器统一请求和响应的编码,确保JSP页面的编码正确,以及在处理文件时注意文件内容的编码。通过这些方式,我们可以有效防止和解决乱码问题,提高应用...
通过上述步骤,我们可以有效地利用Servlet过滤器来解决Web应用中的乱码问题。这种方式不仅提高了代码的可维护性和扩展性,还保证了用户数据的准确性。在实际项目中,可以根据具体的业务需求调整过滤器的逻辑,例如...
### jsp过滤器——解决中文乱码问题 #### 背景介绍 在Web应用开发过程中,特别是使用Java Server Pages (JSP)进行中文字符处理时,经常遇到的一个问题是中文字符显示为乱码。这主要是因为客户端与服务器端之间存在...
【如何配置Filter过滤器处理JSP中文乱码】 在开发Java Web应用时,尤其是在处理包含中文字符的请求时,可能会遇到中文乱码的问题。解决这个问题的一种常见方法是使用Filter过滤器。以下是配置Filter过滤器处理JSP...
通过过滤器,我们可以实现诸如字符编码转换、权限验证、日志记录等功能,而本项目中的过滤器就是用于处理中文乱码问题的。 中文乱码的产生通常与字符编码有关。在不同的系统、不同的编程语言中,字符编码可能会有所...
在标题“servlet过滤器配置,解决JSP的所有乱码”和描述“JSP页面获得servlet是不是经常出现乱码呢?很烦人哦,那就试试这个吧,可以解决所有的乱码,里面有说明教你怎么配”中,主要涉及的知识点是通过配置Servlet...
本篇文章将详细讲解如何处理JSP中的中文乱码以及如何通过过滤器(Filter)来解决这一问题。 首先,中文乱码的处理主要涉及到字符集(Charset)的概念。在JSP中,当请求参数包含中文字符时,如果不设定字符编码,...
本文将详细讲解如何利用过滤器来解决中文乱码问题。 1. **理解中文乱码** 中文乱码通常是因为字符编码不一致导致的。在计算机系统中,字符被编码成二进制表示,不同的编码标准(如GBK、UTF-8等)对同一字符有不同...
控制器servlet中的请求编码格式为utf-8,数据库连接url中添加useUnicode=true&characterEncoding=UTF-8参数,编写filter过滤器设置请求和响应的编码格式为gb2312,最后配置web.xml文件中filter映射关系,来确保中文...
实际上,这个技术点是基于Servlet过滤器机制实现的,它不仅可以处理中文乱码问题,还可以扩展应用到其他类型的请求数据处理,例如进行数据格式验证、安全检查等。过滤器是JSP中一个非常强大和灵活的功能,可以有效地...
通过以上方法,基本可以解决servlet和jsp在接收和显示中文时的乱码问题。但在实际开发中,可能还需要根据具体环境和需求进行调整。了解这些知识点,对于Java Web开发者来说是非常必要的,能够提高项目的稳定性和用户...
JSP中文乱码过滤器通过拦截请求和响应,统一设置字符编码,解决了JSP页面可能出现的乱码问题。理解其工作原理并正确配置,可以帮助开发者在项目中轻松应对中文乱码,提高用户体验。在实际开发中,我们还应注意其他...
jsp 传参 servlet 接收中文乱码问题的解决方法 jsp 传参 servlet 接收中文乱码问题是一个经常遇到的问题,特别是在使用 Hibernate+Servlet 框架时。当我们在 jsp 页面传参到 servlet 时,中文字符经常会出现乱码...
过滤器在Servlet容器中扮演着拦截请求和响应的角色,可以在请求到达目标资源(如JSP页面)之前对其进行预处理,包括设置合适的字符编码,以确保中文字符正确解析。下面将详细介绍如何使用过滤器来解决这个问题。 ...
### Servlet及JSP解决中文乱码问题 #### 一、引言 在Web开发中,中文乱码问题一直是困扰开发者的一大难题。特别是在使用Java技术栈(如Servlet与JSP)进行开发时,如果处理不当,很容易出现中文字符显示乱码的情况...
### 利用过滤器解决JavaWeb(JSP)乱码问题 #### 一、问题背景与重要性 在JavaWeb开发中,特别是在使用JSP技术时,开发者常常会遇到中文字符显示异常的问题,即所谓的“乱码”。这不仅影响用户体验,还可能导致数据...
总结起来,"JSP乱码解决过滤器"是一种利用Java Servlet Filter机制预先设定请求和响应的字符编码,以避免因编码不一致导致的乱码问题。通过创建并配置类似`CharSetFilter`的过滤器,开发者可以有效地控制整个Web应用...
过滤器是Servlet API的一部分,允许我们在数据请求到达目标资源之前或之后进行拦截和处理,包括对字符编码的转换,从而避免乱码的出现。 1. **过滤器概念**: - 过滤器是Java Servlet规范中定义的一种组件,它实现...