什么是JSP
JSP(全称:Java Server Pages):Java服务器端页面,也和Servlet 一样,用于动态Web 技术!
JSP最大特点:
写JSP就像写HTML区别:
HTML只给用户提供静态的数据JSP页面中可以嵌入JAVA代码,为用户提供动态是数据;
JSP原理
思路:JSP到底怎么执行的!
服务器内部工作
tomcat 中有一个work 目录IDEA 中 使用 Tomcat 会在IDEA 的 tomcat 中生成一个work 目录
我电脑地址为:
D:\Environment\apache-tomcat-9.0.46\work\Catalina\localhost\ROOT\org\apache\jsp
发现页面转变成了Java程序!
JSP文件的经历过程:
由此可以知道:
浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet !JSP最终也会被转换成一个Java类JSP本质上就是一个Servlet
1、JSP 内置的一些对象:
2、JSP在输出页面前会增加以下代码:
3、以上这些 内置对象,我们可以在编写 JSP 页面时,可以直接使用!
在JSP页面中,只要是JAVA代码就会原封不动的输出;
如果是HTML代码,就会转换为 java 代码
eg:
我们我们在 index.jsp 文件同一目录下创建一个 hello.jsp 文件:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
String name = "xiaoxu";
%>
<%=name%>
运行结果:
JSP 基础语法
任何语言都有自己的想法,JAVA中有。JSP 作为Java 技术的一种应用,它拥有一些自己扩充的语法(了解即可!),Java所有语法都支持!
JSP表达式和脚本片段 :
可以把JSP表达式: <%= a%> 用EL表达式代替 :${ a }
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%-- JSP表达式 格式 : <%= 变量或者表达式 %>
作用:用来将程序的输出,输出到客户端
--%>
<%= new java.util.Date()%>
<%-- JSP 脚本片段 --%>
<%
int sum = 0;
for (int i = 0; i <= 100; i++) {
sum+=i;
}
out.println("
Sum = "+sum+"
");%>
运行结果:
JSP 声明 (在 % 后加 ! )会被编译到 SP 生成 Java 类中,而上面的Jsp表达式和脚本片段,就会被生成到_jspServlet 方法中
在JSP中,嵌入Java代码即可!
<%--JSP 声明--%>
<%!
static {
System.out.println("Loading Servlet!");
}
private int globalvar = 0;
public void xiaoxu(){
System.out.println("进入了方法xiaoxu");
}
%>
JSP表达式语法总结:
<%%> //脚本片段
<%=%> //jsp 表达式输出一个值
<%!%> //定义全局的方法
<%-- JSP的注释 --%> //注释
<!-- HTML的注释 --> //注释
JSP的注释,不会在客户端显示,HTML的注释就会显示!
JSP自定义错误页面:
方法一:
我们先在 index.jsp 文件的同一目录下新建一个jsp2 .jsp 文件,用来填写错误,和发生错误的页面跳转:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--自定义错误页面--%>
<%@ page errorPage="error/500.jsp" %>
<%
int x = 1/0;
%>
随后按以下目录创建文件夹和文件,并找一张500页面报错的png文件:
在500.jsp 文件中写:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

运行结果:
自定义错误页面 ,方法二:
直接在 error 文件夹下 ,创建一个 404.jsp 文件,并编写该页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
自定义的404页面
然后在 web.xml 文件中定义错误发生时的页面跳转:
运行结果: