JSP技术_颜悦扬的博客-程序员信息网_jsp技术

技术标签: 笔记  java  tomcat  eclipse  

学习目标

一、JSP概述
二、JSP基本语法
三、JSP隐式对象

学习内容

一、JSP概述

1.1 什么是jsp:
它的英文全称 java server pages ,java服务端页面,它是建立在servlet规范基础上的动态网页开发技术。

  • java 服务端 页面: 在jsp上可以写java代码,也可以写html标记,它运行在服务器端。
  • jsp = java + html + jsp自身的一些东西。
  • 为什么会产生jsp技术:
    因为在早期没有jsp时,需要servlet向页面写数据,比较麻烦,所以就产生了jsp技术,
    jsp最大的特点:可以非常简单的书写页面html。
    jsp其实它的本质是servlet: 可以看到jsp 继承了 HttpJspBase 继承 HttpServlet。

1.2 编写第一个jsp文件
jsp生成java文件,编译成class文件,存在tomcat服务器的work目录。
注意:修改jsp的默认编码格式:window---------->preferenes-----> 搜索 jsp -----> 选中编码 进行修改。
步骤:
1.创建JSP文件
在这里插入图片描述

2.命名文件
在这里插入图片描述

<%@page language=“java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<metacharset="UTF-8">
<title>Insert title here</title>
</head>
<body>
大数据2005 yanmin
   <%response.getWriter().print("四川")%>
</body>
</html> 

在这里插入图片描述
1.3.jsp运行原理
JSP的运行原理WEB容器(Servlet引擎)接收到以.jsp为扩展名的URL的访问请求时,它将把该访问请求交给JSP引擎去处理。Tomcat 中的JSP引擎就是一个Servlet程序,它负责解释和执行JSP页面。

二、JSP基本语法

2.1 JSP脚本元素
在jsp页面书写java的三种形式:
1.可以声明语句和方法
2.可以书写java代码段
3.可以书写表达式
2.2JSP声明语句
JSP的声明语句用于声明变量和方法,它以“<%“开始,以“%>” 结束,其语法格式如

<%!

定义的变量或方法等

%>

