【Head First Servlets and JSP】笔记18:JSP指令
mark. jetbrain tomcat配置:https://www.jetbrains.com/help/idea/2017.1/creating-and-running-your-first-web-application.html
PageContext
任何作用域的属性都可以从PageContext获得,甚至不知道属性处在哪个作用域都可以找到!(属性的查找遵循的顺序是:PageContext--> ServletContext--> ..... 不过,为什么这样的东西在servlet中没有??)
这意味着什么呢,我们看一下笔记16课本练习代码:
<%@ page import="java.util.List" %> <%@ page import="java.util.Iterator" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <p>hello i'm result</p> <p>The friends who share your hobby <%=request.getParameter("hobby")%> is :</p> <% List names = (List) request.getAttribute("names"); Iterator it = names.iterator(); while (it.hasNext()) { out.println(it.next() + "<br />"); } %> </body> </html>
尝试把红色的代码换成
List names = (List) pageContext.getAttribute("names", PageContext.REQUEST_SCOPE);
重新部署、测试,这个时候发现,结果并不受影响。
除此之外还有更简单的方法,那就是上面提到的属性“查找”:
List names = (List) pageContext.findAttribute("names");
JSP指令
省略一些根本不会用到的指令,但是为了在某些情况下能找到,还是需要mark一下:https://www.tutorialspoint.com/jsp/index.htm
认识到你能做什么——>没必要去记忆这些指令,关键是要知道“通过这些指令能做什么”,在需要的时候去查就可以了。
比如在页面乱码的时候要想到pageEncoding...
在ClassNotFound的时候要想到import....