session超时或未登录时回到登录界面,如有frame跳出frame

Python自动化脚本实战:Selenium抢券机器人开发全解析 网络爬虫与自动化测试是提升开发效率、实现业务流程自动化的重要技术。其核心原理是通过程序模拟用户操作,自动执行网页浏览、数据提取或交互任务。在技术价值上,自动化能显著减少重复劳动,提高任务执行的准确性与时效性。典型的应用场景包括数据采集、软件测试以及日常办公流程自动化。本文聚焦于利用Python的Selenium库,深入探讨如何构建一个用于电商平台优惠券领取的自动化脚本,即常说的“抢券机器人”或“薅羊毛脚本”。文章详细拆解了环境搭建、反检测策略、Cookie管理、元素定位与等待机制等关键实现步骤,并提供了应对 阅读详情

1、写Filter类:例如LoginFilter:

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 {

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

 }

 public void doFilter(ServletRequest arg0, ServletResponse arg1,
   FilterChain arg2) throws IOException, ServletException {
  HttpServletRequest request = (HttpServletRequest) arg0;
  HttpServletResponse response = (HttpServletResponse) arg1;
  
  /** login filter */
  //signed
  if(request.getSession().getAttribute("USER_NAME") != null ||
    request.getRequestURL().indexOf("login.jsp") > -1 ||
    request.getRequestURL().indexOf("login.action") > -1){
   arg2.doFilter(arg0, arg1);
  }else{
   HttpServletResponse resp = (HttpServletResponse) response;
   String requestType = request.getHeader("X-Requested-With");
   if (requestType != null
     && requestType.equalsIgnoreCase("XMLHttpRequest")) {
    resp.setStatus(401);
   } else {
    resp.sendRedirect(request.getContextPath()+"/main/login.jsp");
   }
  }
  
 }

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

 }

2、如果未登录,直接在地址栏上输入url时会跳转到登录界面。但是如果是超时,那么他的登录界面还在那个frame里。要跳出这个frame。那么要在login.jsp里加一段代码:

<script type="text/javascript">
if(window!=top){
 top.location.href=location.href;
}
</script>

3、logout在一个frame里,如果点logout也跳不出frame。

<SCRIPT type="text/javascript">
function logout(){
 document.form1.submit();
}
</SCRIPT>
</head>
<body>

<div class="h2">
 <table>
  <tr>
   <td class="h3"><div class="h3"></div></td>
   <td class="h4" align="right"><div class="h4">User&nbsp;:&nbsp;<span class="h61"><s:property value="#session.USER_NAME.email"></s:property></span></div></td>
   <td class="h5" align="center"><div class="h5">|</div></td>
   <td class="h6">
     <div class="h6">
      <a href="#" class="hand" onclick="logout()">Logout</a>
     </div>
   </td>
  </tr>
 </table>
 <form name="form1" action="logout.action" method="post"  target="_top"> </form>
</div>

</body>

加个form,并设置target为_top

 

 4.如果是用struts2,要在struts.xml 里的result加个type=redirect

<action name="logout" method="logout" class="com.tvunetworks.center.gs.web.action.LoginAction">
        <result name="success"  type="redirect">/main/login.jsp </result>
</action>


5.如果登录界面是在别的服务器,也就是说用户管理服务不是与你在同一个域。

http://user_ip/userservice

http://business_ip/business

你的business的用户是邮userservice,但userservice的登录界面你是不能改的。也就是说你不能在userservice的界面加_top。解决的办法是在自己的loginfilter里加。

把前面代码里的resp.sendRedirect(request.getContextPath()+"/main/login.jsp");

换成 goLogin(resp);


