Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么JavaSpring应用程序中的SavedRequest为空?_Java_Jsp_Spring Mvc_Servlets - Fatal编程技术网

为什么JavaSpring应用程序中的SavedRequest为空?

为什么JavaSpring应用程序中的SavedRequest为空?,java,jsp,spring-mvc,servlets,Java,Jsp,Spring Mvc,Servlets,这与前面的一个问题有关: 我做了一些研究,发现有一个SavedRequest对象可以保存原始URL,因此在我的login.jsp中我有以下几行: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <%@ page language="java" contentType="text/html; charset=I

这与前面的一个问题有关:

我做了一些研究,发现有一个SavedRequest对象可以保存原始URL,因此在我的login.jsp中我有以下几行:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>

<%@ page import="org.springframework.security.web.savedrequest.*" %>
<%@ page import="java.io.*,java.util.*" %>
<%
   System.out.println("  [ JSP = 1 ] "+new Date().getTime());

   SavedRequest savedRequest=new HttpSessionRequestCache().getRequest(request,response);
   System.out.println("  [ JSP = 1.1 ]  savedRequest == null ? "+(savedRequest == null));
   String requestUrl=savedRequest.getRedirectUrl();
   System.out.println(" requestUrl = "+requestUrl);
%>
...

我在登录之前单击了一个URL[类似:],并被发送到login.jsp,因此在login.jsp中,我希望从requestUrl获得原始URL[],但savedRequest为空,为什么?

我猜是因为您不应该使用新的
HttpSessionRequestCache
,你不应该在JSP中编写Java代码——现在它被认为是一种反模式。如果你不能把代码放进你的控制器,你可以考虑写一个标签。@ SoTiRiOS DelimaLoiS:在我的例子中,如何得到一个现有的?我没有得到那个通知:(不要在
@username
之间加空格。实际上我对Spring安全性不太了解。我认为必须要保存它。例如,如果你发送了一个需要身份验证的请求,你会被重定向到登录页面,登录,然后重定向回原始的、保存的请求。我会看一下过滤你的请求。
INFO: Server startup in 54732 ms
  [ JSP = 1 ] 1407987538402
  [ JSP = 1.1 ]  savedRequest == null ? true
Aug 13, 2014 11:38:58 PM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException