【发布时间】:2015-02-05 13:38:35
【问题描述】:
如果我想在使用过滤器后更新我的 jsp 页面,请帮助我了解我应该怎么做。
例如,我的 jsp 页面 /index.jsp 包含我想要更新的 <div id="login-id">。
我有一个看起来像这样的过滤器:
<filter-mapping>
<filter-name>AccessFilter</filter-name>
<url-pattern>/index.jsp</url-pattern>
</filter-mapping>
public class AccessFilter implements Filter {
private LoginChecker loginChecker;
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//some code goes here where I get name and hash from the cookies
loginChecker = new LoginChecker();
if (loginChecker.isLoggedIn(name, hash)) {
// here I want to send something into my div
} else {
}
chain.doFilter(request, response);
}
我想我需要做这样的事情:
HttpServletResponse resp = (HttpServletResponse) response;
resp.getWriter().write("12345");
chain.doFilter(request, resp);
并添加到索引中:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$.get('index.jsp', function(data) {
console.log("data = " + data);
});
</script>
但我认为我错了,因为我得到的是整个页面,而不仅仅是“12345”。
谢谢。
【问题讨论】:
-
您需要提供某种方式让您的代码知道您是在请求整个页面还是只是一个片段。例如,您可以使用不同的映射和 jsp 来提供片段。
-
我认为我需要一个片段。因为如果我的过滤器 (loginChecker.isLoggedIn(name, hash) 说“假”,那么 div 应该保持为空。但如果它说“真”,我想用“以+名称登录”之类的信息填充该 div(来自 cookie )'。
-
我想我明白了。制作了一个空的 jsp (loginFragment.jsp) + 包含为
并使用调度程序 INCLUDE、REQUEST 为其过滤器。我希望我做对了。谢谢。
标签: java javascript jsp servlets