一.为什么要使用JSP:
JSP 是简化 Servlet 编写的一种技术, 它将 Java 代码和 HTML 语句混合在同一个文件中编写,只对网页中
的要动态产生的内容采用 Java 代码来编写,而对固定不变的静态内容采用普通静态 HTML 页面的方式编写。
jsp (全称):->Java Server Page: Java 服务器端网页. 在 HTML 页面中编写 Java 代码的页面.。
二.JSP的运行原理: JSP 本质上是一个 Servlet.
每个JSP 页面在第一次被访问时, JSP 引擎将它翻译成一个 Servlet 源程序, 接着再把这个 Servlet 源程序编译成 Servlet 的 class 类文件.然后再由WEB容器(Servlet引擎)像调用普通Servlet程序一样的方式来装载和解释执行这个由JSP页面翻译成的Servlet程序。
三.JSP九大内置对象:
源代码->
public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { PageContext pageContext = null; HttpSession session = null; ServletContext application = null; ServletConfig config = null; JspWriter out = null; Object page = this; //... //使用 <% %> 编写的代码在此位置. 可以用到 request, response, pageContext, session //application, config, out, page 这 8 个隐含对象. (实际上还可以使用一个叫 exception 的隐含对象) }
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 配置的初始化参数, 需要通过映射的地址才可以。
eg:
<servlet> <servlet-name>hellojsp</servlet-name> <jsp-file>/hello.jsp</jsp-file> <init-param> <param-name>test</param-name> <param-value>testValue</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>hellojsp</servlet-name> <url-pattern>/hellojsp</url-pattern> </servlet-mapping>
7. out: JspWriter 对象. 调用 out.println() 可以直接把字符串打印到浏览器上.
8. page: 指向当前 JSP 对应的 Servlet 对象的引用, 但为 Object 类型, 只能调用 Object 类的方法(几乎不使用)
9. exception: 在声明了 page 指令的 isErrorPage="true" 时, 才可以使用.
综述:常用内置对象有:pageContext, request, session, application(对属性的作用域的范围从小到大) out
不常用: response, config, page
可能会用 :exception