<%
String str = (String)session.getAttribute("logined");
if(str == null || !str.trim().equals("true")) {

response.sendRedirect("login.jsp");
return;
}
%>

疑问: 1.JSP的<%%> 是不是代表的是一个方法体?. return 跳出了这个方法?
2. return;  只跳出self.jsp 吗?.关于它的疑问我也不太清楚,因为没有老师,是自学,所以有时候想不太明白~!
还请前辈们能稍微透彻解释一下!~ 不胜感激! 谢谢!~

解决方案 »

  1.   

    <%%>不是表示方法体,只是在jsp页面中标记,在这个区块内可以嵌入java代码。
    return表示不执行后面的语句,不是跳出self.jsp,你认为的跳出不是return起的作用,而是你前一句:
    response.sendRedirect("login.jsp");这句话就是你认为的跳出self.jsp的所在。
      

  2.   

    <%%> 
    是servlet中一个方法的一部分代码,
    而return 是让这个方法返回了。
      

  3.   


    服务器端跳转(<jsp:forward>)执行到后便立即跳转,不再执行剩下的代码;
    而客户端跳转(response.sendRedirect("login.jsp");),会执行完剩下的代码,再跳转。脚本元素分为:声明、脚本段和表达式。
    当jsp页面编译成servlet后,声明段变量对应于类的全局变量;脚本段变量对应于_jspService方法的局部变量。
    所以,服务器端跳转不需要return语句,而客户端跳转使用return语句也就是为了跳出_jspService方法。不知道这样解释对不?偶也是刚学的小菜鸟。