private void goLogin(HttpServletResponse resp) throws IOException{
  PrintWriter out=resp.getWriter();
  out.println("<html>");
  out.println("<script>");
  out.println("window.open('"http://user_ip/userservice"','_top')");
  out.println("</script>");
  out.println("</html>");
 }

 


AI时代敏捷开发新范式——意图驱动开发IDD 具体的功能代码、单元测试、集成测试用例,以及最终可运行的、支持PlantUML的Markdown转Word工具新版本。:业务方(如技术文档团队)反馈,现有的Markdown转Word工具在处理包含PlantUML代码块的文档时,无法正确生成图表,导致技术方案、架构图等关键信息丢失,严重影响了文档交付质量和团队效率。这不仅带来了交付周期显著缩短、资源效能倍增的可观收益,更深远的意义在于,它描绘了未来软件工业化、智能化的新图景:一个由精准意图驱动、AI自主执行、人类智慧引领的敏捷、高效、高质的新世界。 阅读详情

相关推荐

数据仓库实践:从ITR流程讲指标体系建设

从 ITR 流程或者其他客服反馈流程的考核过程可见,实际工作中不可能只通过单个指标评价一个业务过程,需要从多个维度梳理业务,并把多个高度相关的指标组织起来,以避免只考虑其中某个指标从而摧毁整个业务过程的结果,指标体系=指标+体系。

the_singing_towers的博客 2268

[经验] 项目中 session 过期后弹出的登录窗口无法登录怎么办

背景: 当session过期后, 按照 系统的设计, 会自动跳转到登录页面, 重新进行登录操作 问题: 由于进入主页后, 其他页面都是嵌入式的模板页, 所以这时的登录页面也是内嵌在index模板下的, 这时重新输入账号密码的话, 点击登录按钮是没有效果的, 如果想要重新登录页面, 就需要按 F5 刷新页面, 重新进入一开始的登录页面, 这时输入账号密码才能顺利登录. 但是这样一来的话,...

weixin_30533797的博客 476

C#操作SQLite数据库帮助类——SQLiteHelper

using System; using System.Collections.Generic; using System.Data.SQLite; using System.Data; namespace Com.ZCWL.Rock.Helper { public class SQLiteHelper { private static string connectionString =

跟健哥出去走走 2万+

跨域SESSION的问题

跨域SESSION的问题: JAVA: 就是在servlet下的EncodingFilter.java文件中加入如下代码: HttpServletResponse res = (HttpServletResponse) sresponse; res.setHeader("P3P", "CP=CAO PSA OUR"); 反正就是上面的怪符号就可以搞定。在网上搜到的,累死人。 感谢以上兄弟...

weixin_30551947的博客 375

Vivado项目开发新思路:用VSCode写代码,用Vivado管理IP核与综合(Windows/Mac环境通用指南)

本文介绍了如何结合Vivado和VSCode的优势,打造高效的FPGA设计工作流。通过配置VSCode的Verilog插件和Vivado环境集成,开发者可以在VSCode中编写代码,同时利用Vivado管理IP核与综合,显著提升开发效率和团队协作体验。

weixin_42545503的博客 338

嵌入式下载故障排查:ST-LINK与GD32 Programmer典型问题解决

嵌入式固件烧录是MCU开发的关键环节,其本质依赖于调试器(如ST-LINK、GD-Link)与目标芯片间的协议通信、驱动加载及硬件接口协同。原理上,SWD/JTAG协议需在正确时序、电平与供电条件下完成设备枚举、ID读取与Flash编程;技术价值在于保障量产烧录稳定性与调试可重复性;典型应用场景涵盖STM32/GD32教学开发、工业控制板量产调试及Windows 11新系统适配。本文聚焦ST-LINK-V2在Keil MDK中的下载失败和GD32 All In One Programmer的DLL加载异常两

weixin_35006125的博客 155

用户未登录或Session超时时重定向到登录页,不那么简单!

在网站开发中,我们经常有这样的场景出现: 情景1:对未登录的用户或没有权限的用户,当其想访问某个受限网页时,系统要能够自动转到登录页面. 情景2:对于用Session保存用户状态的情况还有这样一种需求,当用户的Session已超时时,用户再想执行操作时,也要将其转到登录页面. 在asp.net中,要实现上述的功能容易吗?有人会说:"这太容易了,可以通过下面两种方式实现...

weixin_30372371的博客 2039

【数据结构】汉诺塔问题(丰富图解)

经典汉诺塔问题,丰富图解,助你理解。

℉f的博客 4107

jsp页面点击button弹出新窗口但会显示session已过期或者是未登录

其实是因为新开一个浏览器窗口(不是标签页)是会创建一个新的session id的,浏览器的session 管理机制是, A用户打开一个窗口第一个访问服务器的时候后面会带一个参数sessionid,而这时候这个session id 是空的, 服务器通过getsession id 拿到一个空值,就会去创建一个session id 给user,然后一并response 给浏览器端用户A, 如果再次

sourcecode1的专栏 4616

半导体关键系统之RMS浅谈

这种系统还要求设备在设备上的配方发生变化时通知工厂主机,并需要与EAP(Equipment Automation Process)联结,旨在实时管控自动化系统所用配方与用户当初的设定是否匹配,从而使得自动化系统所用的配方更加趋于安全。例如,制药行业中的药品生产管理系统(GMP),它对药品的生产过程进行严格控制,包括原材料的采购、生产工艺流程、质量控制等方面。这些系统通常与企业的生产系统集成,能够对产品的配方进行精细化管理,包括配方的设计、试验、验证、生产等环节。

阿拉伯梳子的专栏 6161

【FPGA的基础快速入门23--------OV5640摄像头VGA显示】

FPGA的基础学习--------OV5640摄像头VGA显示OV5640简介二级目录三级目录 OV5640简介 OV5640同OV7725一样,都是Omni Vision(豪威科技)公司生产的CMOS图像传感器。 OV5640支持更高的分辨率(500W像素)、采集速率,具有更高的图像处理性能,主要应用在手机、数码相机、电脑多媒体等领域。 OV5640支持LED补光、MIPI(移动产业处理器接口)输出接口和DVP(数字视频并行)输出接口选择、ISP(图像信号处理)以及AFC (自动聚焦控制)等功能。 OV

暮雨中的坚果的博客 7692

AJAX请求遭遇未登录和Session失效的解决方案

使用技术:HTML + Servlet + Filter + jQuery 一般来说我们的项目都有登录过滤器,一般请求足以搞定。但是AJAX却是例外的,所以解决方法是设置响应为session失效。 一共分为过滤器和页面JS两个部分的设置,先看过滤器的修改: import java.io.IOException; import javax.servlet.Filter; im...

weixin_33819479的博客 174

4D毫米波雷达天线设计

多种天线布局方案介绍、天线设计要点介绍

5736

session超时跳出frame -- 过滤未登录的用户LoginFilter

<br />session超时跳出frame<br /> 今天遇到session超时跳转后还在frame框架里面,得想办法跳出frame后转到登录页面去。<br /> 方法一:<br /> js解决方案:<br />     $(document).ready(function(){<br />         if (window != top){ <br />             top.location.href = "login.action"; <br />           

cuker919的专栏 5244

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

java web session过期 跳转页面没有跳出frame的问题

对于frame页面框架的java web项目,如果session过期执行跳转操作时,只在一个frame中(例如center frame)跳转到设置的login页面了,为了能直接跳转到最初的登录页面,就需要在跳转的页面中(login.jsp)添加如下代码: <script type="text/javascript">if (top.location != location){t...

weixin_30517001的博客 87

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【C++】在线五子棋对战项目网页版

实现五子棋服务器,能够让用户通过浏览器访问服务器,进行用户的注册、登录、对战匹配、实时对战、实时聊天等功能

可涵的博客 8590

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SQL窗口函数实战指南

窗口函数是SQL中强大的分析工具,能够在保留原表行数的同时,基于数据窗口计算聚合值或排名信息。与普通聚合函数不同,窗口函数通过PARTITION BY分组、ORDER BY排序和窗口框架定义计算范围,实现分组排名、累计计算、移动平均等复杂分析。常见窗口函数包括聚合型(SUM/AVG)、排名型(ROW_NUMBER/RANK)和值函数(LAG/LEAD)。这些函数广泛应用于电商、金融等领域,大幅简化了原本需要多层子查询的复杂分析任务,提升SQL代码可读性和执行效率。

weixin_54482667的博客 595

frame框架-用户session失效仅在iframe中跳转登录页面的解决方法

在写页面中我们经常用到frame进行页面框架结构的编写,但是在使用frame时经常会 出现一个问题。比如如果在页面中用户session失效,在点击frame中的按钮时,会被拦截器拦截,并跳转到登录页面,但是仅是当前frame跳转,其他frame并没有跳转。 解决方法: 可以再登录页面 login.jsp 中添加如下js代码:        if(top!=self){          

Aurora Silent 1509

(转)AJAX请求遭遇未登录和Session失效的解决方案

转自:https://www.cnblogs.com/morlin/p/4928542.html 一般来说我们的项目都有登录过滤器,一般请求足以搞定。但是AJAX却是例外的,所以解决方法是设置响应为session失效。 一共分为过滤器和页面JS两个部分的设置,先看过滤器的修改: import java.io.IOException; import javax.servlet...

jameskaron的专栏 362

使用frame注意session陷阱

最初发现特定情况下使用frame会导致生成多个session是很久以前的事了,今天突然想起来觉得有必要做个总结,毕竟这种情况还是比较隐蔽的,那么什么时候使用frame会产生多个session呢,产生多个session后又会产生什么样的麻烦呢?隐蔽在哪里呢?1.什么时候使用frame会产生多个session不管是frameset还是iframe,只要frame所在文件是htm或html的时候

孙钰佳的博客 7618

用户未登录或Session超时时重定向到登录页 ---转栽

在网站开发中,我们经常有这样的场景出现: 情景1:对未登录的用户或没有权限的用户,当其想访问某个受限网页时,系统要能够自动转到登录页面. 情景2:对于用Session保存用户状态的情况还有这样一种需求,当用户的Session已超时时,用户再想执行操作时,也要将其转到登录页面. 在asp.net中,要实现上述的功能容易吗?有人会说:"这太容易了,可以通过下面两种方式实现"....

pengpeng11的专栏 898

IFrame中Session丢失的解决办法

 在开发中,我们经常会遇到使用Frame来工作,而且有时是为了跟其他网站集成,应用到多域的情况下,而Iframe是不能保存Session的。因此,网上可以找到很多相关的文章,如果网站可以采用设置Web.Config中的配置:mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="da

C#.Net/通信/网页/WinForm专题 1万+

session验证用户是否登录,登录以后才能进行访问

session验证用户是否登录,登录以后才能进行操作 文章目录session验证用户是否登录,登录以后才能进行操作正常情况下,服务器上的资源很多都是需要登入之后才能访问的,这就需要我们在后台配置一个登入检查的拦截器,对于没有登入的用户跳转到指定的提示页面。1、编写好一个拦截器类 loginIntercepter.java。**注意:从session中获取的对象要和登入时存储到session中的对象...

tyeerth的博客 3870
上一篇: Maven 手动添加 JAR 包到本地仓库
下一篇: JAVA公钥私钥
IamstudyingJava
博客等级 码龄18年 4粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值