栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Filter过滤器初体验

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Filter过滤器初体验

什么是Filter过滤器
1.Filter是JavaEE的规范 也就是接口
作用是 拦截请求 、过滤响应

拦截请求常见的应用场景
1.权限检查
2.日记操作
3.事务管理

Filter过滤器的初体验
要求在web工程下有一个admin目录(html、jpg、jsp…)。这个admin目录下的所有资源必须是用户登录后才允许访问
//一般的jsp实现 有局限性
查看session中是否包含用户信息即可判断用户是否已经登陆

在请求到目标资源以前 先经过Fliter过滤器的过滤

package com.wangqiang.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 AdminFilter implements Filter{

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

	
	@Override
	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
			throws IOException, ServletException {
		HttpServletRequest httpServletRequest=(HttpServletRequest)servletRequest;
		HttpSession session=httpServletRequest.getSession();
		Object user=session.getAttribute("user");
		if(user==null){
			servletRequest.getRequestDispatcher("/login.jsp").forward(servletRequest, servletResponse);
			return ;
		}else{
			//放行 让用户继续向下访问用户的目标资源
			filterChain.doFilter(servletRequest, servletResponse);
		}
		
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		
	}

}

package com.wangqiang.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet{
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.setContentType("text/html;charset=utf-8");
		String username=req.getParameter("username");
		String password=req.getParameter("password");
		if("123".equals(username)&&"456".equals(password)) {
			req.getSession().setAttribute("user", username);
			resp.getWriter().write("登陆成功");
		}else {
			req.getRequestDispatcher("/login.jsp").forward(req, resp);
		}
	}
}



  
  
  
  	AdminFilter
  	com.wangqiang.filter.AdminFilter
  
  
  
  	AdminFilter
  	
  	/admin/*
  

	
		LoginServlet
		com.wangqiang.servlet.LoginServlet
	
	
		LoginServlet
		/loginServlet
	

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


	这是登录页面login.jsp
	
用户名:
密码:
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/592453.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号