JSP
时间:2022-04-11 14:45
1. JSP概论
JSP(JavaServer Pages)是SUN公司提供的动态web资源开发技术,Servlet也是动态web资源开发技术,Servlet是java程序,适合用来处理业务逻辑,但是在java中输出HTML页面是一个非常繁琐的问题,且不利于查看。
为了解决这一问题,所以开发了JSP 它改变了Servlet在java代码中嵌入HTML的过程,变成了在HTML中嵌入java代码,非常适合用在组织html页面进行输出。
2. JSP原理:
JSP在第一次被访问时,由服务器的内部的JSP引擎翻译为一个Servlet存放在(tomcat)work目录中,对JSP的访问最终是由Servlet执行并输出结果。
对于JSP的HTML内容是以out.write()输出。
JSP中的java代码,复制并翻译到Servlet中执行。
注意:在翻译的Servlet中预定义了9大对象。在JSP中可以直接使用,这9大对象被称为JSP的9大隐式对象。
3. JSP语法
1.JSP模板元素
直接书写在JSP中的html内容,最终会在翻译成Servlet的过程中,以out.wirte()输出。
2.JSP脚本表达式
<%java表达式%>在翻译过来的Servlet中,计算出表达式的值,并out.print()输出到浏览器。
3.JSP脚本片断
<%若干java语句%>在翻译过来的Servlet中,原样复制到对应的位置执行。
注意:
一个JSP中可以有多个脚本片断,多个片断之间可以相互引用。
一个JSP中的脚本片断可以是不完整的,但多个片断组合在一起必须是完整的。
4.JSP声明
<%!若干java语句%>在翻译过来的Servlet中,会放置在和service方法同级的位置,并成为类的成员。
5.JSP注释
<%--注释的内容--%>在被JSP注释的内容,在翻译成Servlet的过程中会被丢弃不会被翻译。
//java注释 java注释在翻译成Servlet的过程中会被认为成java代码复制粘贴到相应位置,但在java文件编译成.class文件时,注释被丢弃。
<!--html注释-->html注释,在翻译过来的Servlet的过程中会当作为模板元素,直接out.write()输出到浏览器中,浏览器能解析html注释,最终予显示。
注意:在JSP中,html注释为java语句,可能会影响运行结果。
6.JSP指令
<%@ 指令名 属性 = ‘值‘ %>指挥解析引擎如何处理JSP页面中的其它内容,不产生输出。可以写在任意位置,通常推荐写在JSP页面的最开始位置。
1.page
language=‘java‘ 设置JSP当前使用的语言,只有一个值:java ,所以可以不写忽略。
extends=‘‘ 设置翻译过来的Servlet继承谁,通常不需要进行设置,默认继承的类就可以。
3. 获取常用开发对象
el内置了11个对象,可以不存入域中就直接使用。
pageContext : 可以作为入口通过el获取八大隐式对象。
pageScope
requestScope
sessionScope
appcationScope
四大域中所有域属性组成的Map.
注意:这是Map,而不是四大作用域对象本身。
param Map<String,String>
paramValues Map<String,String[]>
代表当前请求中,所有请求参数组成的Map。
header Map<String,String>
headerValues Map<String,String[]>
代表请求头组成的Map。
cookie Map<String,Cookie>
cookie信息组成的Map
initParam Map<String,String>
web初始化信息组成的Map
4. 调用java方法,限于调静态的共有方法
<1>写一个类包含要被调用的静态共有方法
<2>写一个tld描述文件,描述一下要被调用的方法 -- tld文件必须放置在WEB-INF目录下非classes和lib目录中
<3>再在jsp页面中使用taglib指令引入tld描述文件,从而在jsp页面中调用函数3.JSTL标签库
<c:out>标签:用于输出一段文本内容到pageContext对象当前保存的out对象中。
<c:set>标签:把某个对象存在指定域的范围内。或者设置web域中的java.util.Map类型的属性对象或javaBean类型的属性对象的属性。
<c:remove>标签:用于删除web域中的属性。
<c:catch>标签:用于捕获嵌套在标签体中的内容抛出的异常,其语法格式如下:
<c:catch [var="varName"]>nested actions</c:catch>
<c:if test=‘‘>标签:可以构造“if-then”简单的判断表达式。
<c:choose>标签:用于指定多个条件选择的组合边界,它必须与<c:when>和<c:otherwise>标签一起使用。
使用<c:choose>,<c:when>和<c:otherwise>三个标签,可以构造类似 “if-else if-else” 的复杂条件判断结构。
<c:forEach>标签:用于对一个集合对象中的元素进行循环迭代操作,或者按指定的次数重复迭代执行标签体中的内容。
<c:forTokens>标签:用来浏览一字符串中所有的成员,其成员是由定义符号所分隔的
<c:param>标签:在JSP页面进行URL的相关操作时,经常要在URL地址后面附加一些参数。<c:param>标签可以嵌套在<c:import>、<c:url>或<c:redirect>标签内,为这些标签所使用的URL地址附加参数。
<c:import> 标签:实现include操作
<c:url>标签:用于在JSP页面中构造一个URL地址,其主要目的是实现URL重。URL重写就是将会话标识号以参数形式附加在URL地址后面
<c:redirect>标签用于实现请求重定向4.自定义标签
四大作用域
JSP,gxlsystem