【JavaWeb】JSP原理与基本用法

一、JSP

1.什么是JSP?

JSP(Java Server Pages,Java 服务器页面)是建立在Servlet规范上的动态网页开发技术。
在这里插入图片描述
在这里插入图片描述
查看源码,可以看到JSP的本质就是Servlet。在内部定义了inIt()方法、service()方法、destroy()方法,浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet!
在这里插入图片描述

2.JSP运行原理

在这里插入图片描述
在项目启动,在浏览器访问xxx.jsp后可以在idea的控制台查看Using CATALINA_BASE: 生成xxx_jsp.java文件的位置,可以查看运行结束后的Servlet实例的内容。
在这里插入图片描述
在JSP页面中: 只要是Java代码就会原封不动的输出;如果是html代码,就会被转换为out.write("<!DOCTYPE html>\r\n");格式输出到浏览器。

二、JSP基础语法和指令

1.JSP脚本元素

JSP脚本元素:是指嵌套在<%和%>之中的一条或多条Java程序代码。
JSP脚本元素主要包含如下三种类型:
① JSP Scriptlets
② JSP声明语句
③ JSP表达式
1.JSP Scriptlets
JSP Scriptles是一段代码段,用于使用Java实现一些复杂操作或控制。

<% 代码(变量、方法、方法、表达式等) %>

JSP Scriptles中声明的变量是JSP页面的局部变量,调用JSP Scriptles时,会为局部变量分配内存空间,调用结束后,释放局部变量占有的内存空间。
2.JSP声明语句
JSP声明语句用于声明变量和方法。

<%! 定义的变量或方法等 %>

会被编译到SP生成Java的类中!其他的,就会被生成到_jspService方法中!
JSP声明语句声明的都是成员方法、成员变量、静态方法、静态变量、静态代码块等,声明的方法整个JSP页面有效,在方法内声明的变量只在方法内部有效。
3.JSP表达式
JSP表达式用于将程序数据输出到客户端。

<%= JSP表达式 %>

2.JSP注释

JSP注释:

<%-- 注释信息 -->

html注释:

<!-- 注释信息 -->

JSP的注释信息在客户端浏览器无法查看,但是html注释信息在客户端浏览器可以查看。

3.JSP指令

1.page指令
对JSP页面的某些特征描述,如页面的编码方式、JSP页面采用的语言等。

<%@ page 属性名1="属性值1" 属性名2="属性值2" ...%>

常用属性:langusge、session、isErrorpage、errPage、contentType、pageEncoding。
2.include指令
在JSP页面静态包含一个文件,例如html文件、文本文件等。

<%@ include file="被包含的文件地址" %>

三、JSP对象及内置作用域

名称描述
out用于页面输出
request得到用户请求信息
response服务器向客户端的回应信息
config服务器配置,可以获得初始化参数
session用来保存用户的信息
appliaction所有用户共享的信息
page提供当前页面转换后的Servlet类的实例
pageContextJSP的页面容器
exception表示JSP页面所发生的异常,在错误页中才能起作用

request:客户端向服务器发送请求,产生的数据,用户看完就没用了,比如:新闻,用户看完没用的;
session:客户端向服务器发送请求,产生的数据,用户用完一会还有用,比如:购物车;
application:客户端向服务器发送请求,产生的数据,一个用户用完了,其他用户还可能使用,比如:聊天数据;
index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--内置对象--%>
<%
    pageContext.setAttribute("name1","小王1号");//保存的数据只在当前页面中有效
    request.setAttribute("name2","小王2号");//保存的数据只在一次请求中有效,请求转发会携带这个数据
    session.setAttribute("name3","小王3号");//保存的数据只在一次会话有效,从打开浏览器到关闭浏览器
    application.setAttribute("name4","小王4号");//保存的数据只在服务器中有效,从打服务器到关闭服务器
%>
<%
    String name1 = (String) pageContext.findAttribute("name1");
    String name2 = (String) pageContext.findAttribute("name2");
    String name3 = (String) pageContext.findAttribute("name3");
    String name4 = (String) pageContext.findAttribute("name4");
    String name5 = (String) pageContext.findAttribute("name5");
%>
<%--使用EL表达式输出--%>
<%--作用域从低到高:page--->request--->session--->application --%>
<h1>取出的值是:</h1>
<hr>
<h2>${name1}</h2>
<h2>${name2}</h2>
<h2>${name3}</h2>
<h2>${name4}</h2>
<h2>${name5}</h2>
<h2><%=name5%></h2>
</body>
</html>

在这里插入图片描述

四、EL表达式、JSP标签、JSTL标签

1.EL表达式

EL表达式是Expression Language的缩写,是一种简单的数据访问语言。

${表达式}

作用:获取数据、执行运算、获取web开发的常用对象

2.JSP标签

JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智商三岁半i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值