JavaWed 9-7下午
过滤器简介
– 过滤器能够对Servlet容器的请求和响应对象进行检查和修改。
过滤器的作用
– 过滤器在Servlet被调用之前检查Request对象,修改Request Header和Request内容
– 过滤器在Servlet被调用之后检查Response对象,修改Response Header和Response内容。
过滤的内容
– Servlet、JSP、HTML等文件
过滤器的过滤过程
– 客户端发送请求的时候在请求到达 Servlet 之前过滤器 (Filter)的代码被调用对请求的字符集进行编码设置,然后 Servlet 返回响应给客户端,
在返回响应给客户端之前 Filter 里面的代码又被调用对相应中的编码进行设置;Filer 也可以有多个,当 Filer 有多个的时候调用顺序时从第一个到最后一个,
Servlet返回响应给客户端的顺序是从最后一个到第一个在回到客户端。
创建过滤器:
所有的过滤器类都必须实现javax.servlet.Filter接口。这个接口还有3个必须实现的方法:
– 初始化方法
public void init (FilterConfig config)
– 过滤方法
public void doFilter(ServletRequest req,ServletResponse resp,FilterChain chain)
– 销毁过滤器方法
public void destroy( )
过滤器的配置:
SetCharacterEncodingFilter
com.neuedu.utils.SetCharacterEncodingFilter
SetCharacterEncodingFilter
/*
如何解决 dmin 和 user 不登录进不去:
逻辑:
先在 filter 包里创建一个 Filter . java
1、首先获取用户请求的 url
HttpServletRequest req=(HttpServletRequest)request;
String url=req.getRequestURL().toString();
HttpServletResponse rep=(HttpServletResponse)response;
2、如果url中含有/user/,那么确认session中是否有用户数据,如果没有那么用户登录跳转到 login.jsp
HttpSession session=req.getSession();
if(url.contains("/user/"))
{
System.out.println("/user/");
User user=(User)session.getAttribute("user");
if(user==null)
{
rep.sendRedirect(req.getContextPath()+"/login.jsp");
}else
{
以上情况都不存在那么用户合法,该干嘛干嘛
chain.doFilter(request, response);
}
}else if(url.contains("/admin/"))3、如果url中含有/admin/,那么确认session中是否有用户数据并且用户的rule是1,如果没有那么用户登录跳转到 login.jsp
{
System.out.println("/admin/");
User user=(User)session.getAttribute("user");
if(user==null||!"1".equals(user.getRule()))
{
rep.sendRedirect(req.getContextPath()+"/login.jsp");
}else
{
4、以上情况都不存在那么用户合法,该干嘛干嘛
chain.doFilter(request, response);
}
}else
{
chain.doFilter(request, response);
}
jsp九大内置对象详解:
JSP内置对象(9个内置对象):
1、PageContext javax.servlet.jsp.PageContext JSP的页面容器
2、request javax.servlet.http.HttpServletrequest 获取用户的请求信息
3、response javax.servlet.http.HttpServletResponse 服务器向客户端的回应信息
4、session javax.servlet.http.HttpSession 用来保存每一个用户的信息
5、application javax.servlet.ServletContext 表示所有用户的共享信息
6、config javax.servlet.ServletConfig 服务器配置信息,可以取得初始化参数
7、out javax.servlet.jsp.jspWriter 页面输出
8、page java.lang.object)
9、exception java.lang.Throwable