在上述语法格式中,被声明的Java代码将被编译到Serlet的jsService(方法之外,即在JSP声明语句中定义的都是成员方法、成员变量、静态方法、静态变量、静态代码块等。在JSP声明语句中声明的方法在整个JSP页面内有效,但是在方法内定义的变量只在该方法内有效。当声明的方法被调用时,会为方法内定的变量分配内存,而调用结束后立刻会释放所占的内存。
在一个JSP页面中可以有多个JSP声明语句,单个声明中的Java语句可以是不完整的,但是多个声明组合后的结果必须是完整的Java语句。接下来,通过一个案例来演示JSP Scriptlets
和声明语句的使用。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
int a=1;
int b=2;
%>
<%!
public String dashuju(){
    
String str="dashuju";
return str;
}
%>
<% out.print(a+b);%>
<br/>
<% response.getWriter().print("yanmin");%>
<br/>
<% out.print(dashuju());%>
<br/>
<br/><br/><br/>
<%=a+b %>
<br/>
<%=dashuju()%>
</body>
</html>

2.3.JSP 指令
page指令、include指令、taglib指令(现在不讲)
page指令
page指令的用途是设置与jsp页面相关的信息,比如说设置jsp页面的编码,jsp页面的默认语言等
基本语法格式:<%@ page 属性=“属性值” 属性=“属性值” 属性=“属性值” %>
比如:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	 pageEncoding="UTF-8"%>

include指令:
在jsp页面通常会需要显示其它页面的信息,所以可以通过这个include指令把其它页面包含过来。
基本语法:<%@ include file=“被包含文件的url” %>
创建两个jsp页面: date.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@page import="java.util.Date" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	date.jsp页面用来输出当前时间
	<%out.print(new Date().toLocaleString()); %>>

</body>
</html>

在这里插入图片描述
include.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	我是include页面,下面是我包含进来的页面:
	<%@ include file="date.jsp" %>
</body>
</html>


在这里插入图片描述

三、JSP隐式对象

隐式对象概述
什么是隐式对象:在jsp页面里面,jsp提供了一些对象,不用咱们自己创建,可以直接使用的对象。
jsp常见的九大隐式对象:
request: HttpServletRequest,请求对象,它同时也是域对象,作用范围一次请求
response:HttpServletResponse,响应对象
session: HttpSession ,会话对象,它同时也是域对象,作用范围一次会话
application:ServletContext,上下文对象,它同时也是域对象,作用范围整个项目
config:ServletConfig,配置对象
out:JspWriter,其实和PrintWriter作用差不多。
page:Object ,代表当前jsp的页面对象
pageContext:PageContext ,jsp容器
exception:Throwable,异常对象,用来捕获异常信息。
只有当前jsp页面有isErrorPage="true"这个属性时,才能使用exception对象。
3.1out对象
在JSP页面中,经常需要向客户端发送文本内容,这时,可以使用out对象来实现。out对象是javax servlet.jsp.JspWriter类的实例对象,它的作用与ServletResponse.getWriter()方法返回的PrintWriter对象非常相似,都是用来向客户端发送文本形式的实体内容。不同的足,out对象的类型为JSpWriter, 它相当于一种带缓存 功能的PintWriteror接下来,通过一张图来描述JSP页面的out对象与Servlet引擎提供的缓冲区之间的工作关系
在chapter06项目的WebContent 目录下创建out.jsp文件。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		out.print("first line <br/>");
		
		response.getWriter().print("seconde line <br/>");
	%>

</body>
</html>

在这里插入图片描述
3.2pageContext 对象
在JSP页面中,使用pageContext对象可以获取JSP的其他8个隐式对象。pageContext对象是javax. servlet.jsp PageContext类的实例对象,它代表当前JSP页面的运行环境,并提供了一系列用 于获取其他隐式对象的方法。pageContext 对象获取隐式对象的方法
结论:在pageContext域对象使用findAttribute方法获取值,进行了全域查找,
查找的范围:pageContext—>request----->session----->application
首先找域作用范围小的对象,如果有值获取到,停止向下查找,如果不存在对应的值,就继续向下寻找。
编写pageContext

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		HttpServletRequest req=(HttpServletRequest) pageContext.getRequest();
	
		pageContext.setAttribute("dashuju11", "pagecontext",PageContext.PAGE_SCOPE);
		pageContext.setAttribute("dashuju22","REQUEST",pageContext.REQUEST_SCOPE);
		pageContext.setAttribute("dashuju33","SESSION",pageContext.SESSION_SCOPE);
		pageContext.setAttribute("dashuju","APPLICATION",PageContext.APPLICATION_SCOPE);
	%>
	<%=pageContext.findAttribute("dashuju") %>
	<hr/>
	<%=(String)req.getAttribute("dashuju") %>
</body>
</html>

在这里插入图片描述
3.3exception 对象
它是用来捕获异常信息的。
使用它通常会用到两个属性:
errorPage:属性对应的值,处理异常信息的页面,就是说在当前页面发生了异常,跳转到处理异常信息的页面
比如:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	    pageEncoding="UTF-8" errorPage="error.jsp"%>
	<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
	<html>
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>Insert title here</title>
	</head>
	<body>
		<%
			int a=3;
			int b=0;
		%>
		输出:<%=(a/b) %>

在这里插入图片描述

isErrorPage: 属性对应的值是true或者false,如果为true,在当前页面可以使用exception对象
比如:

  <%@ page language="java" contentType="text/html; charset=UTF-8"
	    pageEncoding="UTF-8" isErrorPage="true"%>
		<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
		<html>
		<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Insert title here</title>
		</head>
		<body>
			输出异常信息:  <%=exception.getMessage() %>
		</body>
		</html>

在这里插入图片描述
2020080605041

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_55689562/article/details/121391583

智能推荐

SOA架构(文末附与微服务架构的区别)_光影和弦 一抹春色的博客-程序员信息网_soa架构

一 SOA架构1.1定义面向服务的架构(SOA):SOA 是一种架构风格,致力于将业务功能保持一致的服务(系统服务,应用服务,技术服务)作为设计、构建和编排组合业务流程以及解决方案的基本单元。1.2目的核心的关注点在于服务的业务内容以及内涵,面向服务的架构的真正的价值体现在当可重用的服务被灵活组合、编排在一起来构建敏捷的、灵活的业务流程,其中敏捷体现在服务可以快速调整,独立演化;灵活性体...

DRBD9和LINSTOR用户指南——使用DRBD——11.常见的管理任务——11.11。配置基于校验和的同步_allway2的博客-程序员信息网

11.11。配置基于校验和的同步默认情况下,不为资源启用基于校验和的同步。要启用它,请将以下行添加到您的资源配置中/etc/drbd.conf:resource &lt;resource&gt; net { csums-alg &lt;algorithm&gt;; } ...}&lt;algorithm&gt;可以是系统内核配置中内核加密API支持的任何...

传统的知识表示_刹那永恒HB的博客-程序员信息网

