JSP
Java Server Pages:java服务端页面
本质上还是Servlet,只是简化了许多。
需要导入依赖
pom.xml
<!--Servlet-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<!--JSP依赖-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
</dependency>
<!--JSTL表达式的依赖-->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<!--standard标签库-->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
基础语法和指令
JSP表达式
<%= 变量或者表达式%> //用来将程序的输出,输出到客户端
eg:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP</title>
</head>
<body>
<%--JSP表达式--%>
<%--
<%= 变量或者表达式%>
用来将程序的输出,输出到客户端
--%>
<%= new java.util.Date()%>
</body>
</html>
JSP脚本片段
<%
java代码...
%>
eg:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP</title>
</head>
<body>
<%
int sum = 0;
for (int i = 1; i < 100; i++) {
sum +=i;
}
out.print("<h1>Sum="+sum+"</h1>");
%>
</body>
</html>
JSP声明
将内容跳脱于Servlet之外,会被编译到JSP生成的java类中。而其他内容则会被生成到_jspService方法中。
格式:
<%!
java代码
%>
eg:
<%!
private void show(){
System.out.println("WOW");
}
%>
JSP指令
格式:
<%@page args... %>
<%@include file=""... %>
九大内置对象
1.PageContext =>存东西
2.Request =>存东西
3.Resopnse
4.Seeson =>存东西
5.Application[SerlvetContext] =>存东西
6.config [SerlvetConfig]
7.out
8.page
9.exception
eg:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP</title>
</head>
<body>
<%-- 内置对象--%>
<%
pageContext.setAttribute("name1","Tom");
request.setAttribute("name2","Jerry");
session.setAttribute("name3","Sesion");
application.setAttribute("name4","apply");
//通过pageContext获取值
String name1 = (String) pageContext.findAttribute("name1");
String name2 = (String) pageContext.findAttribute("name2");
String name3 = (String) pageContext.findAttribute("name3");
String name4 = (String) pageContext.findAttribute("name4");
%>
<%--通过EL表达式输出 格式: ${} --%>
<p>${name1}</p>
<p>${name2}</p>
<p>${name3}</p>
<p>${name4}</p>
</body>
</html>
注:
寻找的方式为 从底层到高层(作用域) PageContext <request<session<application
其中 PageContext 保存的数据只在一个页面有效
request 保存的数据只在一次请求中有效,请求转发回携带该数据
session 保存的数据只在一次会话中有效,即打开浏览器直至关闭
application 保存的数据只在服务器有效,即从打开服务器直至关闭
JSP标签
<%--
页面形式:localhost:8080:xx.jsp?name_demo=?&age_demo=?
--%>
<jsp:forward page="web-path">
<jsp:param name="name_demo" value="v_demo"><jsp:param>
<jsp:param name="age_demo" value="v1_demo"><jsp:param>
</jsp:forward>
JSTL表达式
为了弥补HTML的不足,则JSTL自定义了许多标签,功能与Java代码一致。
核心标签
1.引用核心标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
2.使用方法
【内容繁多,暂不演示】
EL表达式
->用来 获取数据、执行运算、获取web开发的常用对象
格式:
${...}
JavaBean
实体类
JavaBean有特定的写法
1.必须有一个无参构造
2.属性必须私有化
3.必须有相对于的get&set方法
=》一般用于和数据库的字段做映射 ORM (表->类、字段->属性、行记录->对象)
eg:
<jsp:userBean id="student" class="com.domain.Student" scope="page" />
<jsp:setProperty name= "student" property="name" value="Tom" />
<jsp:getProperty name="student" property="name" />