Java Web Project —— Meeting Management System会议管理系统 【Part3— Listener+Filter】

4 篇文章 0 订阅

Listener

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.xml.transform.Result;
import com.oameeting.util.DbUtil;

public class myListener implements ServletContextListener{
    Connection conn = null;
    PreparedStatement ptmt = null;
    ResultSet rs = null;

    //关闭服务器
     public void contextDestoryed(ServletContextEvent arg0) {
        // TODO Auto-generated method stub
         //关闭服务器是,将显著存在上下文的数据取出,保存到数据库里
         ServletContext context = arg0.getServletContext();
         Object cc = context.getAttribute("countFlag");
         // java.lang.Object cc = context.getAttribute("countFlag");
         conn = DbUtil.getConn();
         String sql ="update counter set count=?";
         try {
            ptmt = conn.prepareStatement(sql);
        //  ptmt .setInt(1,(Integer)cc);
            ptmt.executeUpdate();


        } catch (SQLException e) {
            // TODO: handle exception
            e.printStackTrace();
        }

    }
    @Override
    public void contextInitialized(ServletContextEvent arg0) {
    // TODO Auto-generated method stub
    //启动时要从数据库拿出来 给上下文
        //查询操作 
         conn = DbUtil.getConn();
         String sql ="select count from counter";
         try {
            ptmt = conn.prepareStatement(sql);
            rs = ptmt.executeQuery();
            if(rs.next()){
                 ServletContext context = arg0.getServletContext();
                 context.setAttribute("countFlag", rs.getInt(1));    
            }   
        } catch (SQLException e) {
            // TODO: handle exception
            e.printStackTrace();
        }

    }
}

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.HttpServletResponse;

public class LoginFilter implements Filter{

    @Override
    public void destroy() {
    }

    @Override
    public void doFilter(ServletRequest arg0, ServletResponse arg1,
            FilterChain arg2) throws IOException, ServletException {

        //将父类ServletRequest强转换成转换成HttpServletRequest
        HttpServletRequest request = (HttpServletRequest)arg0;
        HttpServletResponse response = (HttpServletResponse)arg1;

        //如果登录过 则可继续显示一下界面,否则跳转到登录界面
        //但是每个界面都这样写很麻烦 所以需要过滤器filter
        String name=(String)request.getAttribute("sussname");
        if(name == null){
            request.getRequestDispatcher("login.jsp").forward(request, response);
        }

        arg2.doFilter(arg0, arg1);//传走
    }

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // TODO Auto-generated method stub      
    }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值