8、JSP(Java Server Pages)
8.1、什么是Jsp
java服务器端页面,也和servlet一样,用于开发动态web
特点:写jsp就像写html
html,jsp区别
-
html只给用户提供静态的数据
-
jsp页面可以嵌入java代码,为用户提供动态数据
8.2、JSP原理
通过访问tomcat目录或者访问IDEA目录查看,在编译的时候,新建的jsp文件会有两个文件,分别是index_jsp.class和index_jsp.java。 浏览器向服务器发送请求,不管访问什么资源,其实都是在 访问servlet
由此可以看到,jsp最终会转化成一个java类,jsp本质上就是servlet
8.3、JSP基础语法
JSP脚本
JSP脚本部分可以声明变量,但在JSP脚本部分声明的变量是局部变量,但不能使用private、public等访问控制符修饰,也不可使用static修饰。
<% int c= 30; out.println(c); %>
JSP输出表达式 <%=i%>等同于 ${=i}
输出表达式语法后不能有分号
<HTML> <head> <title> 输出表达式值 </title> </head> <%! public int count; public String info() { return "hello"; } %> <body> <!-- 使用表达式输出变量值 --> <%=count++%> <br/> <!-- 使用表达式输出方法返回值 --> <%=info()%> </body> </html>
JSP声明:会编译到JSP生成的Java类中,其他的,就会被生成到 jspService中
<%--Jsp声明 将java代码写入到文件中去--%> <%! static { System.out.println("JspClass.static 初始值设定项"); } public void lzw(){ System.out.println("hylshizhu"); } String name = "liuzhengwie"; %>
<%%> 脚本 <%=%> 输出表达式 <%!%> JSP声明 <%-- --%> 注释
JSP的注释不会显示在客户端
8.4、JSP指令
<%@page args....%>
8.5、九大内置对象
-
PageContext 存东西
-
Request 存东西
-
Response
-
Session 存东西
-
Application ServletContext 存东西
-
config ServletConfig
-
out resp,getWriter 输出
-
page 配置页面 几乎不用
-
exception
scope
public static final int PAGE_SCOPE = 1; public static final int REQUEST_SCOPE = 2; public static final int SESSION_SCOPE = 3; public static final int APPLICATION_SCOPE = 4;
request:客户端向服务器发送请求,产生的数据,用户看完就没用了,eg:新闻,咨询
session:客户端向服务器发送请求,产生的数据,用户看完还有用,eg:购物车
application:客户端向服务器发送请求,产生的数据,一个用户看完了, 其他用户还可能使用