传智博客学习笔记4.2
JSP本身就是一个Servlet
JSP中的隐含变量
page:代表JSP所翻译成的Servlet对象自身(用处不大)
request:HttpServletRequest类的实例对象
response(使用较少)
pageContext
session:HTTPSession类的实例对象
<ServletContext> application
<ServletConfig> config
JspWriter out
exception
PrintWriter带缓冲区
JspWriter不带缓冲区
JSP表达式
<%= 输出内容 %>
JSP声明
<%! %>
JSP注释
<%-- --%>
JSP指令
<%@指令 属性名="值" %>
三种指令:
page
include
taglib
跳转到error.jsp时是转发,不是重定向
web.xml中可以配置当前web应用的错误页面
<error-page>
<exception-type>
include指令
<%@ include %>
Action元素
<jsp:include>标签:动态引入
<jsp:forward>标签
<jsp:param>标签
pageContext对象
加强内容:集合类
application.getContextPath()
this.getServletContext().getContextPath()
路径问题,难点
绝对路径:application.getContextPath()
绝对路径:this.getServletContext().getContextPath()
/ 代表的不同含义:
在 web.xml Servlet 映射 <url-pattern>/xx</url-pattern> 中的 “/” 代表当前 web 应用的根路径.(jsp-file) 因为 web.xml 文件是当前 web 应用的描述文件, 所以在 web.xml 文件中的 “一切” / 代表的都是当前 web 应用的根路径
在 request.getRequestDispatcher(“/xxx”).forward(request, response);中的 “/” 代表当前 web 应用的根路径. 因为无论怎样 RequestDispatcher 的forward 方法都会在当前的 web 应用中取 “寻找” 目标资源, 所以上边的 “/” 代表的一定是当前 web 应用的根路径
在 response.sendRedirect(“/xxx”); 代表的是 web 站点的根路径. 重定向
在 <form action=“/xxx”> 或 <a href=“/xxx”></a>; 代表的是 web 站点的根路径. 因为超链接可以链接到任何需要的目标资源(google 也没问题), 所以 / 代表的肯定不是当前 web 应用的根路径, 而是当前 web 站点的根路径