jsp (java server page)
(1)jsp是什么?
sun公司制订的一种服务器端动态页面技术规范。
注:
a.虽然使用servlet也可以生成动态页面,但是过于繁琐(需要使用out.println语句输出),并且维护麻烦(要修改页面,就必须修改java代码)。所以sun才制订了jsp规范。
b. jsp是一个以.jsp为后缀的文件,主要内容是html和少量的java代码。容器(比如tomcat)会将该文件转换成一个对应的servlet然后执行。
c. jsp本质就是一个servlet!
(2)如何写一个jsp文件?
1)step1.添加一个以.jsp为后缀的文件。
2)step2.在该文件里面,可以添加如下内容:
a. html(css,javascript):
直接写即可。
b. java代码:
第一种形式 java代码片断
<% java代码 %>
第二种形式 jsp表达式
<%= java表达式 %>
c. 隐含对象
c1.什么是隐含对象?
在jsp文件里面,直接可以使用的对象,比如
out,request,response。
c2.为什么可以直接使用这些隐含对象?
jsp会被容器转换成一个对应的servlet,
在转换过程中,容器会自动添加获得这些对象的代码。
d.指令
d1.什么是指令?
通知容器,在将jsp转换成servlet时,做一些额外的处理,比如导包。
d2.语法
<%@ 指令名 属性=值 %>
d3.page指令
import属性:指定要导的包名,比如
<%@ page import="java.util.*"%>
注:
如果要导多个包,包与包之间用","隔开。
contentType属性:
设置response.setContentType方法的参数值。
pageEncoding属性:告诉容器,在读取jsp文件的内容时,使用指定的字符集去解码。
d4.include指令
file属性:指定要包含的文件名。比如
<%@ include file="header.jsp" %>
注:
容器在将jsp转换成servlet时,会将file属性指定的文件的内容插入到该指令所在的位置。
(3)jsp是如何运行的?
1)阶段一 容器将.jsp文件转换成一个.java文件
a. html ----> 在service方法里面,使用
out.write输出。
b. <% %> ---> 在service方法里面,照搬。
c. <%= %> ---> 在service方法里面,使用 out.print输出。
2)阶段二 容器再调用该servlet。
注:
包括编译、实例化、调用service方法。