我还在接受教育,所以知道我的解决方案有多好,但我没有崩溃,所以希望它是正确的
它与@muthu 的代码非常相似
我使用过 JPA-eclipselink 和 Struts2
动作类
String checkLogin = "SELECT user FROM UserEntity user WHERE user.username = :username AND user.password = :password";
Query checkLoginQuery = em.createQuery(checkLogin);
checkLoginQuery.setParameter("username", loginUsername);
checkLoginQuery.setParameter("password", loginPassword);
userEntity = (UserEntity) checkLoginQuery.getSingleResult();
Map sessionMap = ActionContext.getContext().getSession();
sessionMap.put("userEntity", userEntity);
JSP - >所有jsp页面都有这个(错误:如果在浏览器没有关闭时会话没有被终止,则会受到影响)
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:if test="%{#session.userEntity == null}">
<jsp:forward page="login.jsp"/>
</s:if>
如果我错了,请纠正我
引用此页面
和 RequestDispatcher.forward() 都是我所说的“服务器端”重定向
response.sendRedirect() 就是我所说的“客户端”重定向。
所以服务器端转发对我来说看起来更安全,也许我错了(如果我错过了解释它,我很抱歉,还没有在现实生活中的项目中工作过)