1)JSP页面内的这些scriptlet有什么区别?
<% request.getSession().setAttribute("myAttrName", "session_MyText"); %>
<!-- besides that getSessionContext() is deprecated! -->
<!-- Already missing in Tomcat9 servlet-api.jar -->
<% request.getSession().getSessionContext().setAttribute("myAttrName", "session_MyText"); %>
<% request.getSession().getServletContext().setAttribute("myAttrName", "session_MyText"); %>
2)我应该选择哪一个-第一个(request.getSession().setAttribute()
)?
2.1)为什么?第三个是错误的吗?
3)为什么不推荐使用第二个(对此尚不明确{API)?
P.S。我知道不推荐使用scriptlet,而推荐使用JSTL /自定义标签+ EL(和非JSP方法),但是为了清楚起见,要求这样做。
参考:
request.setAttribute() vs request.getSession().setAttribute()
是here-第一个是requestScope,第二个是sessionScope (根据EL:${requestScope.attrName}
与${sessionScope.attrName}