使用<% %>编写的代码
九大内置对象:内置对象页面中全局变量:在页面中不创建对象
1.*request:HttpServletRequest 的一个对象 使用比较多
2.response:HttpServletResponse的一个对象(在JSP页面中几乎不会调用response的任何方法)
3.*pageContext:页面上下文,是PageContext的一个对象,可以从该对象中获取到其他8个隐含对象,可获取页面所有信息(学习自定义便签时使用)
4.*session:代表浏览器和服务器一次会话,是HttpSession的一个对象。
5.*application:代表当前WEB应用,是ServletContext对象
6.config:当前JSP对应的Servlet的ServletConfig对象,几乎不使用。若需要访问当前JSP配置的初始化参数,则需要通过映射的地址才可以。
7.*out:JspWriter对象,调用out.println()
8.page:指向当前JSP对应的Servlet对象的应用,但为Object类型,只能调用Object类的方法,几乎不使用。
9.exception:在声明了page指定的isErrorPage="true"时才可以使用 <%@ page isErrorPage="true" %>
JSP表达式(expression)提供了将一个java变量或表达式的计算结果输出到客户端的简化方式,它将要输出的变量或表达式直接封装在<%= 和 %>之中。
JSP声明将JAVA代码封装在<%! 和%>之中,它里面的代码将被插入Servlet的_jspService方法的外面。在JSP页面中几乎不用
JSP注释 <%-- 注释信息 --%>
和属性相关的方法:
Object getAttribute(String name):获取指定的属性
Enumeration getAttributeNames():获取所有的属性名字组成的Enumeration对象
removeAttribute(String name):移除指定的属性
void setAttribute(String name,Object o):设置属性
pageContext,request,session,application 对象都有这些方法,这四个对象也称为域对象。
pageContext:属性的作用范围仅限于当前JSP页面
request:属性的作用范围仅限于同一个请求
session属性的作用范围仅限于一次会话
application:属性的作用范围仅限于当前WEB应用,是范围最大的属性作用范围,只要在一处设置属性,在其它各处的JSP或Servlet中都可以获取到。
请求转发,在最终的Servlet中,request对象和中转的哪个request是同一个对象
请求的转发
1.调用HttpServletRequest的getRequestDispatcher()方法获取RequestDispatcher对象
调用getRequestDispatcher()需要传入要转发的地址
RequestDisparcher requestDispatcher = request.getRequestDispatcher("/" + path);
2.调用HttpServletRequest的forward(request,response)进行请求的转发
requestDispatcher.forward(request,response);
请求的重定向
直接调用response.sendRedirect(path)方法
response.sendRedirect(path);
JSP:
请求转发: request.getRequestDispatcher("CCC.jsp").forward(request, response);
重定向: response.sendRedirect("CCC.jsp");
请求的转发:/代表的是当前WEB应用的根目录
请求的重定向:/代表的是当前WEB站点的根目录