JAVA WEB篇3——JSP

JAVA WEB篇3——JSP

1、JSP是什么

  • JSP是Java Server Pages的简称,跟Servlet一样可以动态生成HTML响应, JSP文件命名为 xxx.jsp

  • 与Servlet不同,JSP文件以HTML标记为主,然后内嵌Java代码段,用于处理动态内容

<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html><head><title>Hello Time</title></head><body>现在的时间是:<%= new Date()%></body>
</html>

2、JSP与Servlet

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-39HZhKDf-1626687359596)(C:\Users\yoya\AppData\Roaming\Typora\typora-user-images\image-20210719162503916.png)]

3、JSP模块概述

  • 声明区
  • 程序代码区
  • 表达式
  • 注释
  • 指令和动作
  • 内置对象

4、JSP声明区

可以定义全局变量、方法、类

<%!int i;public void setName(){… …}
%>

5、JSP程序代码区

可以定义局部变量以及放入任何的Java程序代码

<%int j;for (int k=0; k<10; k++) {… …}
%>

6、JSP表达式

可以输出一个变量或一个具体内容,但=后面必须是字符串变量或者可以被转换成字符串的表达式

不需要以;结束,只有一行

<%=“hello world”%>
<%=i+1%>

7、JSP注释

格式:
<!--… …--> HTML文件的注释,浏览器可以查看到
<%--… …--%> JSP文件的注释,浏览器看不到
<%//… …%> Java语言中的单行注释,浏览器看不到
<%/*… …*/%> Java语言中的多行注释,浏览器看不到
注释的内容不会被执行

8、JSP指令

指令格式: <%@指令 属性=“属性值” 属性=“属性值” %>

8.1、page指令

page指令用于导包和设置一些页面属性

import 导入相应的包,惟一允许在同一文档中多次出现的属性
contentType 设置Content-Type响应报头,标明即将发送到浏览器的文档类型
pageEncoding 设置页面的编码
language 指定页面使用的语言
session 控制页面是否参与HTTP会话
errorPage 处理当前页面中抛出但未被捕获的任何异常
isErrorPage 当前页是否可以作为其他页面的错误处理页面

8.2、taglib指令

taglib指令用来扩展JSP程序的标签元素,引入其他功能的标签库文件

<!-- prefix属性用于指定库前缀 -->
<!-- uri属性用于指定库的标识 -->
<%@taglib uri=“tagLibary” prefix=“prefix”%>

8.3、include指令

include指令用于引入另一个JSP程序或HTML文件

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

9、JSP动作

9.1、jsp:include

  • include指令是在JSP程序的转换时期就将file属性所指定的程序内容嵌入再编译执行(静态包含)
  • include动作在转换时期是不会被编译的,只有在客户端请求时期被执行到才会被动态的编译载入 (动态包含,推荐)
<jsp:include page=“URLSpec” flush=“true”/><jsp:include page=“URLSpec” flush=“true”>	<jsp:param name=“key” value=“value”/></jsp:include>

9.2、jsp:forward

forward动作用于在JSP中实现转发,将请求转发到另一个指定的JSP程序或者Servlet中处理,转发后可以用request来捕获参数

<jsp:forward page=“urlSpec” flush=“true”/><jsp:forward page=“urlSpec”><!-- 用于指定参数和其对应的值 --><jsp:param name=“key” value=“value”/></jsp:forward>

10、JSP内置对象

  • 在JSP程序中有9个内置对象由容器为用户进行实例化,程序员可以不用定义就直接使用这些变量
  • 在JSP转换成Servlet后,会自动追加这些变量的定义,使用内置对象可以简化JSP的开发
对象变量对象类型作用
outJSPWriter输出流
requestHttpServletRequest请求信息
responseHttpServletResponse响应信息
sessionHttpSession会话
applicationServletContext全局的上下文对象
pageContextPageContextJSP页面上下文
pageObjectJSP页面本身
configServletConfigServlet配置对象
exceptionThrowable捕获网页异常