知识图谱定义知识图谱旨在从数据中识别、发现和推断事物与概念之间的复杂关系,是事物关系的可计算模型.知识图谱的构建涉及知识建莫、关系抽取、图存储、关系推理、实体融合等多方面的技术,而知识图谱 应用则涉及语义搜索、智能问答、语言理解、决策分析等多个领域.工业知识图谱应用(1) 可视化展示基于知识图谱,可以提供数据的可视化展示,比如通过一个设备编号, 知识图谱会呈现与之相关的状态信息、其他相关的设备和人员信息"通过知 识图谱的可视化展示把复杂的信息非常直观地呈现出来,使得人们对工业生 产整体关联的情况一目

5G NR - 总体架构与物理层_hzgao的博客-程序员信息网_nr架构

一 NR总体架构与功能划分 1.1 总体架构    NG-RAN节点包含两种类型:  l&nbsp; gNB:提供NR用户平面和控制平面协议和功能  l&nbsp; ng-eNB:提供E-UTRA用户平面和控制平面协议和功能  gNB与ng-eNB之间通过Xn接口连接,gNB/ng-eNB通过NG-C接口与AMF(Access and Mobility Management Function)连接,通过NG-U接口与UPF(User Plane Function)连接。  5G总体架构

SQL Prompt快捷键整理(使用帮助)_风神修罗使的博客-程序员信息网

简介SQL的编写一直都是一个令人头大的问题,当系统内部数据内容越发庞大的时候,单凭记忆很难去记录所有的名称,这时候需要SQL给我们一些提醒,经推荐,使用了SQLPrompt这个SQL辅助工具.SQL Prompt不仅根据数据库对象名称,语法,代码片段进行自动检索匹配唯一合适的代码,还提供了丰富的快捷键,只需要写上两三个字符,按下回车,就可以为我们自动填写预设好的代码片段,大大提高了编写sql的效率.本来想在网上找一下看有没有相关的快捷键,结果找了半天,发现都没有类似内容,索性就自己整理一下.下面是整理

0043-【宏基因组】-16S分析使用conda安装qiime1平台_伍泳彰的博客-程序员信息网_qiime1安装

1. 安装miniconda下载页面https://conda.io/miniconda.html bash Miniconda3-latest-Linux-x86_64.sh2. 安装qiime1由于qiime1官网已经停止维护,且有些依赖包只能使用旧版本,因此,建议使用虚拟环境的方法进行安装。不然会与系统的软件冲突。如系统默认版本为python3,matplotlib版...

随便推点

waf服务器部署位置,【原】WAF 防火墙 部署_易近民的博客-程序员信息网

一、了解WAF1.1 什么是WAFWeb应用防护系统(也称:网站应用级入侵防御系统 。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用 防火墙 是通过执行一系列针对HTTP/HTTPS的 安全策略 来专门为Web应用提供保护的一款产品。1.2 WAF的功能支持IP白名单和黑名单功能,直接将黑名单的IP访问拒绝。支持URL白名单,将不需要...

【浅谈量化金融与人工智能——结合中国(横琴)国际高校量化金融大赛总决赛三等奖比赛经历】_Wanderist_ZK的博客-程序员信息网

近年来,随着人脸识别,语音识别,自动驾驶等许多领域的火热发展,人工智能逐渐被推向发展浪潮。那么当投资遇上人工智能就有了现在的一种新兴领域——量化金融。人工智能一个很重要的应用领域就是预测,基于今天的数据与历史的数据,可对未来经济走势进行判断。在金融和投资领域,人工智能技术可以对股票,投资标的的价格走势作出预测,从而使得计算机替人类进行决策,并实现自动化交易来获取利润。...

半导体工业RFID读写器|读卡器CK-S640-AP60S在同轴与平行(XY与YZ)安装下的通信区域映射参考_华翔天诚科技的博客-程序员信息网

本文重点介绍半导体工业RFID读写器|读卡器CK-S640-AP60S在同轴与平行(XY与YZ)安装下的通信区域映射参考。一、通信区域映射参考同轴安装XY读取区域映射:图 1写入区域映射:图 22、同轴安装YZ读区域映射:图 3写入区域映射:图 43、平行安装XY读区域映射:图 5写入区域映射图 64、 平行安装YZ读区域映射:图 7写入区域映射:图 8二、机械尺寸CK-S640-AP60S机械尺寸如...

阿里云服务器如何搭建LAMP环境(新手教程)_jack_ja的博客-程序员信息网

LAMP指的是Linux操作系统、ApacheHTTP服务器、MySQL数据库和PHP开源软件。这里我们可以通过运行下方yum源命令来完成安装LAMP:yum install -y httpd php php-fpm php-server php-mysql mysql安装完LAMP环境后,就可以下载WordPress安装软件,这里我们可以通过下方wget命令来完成下载和解压:wget -c https://sandbox-experiment-resource.obs-website.

推荐文章

热门文章

相关标签