我将我的代码注入doGet
方法
val replace = "" +
" System.out.println(\"[before] " + className + "\");" +
" $proceed($$);" +
" try{System.out.println(\"$args[2] = \" + $args[1].toString());}catch(Exception ex){System.out.println(\"ERROR\");}"
" System.out.println(\"[after] " + className + "\");".stripMargin
这里我得到第二个参数,我希望param将是HttpServletResponse类的实例,但我看到下面的类
org.springframework.security.web.context
.HttpSessionSecurityContextRepository$SaveToSessionResponseWrapper@398ce9f7
后面的操作是在DefaultServlet,FrameworkServlet
中我的现实有什么问题?
答案 0 :(得分:1)
HttpServletResponse
是an interface,因此可以有任何正确实现给定界面的内容。正如您在Spring中一样,框架正在使用自己的实现,正如您在.toString
mehotd中看到的那样,它是一个SaveToSessionResponseWrapper
类。
在第二个链接上,您可以找到替换的确切位置:
SaveToSessionResponseWrapper wrappedResponse =
new SaveToSessionResponseWrapper(response, request, httpSession != null, context);
requestResponseHolder.setResponse(wrappedResponse);
您可以在此处找到有关此课程的更多信息: