JSP解析(下)

一、jsp中的out输出和response.getWriter输出的区别

response中表示响应,经常用于设置返回客户端的内容(输出)

out也是给用户做输出使用的

代码演示:

<%--
  Created by IntelliJ IDEA.
  User: Peter
  Date: 2022/10/20
  Time: 19:49
  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>
<%
    out.write("out输出1 <br/>");
    out.flush();
    out.write("out输出2 <br/>");
    out.write(12);
    out.print(12);
    //out.write()输出字符串没有问题
    //out.print()输出任意数据都没有问题(都转换成为字符串后调用的write输出)
    response.getWriter().write("response输出1 <br/>");
    response.getWriter().write("response输出2 <br/>");

%>
</body>
</html>

Eg:

  1. 由于jsp翻译之后,底层源代码都是使用out来进行输出,所以一般情况下。在jsp页面中统一使用out来进行输出,避免打乱页面输出内容的顺序。
  2. 在jsp页面中,可以统一使用out.print()来进行输出

二、jsp的常用标签

  1. jsp静态包含
    1. 特点:
      1. 静态包含不会翻译被包含的jsp页面
      2. 静态包含其实是把被包含的jsp页面的代码拷贝到包含的位置执行输出。
    2. 代码演示
<%@ include file="/include/footer.jsp" %> 
//file属性指定你要包含的jsp页面的路径
//地址中第一个斜杠 / 表示为http://ip:port/工程路径/ 映射到代码的web目录
  1. jsp动态包含
    1. 特点:
      1. 动态包含会把包含的jsp页面也翻译成为java代码
      2. 动态包含底层代码使用如下代码去调用被包含的jsp页面执行输出。(JspRuntimeLibrary.include(request,response,”/include/footer.jsp”,out,false))
      3. 动态包含,还可以传递参数
    2. 代码演示
<jsp:include page="/include/footer.jsp">
<jsp:param name="username" value="bbj"/>
<jsp:param name="password" value="root"/>
</jsp:include>

        1. jsp标签-转发

代码演示:

<%
   // request.getRequestDispatcher("/scope2.jsp").forward(request, response);
%>
<%--<jsp:forward page=""></jsp:forward>-- 是请求转发标签,它的功能就是请求转发
page 属性设置请求转发的路径
--%>
<jsp:forward page="/scope2.jsp"></jsp:forward>

三、Listener监听器

解析:

  1. Listener监听器是Javaweb的三大组件之一。
  2. Listener是JavaEE的规范,就是接口
  3. 监听器的作用是:监听某种事物的变化。然后通过回调函数,反馈给客户去做一些相应的处理

ServletContextListener监听器

  1. ServletContextListener可以监听ServletContext对象的创建和销毁
  2. ServletContext对象在web工程启动的时候创建,在web工程停止的时候销毁
  3. 监听到创建和销毁之后会分别调用ServletContextListener监听器的方法反馈

如何使用ServletContextListener监听器监听ServletContet对象?

步骤:

  1. 编写一个类去实现ServletContextListener
  2. 实现其两个回调方法
  3. 到web.xml中去配置监听器

代码演示:

package listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class MyServletContextListenerImpl implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        System.out.println("ServletContext对象被创建了");
    }

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("ServletContext对象被销毁了");
    }
}

配置监听器:

<listener>
        <listener-class>listener.MyServletContextListenerImpl</listener-class>
    </listener>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值