Struts2中为用户提供等待页面并测试Action的执行时间

2024-03-16 18:58

本文主要是介绍Struts2中为用户提供等待页面并测试Action的执行时间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是一个Struts2.0.11应用,代码如下

首先是web.xml文件

<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>waitLogin.jsp</welcome-file> </welcome-file-list> </web-app>

然后是用于输入用户名和密码以激活等待页面的waitLogin.jsp

<%@ page pageEncoding="UTF-8"%> <h1>使用Struts2中的execAndWait拦截器为用户提供等待页面</h1> <h3><font color="red">提示:</font>程序设定的用户名和密码各为<font color="blue"><strong>admin</strong></font>和<font color="blue"><strong>jadyer</strong></font></h3> <h3><font color="red">注意:</font>用户名或密码不正确时将停留在该页面不动</h3> <br><br> <form action="<%=request.getContextPath()%>/waitLogin.action" method="POST"> 姓名:<input type="text" name="username"><br> 密码:<input type="text" name="password"><br> <input type="submit" value="测试等待页面"> </form>

用户名和密码均正确时显示的登录成功页面waitLoginSuc.jsp

<%@ page language="java" pageEncoding="UTF-8"%> <h1>Login Success</h1>

然后是位于WEB-INF目录下的等待页面wait.jsp

<%@ page language="java" pageEncoding="UTF-8"%> <%-- <meta http-equiv="refresh" content="2;URL=waitLogin.action"> --%> <% response.setHeader("refresh", "2;URL=waitLogin.action"); %> <h2>数据已经提交,正在等待服务器返回信息,<font color="blue"><strong>请您耐心等待......</strong></font></h2> <br/> <br/> <h2><a href="<%=request.getContextPath()%>/waitLogin.action">如果该页面长时间没有响应,请点这里刷新</a></h2>

然后是Struts2的配置文件struts.xml

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="waitLogin" extends="struts-default"> <action name="waitLogin" class="com.zhangbing.action.WaitLoginAction" method="testWait"> <interceptor-ref name="timer"/><!-- 测试WaitLoginAction的执行时间 --> <interceptor-ref name="defaultStack"/> <interceptor-ref name="execAndWait"> <param name="delay">1000</param> </interceptor-ref> <!-- 配置execAndWait拦截器时,要求它必须位于所有拦截器的最下面 --> <!-- delay是指:若1秒之内处理完请求,就显示SUCCESS页面,否则显示WAIT页面 --> <result name="wait">/WEB-INF/wait.jsp</result> <result name="success">/waitLoginSuc.jsp</result> <result name="login">/waitLogin.jsp</result> </action> </package> </struts>

最后是Struts2的Action类WaitLoginAction.java

package com.zhangbing.action; import com.opensymphony.xwork2.ActionSupport; /** * 测试execAndWait拦截器时用到的Action */ @SuppressWarnings("serial") public class WaitLoginAction extends ActionSupport { private String username; private String password; /* 两个属性的setter和getter略 */ public String testWait() throws Exception { if(username.trim().equalsIgnoreCase("admin") && password.equals("jadyer")){ System.out.println("---------醒目的分隔线---------"); Thread.sleep(4000); //令当前线程休眠 4 秒 System.out.println("---------无敌的分隔线---------"); return SUCCESS; }else{ return LOGIN; } } }

这篇关于Struts2中为用户提供等待页面并测试Action的执行时间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/816400

相关文章

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim

golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法

《golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法》:本文主要介绍golang获取当前时间、时间戳和时间字符串及它们之间的相互转换,本文通过实例代码给大家介绍的非常详细,感兴趣... 目录1、获取当前时间2、获取当前时间戳3、获取当前时间的字符串格式4、它们之间的相互转化上篇文章给大家介

Feign Client超时时间设置不生效的解决方法

《FeignClient超时时间设置不生效的解决方法》这篇文章主要为大家详细介绍了FeignClient超时时间设置不生效的原因与解决方法,具有一定的的参考价值,希望对大家有一定的帮助... 在使用Feign Client时,可以通过两种方式来设置超时时间:1.针对整个Feign Client设置超时时间

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

Python如何获取域名的SSL证书信息和到期时间

《Python如何获取域名的SSL证书信息和到期时间》在当今互联网时代,SSL证书的重要性不言而喻,它不仅为用户提供了安全的连接,还能提高网站的搜索引擎排名,那我们怎么才能通过Python获取域名的S... 目录了解SSL证书的基本概念使用python库来抓取SSL证书信息安装必要的库编写获取SSL证书信息

mysql删除无用用户的方法实现

《mysql删除无用用户的方法实现》本文主要介绍了mysql删除无用用户的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 1、删除不用的账户(1) 查看当前已存在账户mysql> select user,host,pa

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D