JSP定义
什么是jsp:jsp就是Java server pages即java服务端页面,也和Servlet一样,用于动态web技术
最大特点:写JSP就像在写HTML
和HTML的区别:
- HTML只给用户提供静态数据
- jsp页面中可以嵌入java代码,为用户提供动态数据
JSP原理
JSP的执行方法:
- 代码层面和HTML无大区别
- 服务器内部工中:Tomcat中有一个work目录;IDEA中使用Tomcat的会在IDEA的Tomcat中生成一个work目录
发现页面转变成了Java程序 - 浏览器向服务器发送请求,不访问什么资源,都是在访问servlet,jsp最终也会被转化成一个java类
- JSP本质就是一个servlet
源码流程:
- 判断请求
- 内置一些对象
- 输出页面前增加的代码
- 以上的这些对象我们可以在jsp页面中直接使用
在JSP页面中:
只要是java代码,就会原封不动的输出;
如果是HTML页面则会进行转换
JSP基础语法
JSP支持java所有语法,但是它拥有一些自己的语法
jsp表达式
<%--jsp表达式
作用:用来将程序的输出,输出到客户端
<%= 变量或者表达式%>--%>
<%=new java.util.Date()%>
jsp脚本片段
<%--jsp脚本片段--%>
<%
int sum=0;
for (int i = 0; i < 10; i++) {
sum+=i;
}
out.println("<h1>sum="+sum+"</h1>");
%>
脚本片段的再实现
<%
int x=0;
out.println(x);
%>
<p>这是一个jsp文件</p>
<%
x=x+1;
out.println(x);
%>
在代码中嵌入HTML标签
<%
for (int i = 0; i < 5; i++) {
%>
<p>hello <%= i%></p>
<%
}
%>
jsp声明
<%!
static {
System.out.println("Loading Servlet!");
}
private int global=0;//定义全局变量
void show(){
System.out.println("进入了方法");
}
%>
jsp声明:会被编译到jsp生成的java类的类中,其他的会被生成到_jspService()方法中
jsp的注释,不会在客户端显示,HTML的注释,会在客户端显示
JSP指令
<%--定制错误页面--%>
<%@ page errorPage="error/500.jsp" %>
<%--@ include会将两个页面合二为一--%>
<%@ include file="common/header.jsp"%>
<h1>网页主体</h1>
<%@ include file="common/footer.jsp"%>
<hr>
<%--jsp标签
jsp:include拼接页面,本质上是多个页面--%>
<jsp:include page="common/header.jsp"/>