JSP的执行原理:
在他第一次客户端发出请求的时候,服务器根据客户端发出的路径,来找到jsp文件,把jsp文件加载到JSP引擎中变成servlet,servlet又会被服务器编译成class文件,class文件执行,最后服务器执行class文件,最后响应给客户端
但是如果时第二次访问,同一个jsp文件,就不会再执行上述的过程,直接找到对应的class文件,执行class文件,响应给客户端
JSP的三种注释
前端语言注释: <!-- -->
会被转译,也会被发送,但是不会被浏览器执行
java语言注释 <% //java单行注释 %> <% /*java多行注释*/ %>
会被转译,但是不会被Servlet执行
JSP注释<%-- --%>
不会被转译。
JSP的include指令
JSP的page指令(做一些转译之前的配置)
<%@page 属性名=“属性值” 属性名=“属性值”...%>
language:声明jsp要被转译的语言。
import:声明转译的java文件导入的包,不同的包用逗号隔开
pageEncoding:设置jsp文件的数据编码格式
contentType:告诉客户端浏览器用什么格式解析
session:设置转译的Servlet中是否支持session,默认是开启的为true,false为关闭支持
errorPage:设置jsp运行时错误跳转的页面
extends:设置JSP转译的java文件要继承的父类(包名+类名)
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page session="false" %>
<%@ page errorPage="error.jsp" %>
JSP的标签;
JSP的局部代码块:
特点:
局部代码块中声明的java代码会被原样转译到jsp对应的servlet文件的__JspService方法中
代码块中声明的变量都是局部变量
使用:
<%java代码%>
缺点:
使用局部代码块再jsp中进行逻辑判断,书写麻烦,阅读困难
开发:
使用servlet进行逻辑处理,使用jsp进行页面展现
JSP的全局代码块:
特点:
声明代码块中的java代码,作为全局的代码转译到对应的servlet类中
使用:
<%! java的全局代码%>
注意:
全局代码块被局部代码块调用
JSP的脚本段语句
特点:
帮助我们快速的获取变量或方法的返回值作为数据响应给浏览器
使用:
<%=变量名或则方法名%>
注意:
不要带分号,因为脚本语句相当于<%out.write()%>,所以带分号会有语法错误
位置:
JSP中的任意位置
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page session="false" %>
<%@ page errorPage="error.jsp" %>
<!--
JSP的三种注释注释
前端注释:会被转译,也会被发送,但是不会被浏览器执行
java注释:会被转译,但是不会被servlet执行
JSP注释:不会被转译
-->
<%--
JSP注释
--%>
<!--
前端注释
-->
<%
//java注释
%>
<%
/*java的多行注释*/
%>
<b>JSP指令</b>
<hr/>
<!-- 局部代码块 -->
<%
//java代码
String str="这个a小于";
int a=4;
if(a>4){
%>
<B>这个a大于4</B>
<%
}
else{
print();
%>
<B><%= str %></B>
<% } %>
<!-- 全局代码块 -->
<%!
int b=5;
public void print(){
System.out.println("我是全局代码块");
}
%>