我正在尝试在此jsp页面上显示会话属性:
package org.loja.app.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String login = request.getParameter("login");
String password = request.getParameter("password");
if(password.equals("123")) {
HttpSession session = request.getSession();
session.setAttribute("login", login);
request.setAttribute("error", false);
request.getRequestDispatcher("/WEB-INF/jsp/index.jsp").forward(request, response);
} else {
request.setAttribute("error", true);
request.getRequestDispatcher("/WEB-INF/jsp/index.jsp").forward(request, response);
}
}
}
此页面从该servlet转发:
${sessionScope.login}
当我在浏览器中打开页面时,得到的是文本myApp.controller('ChatControllerGlobal',function($scope,global) {
$http({
method: 'POST',
url: serverURL+'&act=get_chat',
withCredentials: true,
}).then(function successCallback(data) {
$scope.messages = data.data;
$scope.loader = false;
$scope.content = true;
});
});
,而不是属性值。
我在这里想念什么?
答案 0 :(得分:0)
从外观上看似乎没有什么错。但是,我尝试了以下几件事:
从顶部删除此标签:
<%@ page session="true" %>
无论如何,默认行为都设置为true。无需再次声明。也许这会使您设置的会话变量无效。
服务器配置
某些服务器具有需要启用会话支持的配置设置。也许这没有打开或已经关闭。
您说<c:out
不起作用,但<c:url
起作用。如果<c:url
有效,但<c:out
无效,那么您的.jar jstl文件是否已损坏?但我对此表示高度怀疑。我认为问题在于未设置sessionScope。为什么不尝试直接访问变量呢?不需要sessionScope
。
尝试:
<c:out value="${login}"/> | <a href="<c:url value = "/logout"/>">Sair</a>.
也可以在没有JSTL的情况下尝试使用它:
${login} | <a href="/logout">Sair</a>.
尝试在jsp中进行设置:
<c:set var="testVar" value="Hello world" scope="session"/>
<c:out value="${testVar}"/>
最后,请确保您确实在设置变量。像这样测试:
HttpSession session = request.getSession(); //move outside to test it
session.setAttribute("login", login); //move outside to test it
if(password.equals("123")) {
request.setAttribute("error", false);
request.getRequestDispatcher("/WEB-INF/jsp/index.jsp").forward(request, response);
} else {
request.setAttribute("error", true);
request.getRequestDispatcher("/WEB-INF/jsp/index.jsp").forward(request, response);
}
请尝试执行这些故障排除步骤,希望它可以帮助您缩小问题范围。