7JSP
JSP
1JSP简介
什么是JSP
- Java Server Pages:Java服务器端页面,也和Servlet一样,用于动态Web技术
- 写JSP就像在写HTML
- HTML只给用户提供静态的数据
- JSP页面可以嵌入java代码,为用户提供动态数据
JSP原理
- 进入到IDEAtomcat的工作区间,可以发现jsp页面转变成了java程序

- 浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet
- JSP最终也会被转换成为一个Java类
- JSP实质上就是一个Servelt

- 在JSP页面中
- 只要是JAVA代码就会原封不动的输出
- 如果是HTML代码,就会被转换成out.write("\r\n");这样的格式输出到前端

2JSP基础语法
- 任何语言都有自己的语法,jsp作为java技术的一种应用,也有一些自己的扩充语法(了解,知道即可!!)java所有语法都支持!!
<%-- 2.1jsp表达式
用来将程序的输出 输出到客户端
--%>
<%= new java.util.Date()%>
<hr><%--换行--%>
<%-- 2.2jsp脚本片段--%>
<%
int sum=0;
for (int i=0;i<=100;i++){
sum+=i;
}
out.println("<h1>Sum="+sum+"</h1>");
%>
<%-- 2.3在代码中嵌入html元素--%>
<%
for (int i=0;i<5;i++){
%>
<h1>hello,world <%=i%></h1>
<%
}
%>
<%--2.4jsp声明 --%>
<%!
static {
System.out.println("loading servlet!");
}
private int floblavar=0;
public void fao(){
System.out.println("loading fao!");
}
%>

//补充
//在jsp,嵌入java代码即可!
<%%>
//普通脚本用于在jsp页面执行java语句如实例化对象,调用方法等,在这里面也可以定义变量,但要想输出就得使用out.println()方法
<%=%>
//用于在jsp页面显示(向页面输出,现在在页面上)某个变量值,或方法调用的返回值.
<%!%>
//声明变量和函数,可以由java代码调用。例如<%! String name="yvwenting"%>
<%--注释--%>
//jsp的注释不会在客户端显示,但是HTML的就会!!说明jsp会相较于html更安全
//EL表达式:在JSP页面的任何静态部分均可通过:${expression}来获取到指定表达式的值
2.5JSP指令
- <%@page args......%>:arg经常为errorPage用于指定错误界面
- <%@include file=""%>:可以将两个页面合二为一
- <jsp:include page=""/>:拼接页面,本质还是多个,这个常用一点
定制错误界面如下
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--定制错误界面--%>
<%@ page errorPage="error/500.jsp" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
int i=1/0;
%>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--错误界面 可以在web/img下放一个500图片 这样更方便 --%>
<html>
<head>
<title>Title</title>
</head>
<body>
<img src="web/img/1.jpg" alt="500">
</body>
</html>
写网页header和网页footer
<%--方式1 --%>
<body>
<%include file="common/header.jsp"%>
<h1>
网页主体
</h1>
<%include file="common/footer.jsp"%>
</body>
<%--方式2 --%>
<body>
<jsp:include page="/common/header.jsp"/>
<h1>
网页主体
</h1>
<jsp:include page="/common/footer.jsp"/>
</body>
3九大内置对象
- PageContext 存东西
- Request 存东西
- Response
- Session 存东西
- Application (Servlet Context) 存东西
- config (servlet config)
- out
- page
- exception
用途
- request: 客户端向服务器发送请求,产生的数据,用户看完就没用了, 比如: 新闻,用户看完没用的!
- session: 客户端向服务器发送请求,产生的数据,用户用完之后还有用 , 比如: 购物车
- application: 客户端向服务器发送请求,产生的数据,一个用户用完了,其他用户还可以使用, 比如:聊天数据
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
pageContext.setAttribute("name1","fao1");
//保存的数据只在一个页面中有效
request.setAttribute("name2","fao2");
//保存的数据只在一次请求中有效,请求转发会携带这个数据
session.setAttribute("name3","fao3");
//保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
application.setAttribute("name4","fao4");
//保存的数据只在服务器中有效,从打开服务器到关闭服务器
%>
<%-- 脚步片段中的代码会被原封不动生成到.JSP.java
要求:在这里面的代码:必须保证Java语法的正确性
作用域从底层到高层:pageContext->request->session->application
--%>
<%-- 使用EL表达式输出 --%>
<h3>取出的值为:</h3>
<h3>${name1}</h3>
<h3>${name2}</h3>
<h3>${name3}</h3>
<h3>${name4}</h3>
<h3>${name5}</h3>
</body>
</html>


浙公网安备 33010602011771号