`
lspgdut
  • 浏览: 199443 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

动态改变首页

阅读更多

package https.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.common.AnnexXML;
import com.common.BlankUtil;
import com.common.Node;

public class CRTFilter implements Filter{
 
 public static HttpSession sessionWebApp;
 public static String xmlFilePath=null;
 public static String webXMLPath=null;
 

 public void destroy() {
  
  
 }

 public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
   FilterChain filterChain) throws IOException, ServletException {
  HttpServletRequest request=(HttpServletRequest)servletRequest;
     HttpServletResponse response=(HttpServletResponse)servletResponse;
     HttpSession session=request.getSession(false);
     sessionWebApp=session;
    
     String xmlFilePath=null; 
        if(!BlankUtil.isBlank(request)){
             
       if(!BlankUtil.isBlank(request)){
        HttpSession httpSession=request.getSession();
        xmlFilePath = request.getRealPath("WEB-INF/classes/annexInternet.xml");
      
          if(BlankUtil.isBlank(httpSession.getAttribute("xmlFilePath"))){
     httpSession.setAttribute("xmlFilePath", xmlFilePath);
    
      }
         this.xmlFilePath=xmlFilePath;
           
      
        if(BlankUtil.isBlank(this.webXMLPath)){
            this.webXMLPath = request.getRealPath("WEB-INF/web.xml");
        }
      }
        }
     ServletContext application=session.getServletContext();
     String port="";//端口号
     String IP="";//IP地址,域名如localhost

     String requestHost=request.getHeader("host");
     String[] args=requestHost.split(":");
     if(args.length==1){
      port="80";
      IP=args[0];
     }else {
      port=args[1];
      IP=args[0];
  }
   
    
     /**获取URL地址,比如:https://www.congguan.com:8443*/
     String   url=request.getScheme()+"://";  
        url+=request.getHeader("host");  
        url+=request.getRequestURI();
        if(request.getQueryString()!=null)  
              url+="?"+request.getQueryString();
       
        session.setAttribute("userIP", IP);//这个是给HibernateFilter判断使用的
     
        //同一个session不能够可以连接两个系统
        /*if(!BlankUtil.isBlank(session.getAttribute("IP")) && !BlankUtil.isBlank(session.getAttribute("IP2"))){
         session.removeAttribute("IP2");
         session.removeAttribute("IP1");
        }*/
      
          Node cayNode=AnnexXML.getCayNode();
        if(BlankUtil.isBlank(session.getAttribute("cayNode"))){
         while(true){
           if(!BlankUtil.isBlank(cayNode) && !BlankUtil.isBlank(cayNode.getUrl())){
          session.setAttribute("cayNode", cayNode);
          break;
           }
           if(BlankUtil.isBlank(cayNode) || BlankUtil.isBlank(cayNode.getUrl())){
            cayNode=AnnexXML.getCayNode();
           }
         }
        }
  
        Node cgNode=AnnexXML.getCgNode();
        if(BlankUtil.isBlank(session.getAttribute("cgNode"))){
         while(true){
            if(!BlankUtil.isBlank(cgNode) && !BlankUtil.isBlank(cgNode.getUrl())){
          session.setAttribute("cgNode", cgNode);
          break;
            }
            if(BlankUtil.isBlank(cgNode) || BlankUtil.isBlank(cgNode.getUrl())){
             cgNode=AnnexXML.getCgNode();
            }
         }
        }
        //System.out.println(session.isNew());
       
     
  
      Node sessionCayNode=(Node)session.getAttribute("cayNode");
      Node sessionCgNode=(Node)session.getAttribute("cgNode");
       if(sessionCayNode.getUrl().equals(url.trim())){
       
        session.removeAttribute("IP");
       }
       if(sessionCgNode.getUrl().equals(url)){
        session.removeAttribute("IP2");
       }
       
       
        if(IP.equals(cayNode.getIp()) && BlankUtil.isBlank(session.getAttribute("IP"))){
         session.setAttribute("IP", cayNode.getIp());
         String redirect=cayNode.getIndexPage();
         session.removeAttribute("IP2");
         response.sendRedirect(redirect);        
        }
     
        else if(IP.equals(cgNode.getIp()) && BlankUtil.isBlank(session.getAttribute("IP2"))){
         session.setAttribute("IP2", cgNode.getIp());
         String redirect=cgNode.getIndexPage();
         session.removeAttribute("IP");
         response.sendRedirect(redirect);
        }
      
       
       /* if(IP.equals("cg") && BlankUtil.isBlank(session.getAttribute("IP2"))){
         session.setAttribute("IP2", "cg");
         String redirect="indexs.jsp";
         response.sendRedirect(redirect);        
        }*/
       
       
       
    
  filterChain.doFilter(servletRequest, servletResponse);
  
 }

 public void init(FilterConfig filterConfig) throws ServletException {
  
  System.out.println("CRTFilter init...................");
 }

}

分享到:
评论

相关推荐

    动态改变Menu,动态改变ToolBar,调用多个FormViewSample

    "动态改变Menu,动态改变ToolBar,调用多个FormViewSample"这个项目显然关注的是如何在应用程序中实现灵活多变的用户界面,使得用户体验更加丰富和个性化。我们将深入探讨这三个核心概念。 1. 动态改变Menu: 菜单是...

    Unity3D展示必用的动态改变模型大小与方向2

    Unity3D动态改变模型大小与方向的实现方法 Unity3D是一个功能强大的游戏引擎,可以创建各种类型的游戏和互动式应用程序。然而,在 Unity3D 中,如何动态改变模型的大小和方向是开发者经常遇到的问题。本文将详细...

    串口编程的三种方法,以及动态改变串口的校验位

    ### 串口编程的三种方法及其在动态改变校验位中的应用 在现代工业自动化、物联网及嵌入式系统开发中,串行通信是设备间数据传输的重要方式之一。串口编程涉及多种技术和方法,而动态调整串口参数,如波特率、数据位...

    VC动态改变对话框大小 控件动态改变位置

    1. 对话框大小的动态改变: 在VC++6.0中,对话框大小的改变通常通过重载`OnSize`消息处理函数来实现。当对话框的大小发生变化时,系统会发送WM_SIZE消息,我们需要在这个函数内更新对话框内控件的位置和大小,以...

    htmlTex动态改变文本

    Flash as3.0 利用htmlTex属性动态改变FLash中文本框里的文本属性,包括颜色、字体、大小等

    Android动态改变控件的位置

    这篇博客“Android动态改变控件的位置”详细介绍了如何实现这一功能。 首先,我们要理解Android中的View类是所有UI控件的基础,包括Button、TextView、ImageView等。通过调整View对象的属性,我们就能改变控件的...

    Unity3d_动态改变按键设置

    在Unity3D游戏开发中,动态改变按键设置是一项重要的功能,它允许玩家根据个人喜好或设备差异自定义操作方式,提升游戏体验。本教程将深入探讨如何在Unity3D中实现这一特性,主要涉及以下几个关键知识点: 1. **...

    VC动态改变对话框大小,其中控件也跟着改变

    在VC++编程环境中,动态改变对话框(DLG)的大小是一项常见的需求,特别是在设计用户界面时,为了提供更好的用户体验,我们需要让对话框及其控件能够根据窗口的变化自适应布局。本篇文章将深入探讨如何实现这一功能,...

    动态改变程序显示语言

    "动态改变程序显示语言"这一技术就是为了让软件能够根据用户的语言选择实时调整界面文本。本篇将深入探讨如何通过动态加载DLL(动态链接库)中的字符串表来实现这一功能。 首先,我们需要理解DLL的作用。DLL是一种...

    c# 动态改变控件位置、控件大小、拖动控件

    在C#编程中,动态改变控件的位置、大小以及实现拖动功能是常见的需求,尤其在设计用户界面(UI)时。以下将详细介绍如何通过C#实现这些功能,并结合提供的"Panel"控件来举例说明。 1. **控件位置的动态改变**: 在...

    动态改变FastReport内的Memo内容

    本篇将详细讲解如何动态改变FastReport内的Memo内容,这对于创建灵活的报告,根据用户输入或程序运行时的数据调整报告内容至关重要。 首先,了解FastReport的基本结构。FastReport由多个组件组成,如Memo、Label、...

    代码动态改变View大小

    `ViewChangeDemo`这个示例项目很可能包含了一个演示如何动态改变View大小的代码实例。通常,它会展示如何在特定条件下(如点击事件、动画效果)调整View的大小,并可能包括了自定义View的实现。 总的来说,理解并...

    如何动态改变光标,漂亮

    在编程领域,特别是Windows应用程序开发中,经常需要根据用户的交互情况来动态改变鼠标的外观,以提供更友好的用户界面。这个"如何动态改变光标,漂亮"的主题涉及到VC++(Visual C++)编程,主要关注如何在程序中...

    安卓textView相关-代码动态改变某些textview文本颜色及其大小的方式.rar

    本资源"安卓textView相关-代码动态改变某些textview文本颜色及其大小的方式.rar"包含了关于如何在运行时动态修改TextView文本颜色和大小的方法。下面将详细解释这些知识点。 1. 动态改变TextView文本颜色: 在...

    jQuery动态改变列宽

    jQuery动态改变列宽,可以实现拖动jQuery动态改变列宽,可以实现拖动

    LigerGrid动态改变加载字段列名

    根据提供的文件信息,本文将详细解释如何在LigerGrid中实现动态改变加载字段列名的功能。这涉及到对LigerGrid的基础使用、参数设置以及通过JavaScript编程实现动态更改的方法。 ### LigerGrid概述 LigerGrid是一款...

    动态改变flash大小

    动态改变Flash舞台大小是针对已经创建好的SWF文件,在运行时根据需要调整其显示区域尺寸的技术。这在很多情况下非常实用,例如适应不同分辨率的设备、自适应网页布局或根据用户交互调整界面尺寸等。以下是一些关键...

    动态改变下拉菜单内容示例

    动态改变下拉菜单内容示例动态改变下拉菜单内容示例动态改变下拉菜单内容示例动态改变下拉菜单内容示例

    Android开发中动态向ListView中添加RadioButton和CheckBox以及动态改变其Checked状态改变

    1、这个主要是针对于考试类程序用的,比如其中如何向ListView中动态添加多个RadioButton单选题选项以及多个CheckBox多选题选项,另外,多个填空题的话,也可以用类似的方法整。 2、解决ListView中添加Button、...

    JavaScript修改css样式style动态改变元素样式

    一、局部改变样式 分为改变直接样式,改变className和改变cssText三种。需要注意的是: 注意大小写: javascript对大小写十分敏感,className不能够把“N”写成“n”,cssText也不能够把“T”写成“t”,否则无法...

Global site tag (gtag.js) - Google Analytics