10.1、out

out内置对象是一个缓冲的输出流,用来给客户端输出信息

方法声明功能介绍
void println(String x)向客户端输出各种类型数据
void newLine()输出一个换行符
void close()关闭输出流
int getBufferSize()返回缓冲区的大小
int getRemaining()返回缓冲区中未使用的字节数
void flush()输出缓冲区里的数据
void clearBuffer()清除缓冲区里的数据,同时把数据输出到客户端
void clear()清除缓冲区里的数据,但不把数据输出到客户端

10.2、request

request对象封装的是调用JSP页面的请求信息,它是HttpServletRequest接口的一个实例,该对象的属性值只在一个请求中保存。

方法声明功能介绍
String getMethod()返回客户端向服务器端传送数据的方式
String getParameter(String name)返回客户端向服务器端传送的参数值
String[] getParameterValues( String name)获得指定参数的所有值
String getRequestURI()获得请求地址
String getRemoteAddr()返回发送请求的客户端或最后一个代理的IP地址
int getRemotePort()返回发送请求的客户端或最后一个代理的端口号
String getServerName()获取服务器的名字
int getServerPort()获取服务器端的端口
void setAttribute(String name,Object o)在此请求中存储属性。属性在请求之间重置
Object getAttribute(String name)将指定属性的值作为对象返回,若不存在则返回空值

10.3、 response

response对象用于给客户端相应输出处理结果,它是HttpServletResponse接口的一个实例,经常用于设置HTTP标题,添加cookie、设置响应内容的类型和状态、发送HTTP重定向和编码 URL

方法声明功能介绍
void addCookie(Cookie cookie)添加一个Cookie对象,用于在客户端保存特定的信息
void addHeader(String name, String value)添加HTTP头信息,该Header信息将发送到客户端
boolean containsHeader(String name)判断指定名字的HTTP文件头是否存在
void sendRedirect(String location)重定向JSP文件
void setContentType(String type)设置类型与编码方式

10.4、session

  • session对象表示浏览器和服务器之间的一次会话,一次会话可以包含多次请求,在多次请求之间 可以借助session对象存储信息,它是HttpSession类型的一个实例
  • 该对象的属性值在一次会话范围中保存,保存在服务器端,只要不关闭浏览器,默认半个小时内都 可以访问
方法声明功能介绍
void setAttribute(String name, Object value)使用指定的名称将对象绑定到此会话
Object getAttribute(String name)返回在此会话中用指定名称绑定的对象,如果没有对象在该 名称下绑定则返回空值

10.5、 application

application对象是一个web程序的全局变量,它是ServletContext类型的一个实例,在整个服务器上保存数据,所有用户共享

方法声明功能介绍
void setAttribute(String name, Object object)将对象绑定到此servlet上下文中的给定属性名
Object getAttribute(String name)返回给定名称的

10.6、pageContext

pageContext对象是PageContext类型的对象,可以使用这个对象来管理其他的隐含对象。 只在一个页面中保存数据。

方法声明功能介绍
void setAttribute(String name, Object value, int scope)使用适当的作用域设置指定的名称和值
Object getAttribute(String name, int scope)返回指定作用域中名称关联的对象,若找不到 则返回null
ServletRequest getRequest()获取请求对象
ServletResponse getResponse()获取响应对象
HttpSession getSession()获取会话对象
ServletConfig getServletConfig()获取配置对象
JspWriter getOut()获取输出对象
Object getPage()获取页面对象
Exception getException()获取异常对象

10.7、exception

exception 对象是Throwable的实例,表示的是JSP的异常信息,如果要使用它,必须将对应页面page指令的isErrorPage属性设置成true。

单页处理

<%@page errorPage="error.jsp" %>

统一处理

<error-page><exception-type>java.lang.Throwable</exception-type><location>/error.jsp</location>
</error-page>

11、EL表达式

EL(Expression Language)表达式提供了在JSP中简化表达式的方法,可以方便地访问各种数据 并输出

