JavaWed 9-7下午

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值