【发布时间】:2014-07-09 05:49:16
【问题描述】:
我有两台服务器,一台(本地)和另一台(通过 vpn 远程调用)。
在两者上都部署了相同的应用程序。
我停止vpn调用本地的,所以它们之间没有干扰。
我试图在 doFilter 方法中获取 servletFilter 中的参数。
本地在我的电脑上:weblogic server 11g
远程是通过vpn:weblogic 企业管理器
在第一种情况下,httpServletRequest.getParameter 返回 post 请求的预期值。
在第二个中得到 null。
我发送到以下网址:
http://mydomain/myapp/faces/login-return.jspx
发送请求的html表单:
<html>
<body>
<form action="https://mydomain/myapp/faces/login-return.jspx" method="post">
<input type="hidden" name="param1" value="value1" />
<input type="hidden" name="param2" value="value2" />
<input type="submit" name="submit" value="Send to server" />
</form>
</body>
</html>
我的 servlet 过滤器中的代码:
if (isSessionControlRequiredForThisResource(httpServletRequest, getLoginPage())) {
if(httpServletRequest.getParameter("param1") != null) {
httpServletRequest.getSession().setAttribute("param1", httpServletRequest.getParameter("param1"));
}
任何帮助都会被批准
【问题讨论】:
-
您是否添加了一些日志消息以确保它不会是
isSessionControlRequiredForThisResource返回 false 的副作用? -
也许你在第二种情况下提出了跨域请求? (从代码中不清楚)我不确定,但这可能是参数为空的原因(见link)
-
@SergeBallesta 怎么可能是 isSessionControlRequiredForThisResource 的副作用?
-
@Den 提出跨域请求是什么意思?
-
@GingerHead If
isSessioncontrolrequiredforthisresourceretiens fasse 你的代码永远不会被调用并且你的会话参数 romains 为空。
标签: java servlets servlet-filters weblogic11g oracle-enterprise-manager