爱搜索中级网站建设,wordpress阿里百秀4.1,服装网站html模板,装饰网站建设重要性JAVA WEB篇3——JSP
1、JSP是什么 JSP是Java Server Pages的简称#xff0c;跟Servlet一样可以动态生成HTML响应#xff0c; JSP文件命名为 xxx.jsp 与Servlet不同#xff0c;JSP文件以HTML标记为主#xff0c;然后内嵌Java代码段#xff0c;用于处理动态内容
% p…JAVA WEB篇3——JSP
1、JSP是什么 JSP是Java Server Pages的简称跟Servlet一样可以动态生成HTML响应 JSP文件命名为 xxx.jsp 与Servlet不同JSP文件以HTML标记为主然后内嵌Java代码段用于处理动态内容
% page importjava.util.Date %
% page contentTypetext/html;charsetUTF-8 languagejava %
htmlheadtitleHello Time/title/headbody现在的时间是% new Date()%/body
/html2、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 k0; k10; k) {… …}
%6、JSP表达式
可以输出一个变量或一个具体内容但后面必须是字符串变量或者可以被转换成字符串的表达式
不需要以;结束只有一行
%“hello world”%
%i1%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:forward10、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)返回指定作用域中名称关联的对象若找不到 则返回nullServletRequest getRequest()获取请求对象ServletResponse getResponse()获取响应对象HttpSession getSession()获取会话对象ServletConfig getServletConfig()获取配置对象JspWriter getOut()获取输出对象Object getPage()获取页面对象Exception getException()获取异常对象
10.7、exception
exception 对象是Throwable的实例表示的是JSP的异常信息如果要使用它必须将对应页面page指令的isErrorPage属性设置成true。
单页处理
%page errorPageerror.jsp %统一处理
error-pageexception-typejava.lang.Throwable/exception-typelocation/error.jsp/location
/error-page11、EL表达式
ELExpression 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、运算符
算术运算符说明范例运算结果加${12}3-减${2-1}1*乘${2*3}6/或div除$ {16/5}或${16div5}3.2%或mod取余$ {16%5}或${16mod5}1
11.7、关系运算符
算术运算符说明范例运算结果或eq等于12或{12}或12或{1 eq 2}false! 或ne不等于2!1或{2!1}或2!1或{1 ne 2}true 或lt小于23或{23}或23或{2 lt 3 }true或 gt大于165或{165}或165或{16 gt 5}true或le小于等于165或{165}或165或{16 le 5}false或ge大于等于165或{165}或165或{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}或true∥∥false或{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:forEach12.7、自定义标签
待补