关于在js中跳转还是在servlet中跳转
很多朋友喜欢在js中进行逻辑判断,然后跳转
优势很多:判断方便简捷.比如一个session超时的判断.jsp中js源码如下:
<mce:script type="text/javascript"><!-- //session过期判断 function checkSession() { if(<%=(request.getSession().getAttribute("user") == null) %>){ alert("对不起,登录已超时,请您重新登录!"); top.location.href="/项目名"; } } // --></mce:script>
他们认为使用了struts的actionServlet就得配findforward,top.location.href="/项目名"; 语句就发挥不了作用了,以至于束手无策,只得又回到jsp用js进行判断
其实,在很多情况下,使用actionServlet进行判断跳转,比使用js判断跳转要好.为什么?抛却安全性等一系列原因,就多层架构分工来讲,就应该用actionServlet进行判断跳转.仍然拿那个判断session过期的问题,拿到一个继承了DispatchAction的actionServlet类中判断源码如下
public ActionForward checkSession(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { if(request.getSession().getAttribute("user") == null ) { try { PrintWriter out = response.getWriter(); out.write("<mce:script language=javascript><!-- alert('对不起,登录已超时,请您重新登录!');top.location.href='/项目名'; // --></mce:script>"); out.close(); } catch (IOException e) { e.printStackTrace(); request.setAttribute("Error", e.getMessage()); return mapping.findForward("error");//全局error处理页面 } } return null; }
本文探讨了在Web应用开发中使用JavaScript与Servlet进行页面跳转的区别。通过具体实例展示了session过期判断的两种实现方式:一种是在客户端使用JavaScript进行判断并跳转,另一种是在服务器端使用Servlet进行判断后返回客户端执行跳转。文章强调了多层架构分工的重要性,并推荐在适当情况下使用Servlet进行逻辑处理。
1万+

被折叠的 条评论
为什么被折叠?