11.1、访问内置对象的数据

<%=request.getAttribute(“ varName”)%>
用EL实现: ${ varName }

11.2、访问请求参数的数据

request.getParameter(name);
request.getParameterValues(name);
<!-- 获取指定参数的数值 -->
${param.name}
<!-- 获取指定参数中指定下标的数值 -->
${paramValues.hobby[0]}

11.3、访问Bean对象的属性

<%
request.setAttribute(“prop”,“age”);
%>
<!-- 相当于表达式中写一个变量 -->
${ user[prop] }

11.4、访问集合的属性

<!-- student为ArrayList类型的对象 -->
${student[0].name}

11.5、内置对象

类别标识符描述
JSPpageContextPageContext处理当前页面
作用域pageScope同页面作用域属性名称和值有关的Map类
requestScope同请求作用域属性的名称和值有关的Map类
sessionScope同会话作用域属性的名称和值有关的Map类
applicationScope同应用程序作用域属性的名称和值有关的Map类
请求参数param根据名称存储请求参数的值的Map类
paramValue把请求参数的所有值作为一个String数组来存储的Map类
请求头header根据名称存储请求头主要值的Map类
headerValues把请求头的所有值作为一个String数组来存储的Map类
Cookiecookie根据名称存储请求附带的cookie的Map类
初始化参数initParam根据名称存储Web应用程序上下文初始化参数的Map类

11.6、运算符

算术运算符说明范例运算结果
+${1+2}3
-${2-1}1
*${2*3}6
/或div$ {16/5}或${16div5}3.2
%或mod取余$ {16%5}或${16mod5}1

11.7、关系运算符

算术运算符说明范例运算结果
==或eq等于1==2或{1==2}或1==2{1 eq 2}false
!= 或ne不等于2!=1或{2!=1}或2!=1{1 ne 2}true
< 或lt小于2<3或{2<3}或2<3{2 lt 3 }true
>或 gt大于16>5或{16>5}或16>5{16 gt 5}true
<=或le小于等于16<=5或{16<=5}或16<=5{16 le 5}false
>=或ge大于等于16>=5或{16>=5}或16>=5{16 ge 5}true

11.8、逻辑运算符

算术运算符说明范例运算结果
&& 或 and与运算KaTeX parse error: Expected '}', got '&' at position 6: {true&̲&true}或{true and true}true
||或or或运算true∥∥false或{true\|\|false}或truefalse{true or false}true
! 或not非运算!true或{!true}或!true{not true }false

11.9、条件运算符

${条件表达式? 语句1 : 语句2}

11.10、验证运算符

${empty 表达式}
返回布尔值判断表达式是否为"空"值,null值、无元素的集合或数组、长度为零的String被认为是空值

12、JSTL

JSTL( JSP Standard Tag Library ) 被称为JSP标准标签库,开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度

jstl 官网:https://tomcat.apache.org/download-taglibs.cgi

12.1、输出标签

<c:out></c:out> 用来将指定内容输出的标签

12.2、设置标签

<c:set></c:set> 用来设置属性范围值的标签

12.3、删除标签

<c:remove></c:remove> 用来删除指定数据的标签

12.4、单条件判断标签

<c:if test =“EL条件表达式”>
满足条件执行
</c:if >

12.5、多条件判断标签

<c:choose ><c:when test =“EL表达式”>满足条件执行</c:when>…<c:otherwise>不满足上述when条件时执行</c:otherwise>
</c:choose >

12.6、循环标签

<c:forEach var=“循环变量” items=“集合”>
…
</c:forEach>

12.7、自定义标签

待补

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/557466.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA WEB篇4——Filter、Listener

JAVA WEB篇4——Filter、Listener 1、Filter Filter本意为”过滤“的含义&#xff0c;是JavaWeb的三大组件之一&#xff0c;三大组件为&#xff1a;Servlet、Filter、 Listener过滤器是向 Web 应用程序的请求和响应处理添加功能的 Web 服务组件过滤器相当于浏览器与Web资源之…

