⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 boardfilter.java

📁 基于struct结构的jsp
💻 JAVA
字号:
package com.ntsky.bbs.service;

import java.util.*;
import javax.servlet.http.*;
import org.apache.log4j.Logger ;

import com.ntsky.bbs.action.Constant;
import com.ntsky.bbs.service.*;
import com.ntsky.bbs.service.UserFilter;
import com.ntsky.bbs.service.TopicUtil;
import com.ntsky.bbs.service.Topic;

/**
 * <p>Title: Ntsky OpenSource BBS</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: WWW.FM880.COM</p>
 * @author 姚君林
 * @version 1.0
 */

public class BoardFilter{
    private final static Logger logger = Logger.getLogger(BoardFilter.class);

    private static BoardFilter boardFilter = null;

    private BoardFilter(){}

    public static synchronized BoardFilter getInstance(){
        if(boardFilter == null){
            boardFilter = new BoardFilter();
        }
        return boardFilter;
    }

    /**
     * 模块检测
     */
    public String filterBoard(HttpServletRequest request,HttpServletResponse response,HttpSession session){
        int boaId = getId(request, "boaId");
        logger.info("boaId = " + boaId);
        //处理显示时候传值问题
        if (boaId == 0) {
            //boaId = Integer.parseInt((String) request.getAttribute("boaId"));
            int topicId = getId(request, "topicId");
            if(topicId == 0){
                int repId = getId(request, "repId");
                Reply reply = ReplyFactory.getInstance().listReplySin(repId);
                topicId = reply.getRepTopicId();
            }
            logger.info("topicId = " + topicId);
            Topic topic = TopicUtil.listTopic(topicId);
            boaId = topic.getTopicBoaId();
        }
        Board board = getBoard(boaId);

        UserFilter userFilter = UserFilter.getInstance();
        User user = userFilter.getSessionUser(session, "user");
        Map userRoleMap = userFilter.filterUser(session, request);
        int boaState = board.getBoaState();
        switch (boaState) {
            //普通板块
            case 1:
                return "";
                //会员板块
            case 2:
                //检测用户是否为空
                checkUserLogon(response, request, user);
                //嘉宾板块
            case 3:
                checkUserLogon(response, request, user);
                return checkUserRole(user);
                //加密板块
            case 4:
                //String boaPasswd = (String) session.getAttribute("boaPasswd");
                return checkBoaPassword(board);
        }
        return "";
    }

    /**
     * 获取boaId
     */
    public int getId(HttpServletRequest request,String param){
        String strId = request.getParameter(param);
        if(strId==null){
            return 0;
        }
        else{
            return Integer.parseInt(strId);
        }
     }

     /**
      * 获取模板对象
      */
     public Board getBoard(int boaId){
         Board board = BoardUtil.showBoaInfo(boaId);
         return board;
     }
     /**
      * 模板的状态
      */
     public int getBoardState(int boaId){
         Board board = getBoard(boaId);
         //该模块的权限
         int boaState = board.getBoaState();
         return boaState;
     }

     /**
      * 用户检测
      */
     public void checkUserLogon(HttpServletResponse response,HttpServletRequest request,User user){
         try {
             if (user == null) {
                response.sendRedirect(request.getContextPath() + "/logon.html");
            }
         }
         catch (Exception ex) {
             logger.error("页面跳转错误.....");
         }
     }

     /**
      * 用户角色里是否有权限
      */
     /*public String checkUserRole(Map usrRoleMap){
         if (!usrRoleMap.containsValue("0")) {
             return "<script>alert(\"sorry! 你不是嘉宾,不能进入!\")</script><script>javascript:history.back(-1)</script>";
         }
         return "";
     }*/
     public String checkUserRole(User user){
         Proxy proxy = new UserProxy();
         if(!proxy.isAction(user.getUsrRole(),34)){
             return "<script>alert(\"sorry! 你不是嘉宾,不能进入!\")</script><script>javascript:history.back(-1)</script>";
         }
         return "";
     }

     /**
      * 模块密码检测
      */
     public String checkBoaPassword(Board board){
         String boaPasswd = board.getBoaPasswd();
         String str = "<script language=javascript>var promptShow    = \"请输入该版块的密码\"; var enterText   = prompt(promptShow, \"\"); if (!enterText) { alert(\"您没有输入值\"); history.back(-1);}else{if(\""+boaPasswd+"\"!=enterText){alert(\"您输入了错误的密码!\");history.back(-1); }}</script>";
         return str;
     }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -