packagecom.oumyye.过滤器;importjava.io.IOException;importjavax.servlet.Filter;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjavax.servlet.ServletException;importjavax.servlet.ServletRequest;importjavax.servlet.ServletResponse;public class EncodingFilter implementsFilter {private String charSet; //设置字符编码
public void init(FilterConfig config) throwsServletException {this.charSet = config.getInitParameter("charset"); //取得初始化参数
}public voiddoFilter(ServletRequest request, ServletResponse response,
FilterChain chain)throwsIOException, ServletException {
request.setCharacterEncoding(this.charSet); //设置统一编码
}public voiddestroy() {
}
}
配置web.xml文件
encoding
com.oumyye.过滤器.EncodingFilter
charset
UTF-8
encoding
/*
过滤器的应用---登陆验证
登陆验证是所有WEB开发中不可缺少的部分,最早的做法是通过验证session的方式完成,但是如果每个页面都这样做的话,则肯定会造成大量的代码重复,而通过过滤器的方式就可以避免这种重复的操作。
在这里需要注意的是,session本身是属于HTTP协议的范畴,但是doFilter()方法中定义的是ServletRequest类型的对象,那么要想取得session,则必须进行向下转型,将ServletRequest变为HttpServletRequest接口对象,才能够通过getSession()方法取得session对象。
packagecom.oumyye.过滤器;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.util.*;public class FilterLogin extends HttpServlet implementsFilter {privateFilterConfig filterConfig;public void init(FilterConfig filterConfig) throwsServletException {this.filterConfig =filterConfig;
}public voiddoFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain)throwsServletException,
IOException {
HttpSession session=((HttpServletRequest)request).getSession();
response.setCharacterEncoding("gb2312"); //响应客户端类型
if(session.getAttribute("user")==null){ //判断session中是否有user这个对象
PrintWriter out=response.getWriter(); //创建一个输出流//如果为空则通过javaScript脚本出输出提示并跳转到index.jsp页面
out.print("");
}else{
filterChain.doFilter(request, response);//否则继续执行
}
}public voiddestroy() {
}
}
User.java
packagecom.mr.filter;public classUser {privateString username;privateString password;publicString getUsername() {returnusername;
}publicString getPassword() {returnpassword;
}public voidsetUsername(String username) {this.username =username;
}public voidsetPassword(String password) {this.password =password;
}
}
配置web.XML
index.jsp
filterUser
com.oumyye.过滤器.FilterLogin
filterUser
/*
jsp页面:
index.jsp
alert("用户名不能为空")
document.form.name.focus();return false;
}if(document.form.password.value==""){
alert("密码不能为空")
document.form.password.focus();return false;
}
}
使用过滤器身份验证使用过滤器身份验证
用户名: | |
密 码: | |
loginresult.jsp
使用过滤器身份验证User user=newUser();
user.setUsername(name);
user.setPassword(password);
session.setAttribute("user",user);
response.sendRedirect("filter/loginsuccee.jsp");%>
loginsuccee.jsp
使用过滤器身份验证您己成功登录
返回