实施例
<%
Editor editor = (Editor)session.getAttribute("editor");
if(null == editor){
%>
<script type="text/javascript">
window.parent.location.href = "login.jsp";
</script>
<%
}
%>
看起来好像很多时间
use java code to get something....
if(something is true){
Then do something with javascript;
}
所以,我需要一个很好的impl来分隔jsp文件中的js,java。
答案 0 :(得分:2)
在JSP中使用标记库而不是Java代码。您发布的代码很简单,可以使用简单的核心标记来实现。有许多开源标记库可用于避免JSP中的Java代码。一旦开始使用它们就会看起来更干净。请查看以下链接以获取类似问题:
答案 1 :(得分:0)
对于这个用例,您可以检查servlet中的编辑器(您可以从请求中获取会话)并从中重定向到登录。
标记库也可以解决这个问题,但如果你问我,它仍然像JSP中的Java一样。
答案 2 :(得分:0)
根据给出的代码,我建议不要在每个JSP中检查身份验证,而是使用过滤器。在您的过滤器中,检查您需要知道的任何内容,并将HTTP重定向发送到loginform。
答案 3 :(得分:0)
我认为使用 JSTL 标记在jsp中使用java代码的最佳方法。您可以了解有关JSTL here
的更多信息在jsp文件中包含以下行
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
,您的代码就像
function redirectFunction() {
<c:choose>
<c:when test="${empty sessionScope.editor}">
window.parent.location.href = "login.jsp";
</c:when>
<c:otherwise>
//other code will go here.
</c:otherwise>
</c:choose>
}
您也可以在一个 demo.js 文件中编写此函数,并将其作为
包含在您的jsp文件中<script type="text/javascript" src="javascript/demo.js"></script>
全部
答案 4 :(得分:0)
在jsp中分离javascript和java的最佳方法
不要在JSP中使用Java。
忘掉Scriptlets,避免使用JSP中的Business Logic,使用JSTL(或Struts中的OGNL)来执行Presentation Logic。