1JSP的本质是Servlet,那么Servlet中所有的方法都可以用到JSP中,当第一次请求JSP页面时,JSP会被翻译成Servlet源程序,接着再把源程序翻译成Servlet的class文件,最后由Web容器(Tomcat)像调用Servlet程序一样的方式,来装载和解释这个由JSP页面翻译成的Servlet程序。
2JSP的隐含对象:request 、response、pageContext、session、application、config、out和page(还有excepiton)。
request是一个HttpServletRequest对象,response是一个HttpServletResponse对象,但是response很少在JSP页面中使用。
pageContext是ServeletContext对象,代表Web应用。
config是ServletConfig对象访问JSP配置的初始化参数,需要通过映射的地址才可以
3.JSP的模板元素。
4.JSP的表达式<%=%>
5.JSP的脚本片段:Java代码和JSP表达式混合使用时产生脚本片段。
6.JSP声明<%!%>在JSP页面中几乎不使用这个方法。
7.JSP的注释:<%-- 注释内容--%>而<!-- -->是HTML的注释代码。
8.JSP一般放在除WebContent中WEBINF中的任何目录中。
9.和属性相关的方法:
(1)void setAttribute(String name,Object o)
(2)Ojbect getAttributeNames()
(3)Enumeration getAttribute(String name)
(4)void removeAttribute(String name)
pageContext、request、session和application都有着四个方法,作用域顺序pageContext<request<session<application。
pageContext的作用域是当前页面;
request限于同一个请求;
session的作用域是一次回话;(浏览器打开或者关闭称为一次会话)
application:作用域是当前web应用程序。
10:请求转发和请求重定向
(1)转发。
1.1)调用HttpServletRequest的getRequestDispatche(String path)path是转发的地址r获取RequestDispatcher对象
1.2 )调用forward(request,response)进行转发
(2)sendRedirect(String name)的重定向;
11.请求和重定向的区别
(1)本质区别:请求转发只发出一次请求,而重定向则发出了两次请求。
具体特点:第一:转发时地址栏的地址不会发生变化,重定向时地址栏的地址会发生变化。第二:转发时是同一个Request对象,重定向时是不同的Request对象。
第三:转发只是可以再当前web应用内进行转发,但是重定向可以向任意的资源进行重定向。第四:转发是当前web应用的根目录,转发是当前站点根目录(不包括应用程序的目录)
12.JSP指令标签<%@%>
(1)include 其中file属性的值是相对路径,加载include文件是在把JSP页面翻译成Servlet时加载。
(2)page:<%@page import="java.util.*" language="java" extends="package.class"(当前jsp页面翻译成servlet需要继承哪些类) session="true/false" errorPage="url" isErrorPage="true/false" ContextType=“”text/html“ pageEnconding="uft" isELIgnored=“true”%>其中errorPage指定当前页面出错的实际响应页面是什么, 其中/是指当前web应用的根目录,其响应方式是转发。isErrorPage是和exception对象配合使用。此外还可以在web.xml文件中通过<error-page><error-page>配置errorPage页面。Tomcat不能通过web页面访问WEB-INF页面,但是通过请求转发是可以访问页面。ContextType实际上调用的是response.setContextType(String type)方法,对于JSP页面其值取text/html。
(3)taglib
13:JSP标签
<jsp:include page="url"></jsp:include>动态包含页面,通过一个方法将页面包含在当前页面,在JSP页面执行期间插入加载资源。
<jsp:forward></jsp:forward>转发
以上两者都可以使用<jsp:param></jsp:param>进行传递参数,可以使用request.getParameter(String name)来获取参数值。