html如何设置滚动条居中,css3内容垂直居中及垂直滚动条例子

垂直居中用得不少了&#xff0c;我在学习css3中也就碰到过了&#xff0c;在此小编就来为各位介绍css3内容垂直居中及垂直滚动条例子&#xff0c;希望文章对各位有帮助。内容垂直集中相对于内容在水平位置&#xff0c;内容在垂直方向是不好把控的&#xff0c;尤其当考虑到滚动条…

Java SSM1——Maven

Java SSM1——Maven 1、下载 maven 官网&#xff1a;https://maven.apache.org/download.cgi maven 百度云&#xff1a;https://pan.baidu.com/s/18XKbJp7P5x_BkKyc0VF0tw提取码&#xff1a;4zr9 2、安装 解压到想安装的目录下 添加环境变量 添加MAVEN_HOME变量 MAVEN_HO…

2021年广西艺术高考成绩查询,2021年广西美术高考成绩查询网址:https://www.gxeea.cn/...

【导语】2021年广西美术高考成绩查询入口开通后&#xff0c;考生可登录广西教育考试院(https://www.gxeea.cn/)高考服务平台或点击下方链接进入广西美术考成绩查询系统。具体如下&#xff1a;2021年广西美术高考成绩查询入口开通后&#xff0c;考生可以通过黑龙江教育考试院(ht…

齐浩亮 计算机科学与技术,齐浩亮

齐浩亮&#xff0c;男&#xff0c;1972年2月出生&#xff0c;计算机科学与技术系副教授&#xff0c;工学博士。2007年5月获哈尔滨工业大学计算机应用技术专业博士学位。现任黑龙江工程学院计算机应用技术研究所所长&#xff0c;哈尔滨院士专家团成员&#xff0c;YOCSEF哈尔滨20…

Java SSM篇2——框架的基本认识

Java SSM篇2——框架的基本认识 1、什么是框架 框架就是一套规范&#xff0c;既然是规范&#xff0c;你使用这个框架就要遵守这个框架所规定的约束框架可以理解为半成品软件&#xff0c;框架做好以后&#xff0c;接下来在它基础上进行开发 2、为什么使用框架 框架为我们封装…

计算机专业合成词,大学计算机论文范文大全.docx

大学计算机论文范文大全浅谈大学计算机专业英语双语教学摘要&#xff1a;本文针对计算机专业双语教学中存在的学生抵触、教师理解不足和教法单一等问题提出了改进的方案。关键词&#xff1a;计算机;英语双语教学;教育2001年&#xff0c;教育部对双语教学提出了具体明确的要求。…

Java SSM篇3——Mybatis

Java SSM篇3——Mybatis 1、JDBC存在的问题 数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能sql 语句在代码中硬编码&#xff0c;造成代码不易维护&#xff0c;实际应用 sql 变化的可能较大&#xff0c;sql 变动需要改变java 代码查询操作时&#xff0c;需要手动将…

在职研究生计算机科学与技术考研考哪些科目,计算机在职研究生考试科目

计算机在职研究生以三种方式来报考&#xff0c;分别是同等学力申硕、中外合作办学硕士、非全日制研究生。三种报考方式考试科目不同&#xff0c;下面为大家具体介绍一下。一、同等学力申硕考试科目&#xff1a;该方式考试科目主要有两科&#xff1a;外国语和学科综合。外国语&a…

Java SSM4——Spring

Java SSM4——Spring Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器&#xff08;框架&#xff09; Spring的优势 方便解耦&#xff0c;简化开发 Spring就是一个容器&#xff0c;可以将所有对象创建和关系维护交给Spring管理 什么是耦合度&#xff1f;对象之间的关…

计算机网络子网划分路由配置实验报告,完整的子网划分与路由交换实验报告 珍藏版哦...

