JSP代码虽然看起来更像web页面而不像servlet,但是JSP在运行时会被转换成servlet
JSP到servlet的转换过程一般在出现第一次页面请求时进行。JSP页面包括普通HTML代码还有脚本,指令和动作
脚本用来嵌入Java代码,并将其转换成servlet的一部分。JSP指令用来控制servlet的结构。动作用来引入组件或者控制JSP引擎
JSP Expression: <%= expression%> 计算表达式 并把输出结果转换成字符串
HostName = <%=request.getRemoteHost()%>
JSP Scriptlet: <% %> 插入到service方法的代码,scriptlet前后的静态HTML将被转换成println语句,因此Scriptlet内的Java语句并不一定完整,没有关闭的部分可能影响HTML。另外在scriptlet内部使用“%>”必须写成"%\>"
<%if(i<5){%> i is less than 5 <%}else{%> i is not less than 5 <%}%>
当转换成Servlet的时候代码如下:
if(i<5){ out.println("i is less than 5"); }else{ out.println("i is not less than 5"); }
JSP Declaration <%! %> 插入到Servlet类 service方法之外
<%! private int counter=0; %> <%= ++counter %>
JSP Directive: <%@page import=" " %> 作用于Servlet的全局指令
page指令的属性有:import="package.class", contentType="MIME-Type", isThreadSafe="true|false", session="true|false", buffer="size kb|none", autoflush="true|false", errorPage="url", isErrorPage="true|false", language="java", extends="package.class"
<%@include file="url" %> 当转换成Servlet时 应包含的本地系统上的指定文件
JSP comment: <%-- --%>
JSP Implicit Object (预定义变量)
request: HttpServletRequest, 查看请求参数,类型,HTTP头
response: HttpServletResponse
out: PrintWriter, 一般只在scriptlet中使用
session: HttpSession
application: ServletContext
config: ServletConfig
pageContext: 页面属性
page
JSP动作
jsp:include - <jsp:include page="relative URL" flush="true"/>
jsp:useBean - 用来装载jsp页面中使用的JavaBean, <jsp:useBean id="name" class="package.class">, 创建一个由class属性指定的类的实例,并将其绑定到其名字由id给出的变量上
jsp:setProperty - 设置已经实例化的Bean对象的属性
jsp:getProperty - 提取指定Bean属性的值 转换成字符串并输出
jsp:forward - 将请求转到其他的页面
jsp:plugin