我需要在tomcat会话超时后向用户提供错误页面。因此,为了处理这个问题,我们创建了一个过滤器,并添加了一些逻辑来检测这个问题,在此之后,我要说的是转到错误页面。
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain chain) throws IOException, ServletException {
M_log.debug("startFilter");
HttpServletRequest request=(HttpServletRequest)arg0;
HttpServletResponse response=(HttpServletResponse)arg1;
String title = request.getParameter("context_title");
TcSessionData tcSession = (TcSessionData) request.getSession.getAttribute("TcSessionData");
if((title!=null && tcSession==null) || (title==null && tcSession!=null) ){
chain.doFilter(request, response);
}else if(title==null && tcSession==null) {
//response.sendRedirect("/error/error.jsp");
request.getRequestDispatcher("/error/error.jsp").forward(request, response);
}
}
在会话超时之后,我看到它将纠正“if”逻辑,并且它不会转发/重定向到我的error.jsp。它给出了一个404错误。我尝试了页面的重定向和转发,但都没有成功。我对error.jsp页面的绝对路径和相对路径都很累,但我仍然看到404错误,说它找不到error.jsp页面。我还尝试将error.jsp放在webapps
目录下的各个位置,但仍然没有成功
我的应用程序只有一个名为root.jsp的页面。当会话超时时,应用程序将始终是root.jsp,超时之后,我编写了转到error.jsp的代码。
下面是我的web.xml
<filter>
<filter-name>CheckSessionExpirationFilter</filter-name>
<filter-class>lti.google.CheckSessionExpirationFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CheckSessionExpirationFilter</filter-name>
<servlet-name>GoogleDriveLti</servlet-name>
</filter-mapping>
<servlet>
<servlet-name>GoogleDriveLti</servlet-name>
<servlet-class>lti.google.GoogleLtiServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>GoogleDriveLti</servlet-name>
<url-pattern>/service/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>1</session-timeout> <!-- in minutes -->
</session-config>
下面是我的文件夹结构
localhost:8080/error/error.jsp
在这里,您可以看到上下文名称不存在于URL中。
尝试(删除“/”)
getServletContext().getRequestDispatcher("/error/error.jsp").forward(request, response);
或
getServletContext().getRequestDispatcher("error/error.jsp").forward(request, response);
我正在使用Selenium.WaitForPageToload方法在启用ajax的网页中等待。当我运行测试代码时,selenium甚至在页面加载后仍会等待,并抛出“等待操作完成超时”异常。我可能在甚至没有页面加载事件的地方使用了waitforpagetoload。我想它只是跳过部分,如果页面加载。我的代码是这样的 我使用的是Selenium-Java2.33版。google Chrome 27.0
这是我的网站。xml文件,它位于WEB-INF/lib中。它指定会话超时为1分钟,但不会在活动1分钟后将用户超时。
我使用的是和和。一切都很好,但是当会话超时的时候,我会得到以下错误”,因为我已经在布局的main.gsp文件中调用了session变量。现在,我希望在每次会话超时后重定向到登录页面,并且不显示错误页面。要在会话超时后重定向,我已经在文件中这样做了 但是有这么多页,所以很难写每一页。还有其他的方法做这件事吗?请帮忙。
我有一个Web应用程序,它的web.xml超时为1分钟,但它从未超时过这个值。它对其他值(如5,9,10或25分钟)超时,但从未超时1分钟。这是Tomcat 8的最小会话超时限制吗?
我正在使用Selenium2.20WebDriver用C#创建和管理一个firefox浏览器。要访问页面,我使用以下代码,在访问URL之前设置驱动超时: 问题是,有时加载页面需要花费很长时间,使用selenium WebDriver加载页面的默认超时时间似乎是30秒,这太长了。并且我认为我设置的超时不适用于使用GoToUrl()方法加载页面。 所以我试图弄清楚如何设置页面加载的超时,然而,我找不到
我试图从一个网页中以乐透模拟机的形式接收一组数字。我运行服务器,通过浏览器中的本地主机打开页面,输入数字并提交,但下一页上没有显示任何内容,甚至没有404错误。可能是地图问题,但我迷路了。有什么想法吗? 我otto.class 指数html 网状物xml 这三个文件具有以下目录: 大乐透WEB-Lotto\WEB-classes\tomcat.5\webcat.5。班 index.htmlZ:\a