洛阳理工学院实验报告系别班级学号姓名 课程名称 计算机网络实验日期实验名称 子网的划分路由器的配置 成绩实验目的&#xff1a;1&#xff1a;知道如何配置路由器信息 2&#xff1a;知道如何划分子网信息实验条件&#xff1a;电脑一台 packet tracer 运行环境【实验内容】在本…

html文件怎么导出stl文件,3D建模软件导出STL文件的小技巧(一)

很多用户在提交3D模型文件的时候&#xff0c;常常有这样的困惑&#xff1a;什么是STL 格式文件&#xff0c;怎么获取STL 格式文件呢&#xff1f;STL 格式文件是在计算机图形应用系统中&#xff0c;用于表示三角形网格的一种文件格式。它也是3D打印机在执行3D打印程序时&#xf…

Java SSM篇5——SpringMVC

Java SSM篇5——SpringMVC 1、MVC模式 MVC是软件工程中的一种软件架构模式&#xff0c;它是一种分离业务逻辑与显示界面的开发思想 M&#xff08;model&#xff09;模型&#xff1a;处理业务逻辑&#xff0c;封装实体V&#xff08;view&#xff09; 视图&#xff1a;展示内容…

空中最亮的星用计算机弹数字,赤峰——夜空中最亮的星_数字展示在线

8月25日&#xff0c;赤峰新区夜景照明改造升级PPP项目在新区管委会签约&#xff0c;这标志着全国首个城市夜景照明PPP项目正式落地。一切都从这一张照片开始在一个晴朗的夜晚摄影师拍下这张夜景之后赤峰便美得一发不可收拾这就是赤峰全国首个PPP夜景照明工程。项目一期包括八家…

Java SSM6——SSM整合

Java SSM6——SSM整合 1、Mybatis 1.1、数据库准备 CREATE TABLE person(id INT PRIMARY KEY,NAME VARCHAR(10),PASSWORD VARCHAR(10) ); INSERT INTO person VALUES (1,"root","123");1.2、创建maven工程&#xff0c;导入依赖 <dependencies>&l…

计算机基础知识掌握欠缺,浅谈计算机基础课程教学

浅谈计算机基础课程教学文章基于目前高职院校计算机基础课程的现状,重点对分(本文共2页)阅读全文>>本文主要通过对高职高专计算机课程的教学研究,提出教学中注重培养高素质,技能型人才的重...(本文共1页)阅读全文>>随着我国科技的快速发展,网络技术在各个行业领域都…

JAVA分布式篇1——Linux

JAVA分布式篇1——Linux 1、linux命令 1.1、常用指令 ls   显示文件或目录 -l 列出文件详细信息l(list)-a 列出当前目录下所有文件及目录&#xff0c;包括隐藏的a(all)mkdir 创建目录 -p 创建目录&#xff0c;若无父目录&#xff0c;则创建p…

计算机仿真在电力领域的应用,仿真技术在电力系统中的应用实例

自20世纪80年代末至今&#xff0c;我国的仿真技术获得了极大的发展。在电力系统中&#xff0c;应用较多的培训仿真系统有电厂仿真、电网运行工况仿真和变电所仿真。一般说来&#xff0c;凡是需要有一个或一组熟练人员进行操作、控制、管理与决策的实际系统&#xff0c;都需要对…

华中科技大学计算机学院考研大纲,2021华中科技大学考研大纲参考书目汇总

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼资料下载地址&#xff1a;http://fangcai.100xuexi.com/Ebook/DigitalLibrary/BookNew.aspx?BookName%u534E%u4E2D%u79D1%u6280%u5927%u5B66[视频]华中科技大学社会学院《437社会工作实务》[专业硕士]网授精讲班【大纲精讲】 [视频…

JAVA分布式篇2——Zookeeper

JAVA分布式篇2——Zookeeper 1、简介 Zookeeper是一个开源的分布式&#xff08;多台服务器干一件事&#xff09;的&#xff0c;为分布式应用提供协调服务的 Apache项目 2、工作机制 Zookeeper从设计模式角度来理解&#xff1a;是一个基于观察者模式&#xff08;一个人干活&a…