作者:mobiledu2502861463 | 来源:互联网 | 2023-09-24 13:44
JSP概述JSP常用脚本JSP常用标签Listener监听器概念JSP全称时JavaServerPages。Java的服务器页面JSP的主要作用主要是替代servlet回传html
JSP概述
JSP常用脚本
JSP常用标签
Listener监听器
概念
JSP全称时Java Server Pages。Java的服务器页面
JSP的主要作用主要是替代servlet回传html页面数据
因为servlet回传html页面是一件非常繁琐的事情,开发黑盒维护成本极高
jsp文件创建
在web目录下创建一个jsp文件,通过
jsp和html一样,都是存放在web目录下,访问和访问html页面一样
访问地址:http:ip/port/工程路径/a.html
jsp本质是一个servlet程序
当第一次访问jsp文件时,tomcat服务器会将翻译成为Java源文件,并且进行对它翻译成为字节码文件
jsp头部的page命令
jsp头部指令可以修改jsp页面中一些重要属性和行为
jsp常用脚本
//脚本格式
<%! 声明jsp文件 %>
在jsp文件中
这里是jsp请求
<%--声明变量--%>
<%!
private static Map map;
private String name;
%>
<%--声明类的方法--%>
<%!
static {
map = new HashMap<>();
map.put(10, 100);
}
%>
<%--声明类方法--%>
<%!
public int abc() {
return 12;
}
%>
<%--声明内部类--%>
<%!
public static class A {
private Integer id = 10;
}
%>
表达式脚本
作用:在jsp页面上输出数据
特点:
所有表达式脚本都会被翻译到jsp.service()方法中
表达式脚本都会被翻译为put.print()输出到页面上上
由于表达式脚本翻译的内容都在jsp.service()中,所以次方法中的对象可以直接使用
表达式脚本语句不能以分号结束
<%--表达式脚本--%>
<%--输出整型、浮点型、字符串、对象--%>
<%=12%>
代码脚本
在jsp.service()方法中写的语句在代码脚本中都可以书写
特点:
代码脚本翻译后都在jsp.service方法中
因为翻译后在jsp.sercie()方法中,所以jsp.service()中的对象都可以使用
代码脚本还可以由多个脚本块完成一个Java语句
代码脚本可以和表达式脚本一起使用
//格式
<%
java 语句
%>
<%--代码脚本--%>
<%--if-else语句,for循环--%>
<%
int i = 10;
if (i > 10) {
System.out.println("i>10");
} else {
System.out.println("i<=10");
}
%>
<%--代码脚本和表达式脚本组合在一起使用--%>
<%
for (int i = 0; i <10; i++) {
%>
<%=i%>
<%
}
%>
jsp三种注释
html注释:此种注释会被翻译到Java源代码中,在jsp.service()方法里,以out.write()输出到客户端
java注释:Java注释会被翻译到Java源代码
jsp注释:jsp注释可以注释掉jsp中所有代码
jsp九大内置对象
jsp四大域对象
四个域的作用范围可用通过请求转发来确定,一般使用顺序从下到大即从上到下
scope.jsp页面
<%
//往四个域中分别保存数据
pageContext.setAttribute("key", "pageContext");
request.setAttribute("key", "request");
session.setAttribute("key", "session");
application.setAttribute("key", "application");
%>
pageContext域中是否有值:<%=pageContext.getAttribute("key")%>
request域中是否有值:<%=request.getAttribute("key")%>
session域中是否有值:<%=session.getAttribute("key")%>
application域中是否有值:<%=application.getAttribute("key")%>
<%--请求转发--%>
<%
request.getRequestDispatcher("/scope2.jsp").forward(request,response);
%>
out和response回传给客户端数据的区别
response表示响应,通常用于设置返回给客户端的内容
out是给使用做输出使用的
out.write()输出字符串没有问题
out.print()输出所有数据都没有问题
在jsp页面都可以使用print输出
<%
out.write("out输出1
");
out.write("out输出2
");
response.getWriter().write("response输出1
");
response.getWriter().write("response输出1
");
%>
jsp常用标签
静态包含
<%-- <%@ include file=""%> 就是静态包含
file表示要指定的jsp文件路径
地址中的第一个斜杠表示为 http://ip:port/工程路径/ 映射到web目录
静态包含特点:
静态包含不会翻译被包含的jsp文件
静态包含其实是把被包含的jsp页面代码拷贝到包含的位置上执行输出
--%>
<%--<[email&#160;protected] file="/include/footer.jsp"%>--%>
动态包含
页面长划分为头部,主体,尾部
可以将每隔一个部分用一个jsp文件来写
实现原理
头部信息
主体内容
<%--页脚信息
--%>
<%--
动态包含
page属性是指要包含的jsp页面路径
特点:
动态包含会把jsp页面翻译成为Java代码
传递参数
--%>
//在footer.jsp文件中
页脚信息
获取参数:<%=request.getParameter("wzl")%>
请求转发
<%--请求转发--%>
请求转发使用说明
Listener监听器
Listener监听器是Java web三大组件之一
Java web三大组件:Servlet程序、Filter过滤器、Lisenter监听器
Listener是JavaEE的规范即为接口
作用:监听某种事情的变化通过回调函数,反馈给客户(程序)去做一些相应的处理
ServletContextListener监听器
可以监听ServletContext对象的创建和销毁
ServletContext对象在web工程启动时调用,在停止时销毁
使用ServletContextListener监听器监听器监听ServletContext对象对象步骤
创建一个类实现ServletContextListener
实现其俩个回调方法
到web.xml中取配置监听器
//创建一个类实现ServletContextListener,实现其俩个回调方法
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class MyServletContextListenerImpl implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("ServletContext对象被创建了");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("ServletContext对象被销毁了");
}
}
到web.xml中取配置监听器
com.atguigu.listener.MyServletContextListenerImpl
本文地址:https://blog.csdn.net/wangzilong_2019/article/details/107372136