javaweb---JSP
javaweb---JSP
-
什么是jsp,有什么用
jsp的全称是java server pages.
jsp的主要作用就是代替Servlet程序回传html页面的数据
jsp回传一个简单html页面的代码
<%-- Created by IntelliJ IDEA. Date: 2022/4/25 Time: 15:33 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> 这是jsp </body> </html>
jsp本质上就是Servlet程序
- jsp三种语法
a. jsp头部的page指令
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
language属性:表示jsp翻译以后是什么语言文件,暂时只支持java
contentType属性:表示jsp返回的数据类型是什么。
pageEncoding属性:表示jsp页面文件的字符集
import属性:用于导包,导类
以下两个属性是给out输出流使用的:
autoflush属性:设置当out输出流缓冲区满了之后,是否自动刷新缓冲区。默认为true
buffer属性:设置out缓冲区的大小,默认是8Kb
errorPage属性:设置当jsp页面运行出错时,自动跳转去的错误页面路径
isErrorPage属性:设置当前jsp页面是否是错误信息页面。默认是false。如果是true可以获取异常信息。
session属性:设置访问当前jsp页面是否会创建HttpSession对象。默认是true
extends属性:设置jsp翻译出来的java类默认继承谁。
b)jsp中的常用脚本
-
声明脚本
<%@ page import="java.util.Map" %> <%@ page import="java.util.HashMap" %><%-- Created by IntelliJ IDEA. User: 86156 Date: 2022/4/25 Time: 15:59 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <%--声明类属性--%> <%! private Integer id; private String name; private static Map<String,Object> map; %> <%--声明static静态代码块--%> <%! static { map=new HashMap<String,Object>(); map.put("key1","value1"); map.put("key2","value2"); map.put("key3","value3"); } %> <%--声明类方法--%> <%! public int abc(){ return 11; } %> <%--声明内部类--%> <%! public class A{ private Integer id=12; private String abc="a"; } %> </body> </html>
-
表达式脚本
<%--表达式脚本--%>
<%=12%> <br>
<%=11.11%><br>
<%="字符串!"%><br>
<%=map%> <br>
<%=request.getParameter("username")%>
代码脚本
<%--代码脚本--%>
<%
int k=12;
for(int i=1;i<=10;i++){
for(int j=1;j<=i;j++) {
%>
<%="* "%>
<%
}
%>
<br>
<%
}
%>
C)jsp中的三种注释
-
html注释
<!--这是html注释-->
-
java注释
//单行java注释 /* 多行java注释 */
-
jsp注释
<%--这是jsp注释 --%>
4.jsp九大内置对象
request 请求对象
response 响应对象
pageContext jsp的上下文对象
session 会话对象
application ServletContext对象
config ServletConfig对象
out jsp输出流对象
page 指向当前jsp的对象
exception 异常对象
5.jsp四大域对象
pageContext 当前jsp页面范围内有效
request 一次请求内有效
session 一个会话范围内有效(打开浏览器访问服务器,直到关闭浏览器)
application 整个web工程范围内都有效
四个域对象在使用时按如下顺序生效
pageContext————request————session————application
<%--
Created by IntelliJ IDEA.
User: 86156
Date: 2022/4/25
Time: 16:44
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>c.jsp页面</h1>
<%
//向四个域中添加数据
pageContext.setAttribute("key","pageContext");
request.setAttribute("key","request");
session.setAttribute("key","session");
application.setAttribute("key","application");
%>
pageContext域:<%=pageContext.getAttribute("key")%><br>
request域:<%=request.getAttribute("key")%><br>
session域:<%=session.getAttribute("key")%><br>
application域:<%=application.getAttribute("key")%><br>
<%
request.getRequestDispatcher("/c1.jsp").forward(request,response);
%>
</body>
</html>
7.jsp常用标签
a.静态包含
<%@ include file="/a.jsp"%>
静态包含的特点:
1、静态包含不会翻译被包含的jsp页面
2、静态包含其实是把包含的jsp页面的代码拷贝到包含的位置执行输出
b.动态包含
<jsp:include page="/b.jsp"></jsp:include>
动态包含的特点:
1、动态包含会把包含的jsp页面翻译成java代码
2、动态包含可以传递参数
c.转发标签
8.练习
练习:在jsp页面输出九九乘法表
<%--
Created by IntelliJ IDEA.
User: 86156
Date: 2022/4/25
Time: 17:40
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1 align="center">九九乘法表</h1>
<table align="center">
<% for(int i=1;i<=9;i++){ %>
<tr>
<% for(int j=1;j<=i;j++){ %>
<td><%=j+"x"+i+"="+(i*j)%></td>
<% } %>
</tr>
<% } %>
</table>
</body>
</html>
9、Listener监听器
1、Listener监听器是javaweb三大组件之一。javaweb的三大组件分别是:Servlet程序、Filter过滤器、Listener监听器
2、监听器的作用:监听某种事物的变化,然后通过回调函数,反馈给程序去做一些相应的处理。