2020-10-19课堂笔记-jsp

1.什么是jsp

jsp的本质是servlet
.jsp->.java(servlet)->.class->servlet实例

JSP(Java Server Page)是Java服务端的页面,所以它是动态的,它是需要经过JDK编译后把内容发给客户端去显示,Java文件编译后会产生一个class文件,最终执行的就是这个class文件。

可以粗略的认为:jsp=html+java

jsp与html的不同:

  1. jsp需要tomcat来运行 html不需要,只要浏览器即可
  2. jsp是动态的,html是静态的

jsp包含脚本元素、指令元素、动作元素

2.jsp基本语法

    <!-- JSP脚本 -->
    <%  %>
    <!-- Jsp声明全局变量 -->
    <%! %>
    <!-- jsp局部变量 -->
    <% %>
    <!-- jsp表达式 -->
    <%=1+1 %>>
    <!-- jsp注释 -->
    <%-- 我是jsp注释--%><!--  特点:f12中不可见-->

3.jsp指令

page、include、taglib(此处暂不讲解)

<%@ page language="java" contentType="text/html; charset=utf8"
    pageEncoding="utf8"%>
<%@page import="" %s>

page指令的常用属性:

属性含义
import导入要使用的java类
contentType指定文档类型、页面编码方式
extends指定继承自某个类
autoFlash自动刷新,默认为true
language指定语言
buffer指定out对象使用缓冲区的大小
session是否启用会话,默认为true
isThreadSafe是否线程同步

include:静态的jsp指令

 <%@include file="" %>

4.动作元素

jsp:include

<jsp:include page="相对 URL 地址" flush="true" />

jsp:useBean

<jsp:useBean id="name" class="package.class" />

jsp:setProperty

<jsp:useBean id="myName" ... >
...
   <jsp:setProperty name="myName" property="someProperty" .../>
</jsp:useBean>

jsp:getProperty

<jsp:useBean id="myName" ... />
...
<jsp:getProperty name="myName" property="someProperty" .../>

jsp:forward

<jsp:forward page="相对 URL 地址" />

5.四大作用域

pageContext 作用范围:当前jsp页面范围

<body>
<%pageContext.setAttribute("pageContextScope", "aaa");
String aaa=(String)pageContext.getAttribute("pageContextScope");
%>
<h1>pageContextScope:<%=aaa %></h1>
</body>

request 一次请求有效

 @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
	// TODO Auto-generated method stub
      //super.doPost(req, resp);
     req.setAttribute("requestScope", "bbb");
	 //通过转发的方式(有效)
	 req.getRequestDispatcher("inner.jsp").forward(req,resp);
     //通过重定向
     //resp.sendRedirect("inner.jsp");
}
<body>
     <% pageContext.setAttribute("pageContextScope", "aaa");
    String aaa=(String)pageContext.getAttribute("pageContextScope");
    
   String bbb=(String) request.getAttribute("requestScope");
    %>
    <h1>pageContextScope:<%=aaa %></h1>
    <h1>requestScope:<%=bbb %></h1>
     </body>

运行如下图:
在这里插入图片描述
如果通过重定向的方法则接收不到requestScope
因为重定向的二次请求之间无法共享

    //通过重定向
           resp.sendRedirect(req.getContextPath()+"/inner.jsp");

效果如下图所示:
在这里插入图片描述

session 一次会话有效(关闭浏览器失效)

//通过session
req.getSession().setAttribute("sessionScope", "ccc");

效果如下图:
在这里插入图片描述
application(servletContext) 整个web应用有效(服务器重启或关闭失效)

 //通过servletContext 
    req.getServletContext().setAttribute("servletContextScope", "ddd");

6.九大内置对象

内置对象:由jsp自动创建的对象,可以直接使用

对象说明
request
response
sessionsession=“true”
application
config
exceptionisErrorPage=“false”
outjavax.servlet.jsp.JapWriter
pageContext
page
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值