JSP基础语法

1.JSP注释

显式注释:客户端可以看见;
隐式注释:客户端无法看见。
显式注释:<!—注释-->
隐式注释:

//注释    单行注释/*注释*/  多行注释
③<%--注释--%>  JSP注释

2.Scriptlet(脚本小程序)代码

①<% %> 定义局部变量、编写语句等
②<%!%>定义全局变量、方法、类
注:尽量不要用,需要时可通过JavaBean调用
③<%= %> 输出一个变量或一个具体的常量(表达式输出)
注:以后输出尽量不要使用out.println()输出,而使用表达式输出。

3.scriptlet标签

出于对<% %>出现过多的混乱,提供了scriptlet标签来完成同样的功能。
格式:

<jsp:scriptlet>
        java scriptlet代码
</jsp:scriptlet>

使用其唯一好处是更加美观一些,但要注意标签指令必须完结。

4.page指令

使用此指令可以定义一个JSP页面的相关属性,包括设置的MIME类型、定义需要导入的包、错误页的指定等。
(1)格式:

<%@page 属性=”内容”%>

(2)常用属性
属性 定义
1、language=”ScriptLanguage” 指定JSP Container用什么语言来编译,目前只支持JAVA语言。默认为JAVA
2、extends=”className” 定义此JSP网页产生的Servlet是继承哪个
3、import=”importList” 定义此JSP网页要使用哪些Java API
4、session=”true|false” 决定此页面是否使用session对象。默认为true
5、buffer=”none|size in kb” 决定输出流(Input stream)是否又缓冲区。默认为8kb
6、autoFlush=”true|false” 决定输出流的缓冲区慢了后是否需要自动清除,缓冲区慢了后会产生异常错误(Exception).默认为true
7、isThreadSafe=”true|false” 是否支持线程。默认为true
8、errorPage=”url” 如果此页发生异常,网页会重新指向一个url
9、isErrorPage=”true|false” 表示此页面是否为错误处理页面。默认为false
10、contentType=”text/html;charset=gb2312” 表示MIME类型和JSP的编码方式。
11、pageEncoding=”ISO-8859-1” 字符编码方式。默认为左侧,但要是中文要设置为pageEncoding=”GBK”
12、isELLgnored=”true|false” 表示是否在此JSP页面中EL表达式。true则忽略,反之false则支持。默认为false

常用的page指令有8个:

1.<%@page language="java"%>设置jsp中用到的语言,用到的是java,也是目前唯一有效的设定
2.<%@page extends="mypackage.myclass"%>设置目前jsp要继承的父类,一般不需要设置,在默认情况下,jsp页面默认的父类是HttpJspBase。
3.<%@page import="java.sql.*"% > jsp页面所用到的类
4.<%@page errorPage="error.jsp"%> 设置该jsp页面出现异常时所要转到的页面,如果没设定,容器将使用当前的页面显示错误信息
5.<%@page isErrorPage="true"%> 设置该jsp页面是否作为错误显示页面,默认是false,如果设置为true,容器则会在当前页面生成一个exception对象,和4搭配使用
6.<%@page contentType="text/html;charset=gb2312"%> 设置页面文件格式和编码方式
7.<%@page isThreadSafe="true"% > 设置容器以多线程还是单线程运行该jsp页面,默认是true,是多线程。设置为false,则以单线程的方式运行该jsp页面
8.<%@page session="true"% > 设置该jsp页面是否可以用到session对象(jsp内置对象,为web容器创建),默认是true,能用到session.设置为false,则用不到

注:只有import指令可以重复出现多次,而对于其他属性只能出现一次。

①设置页面的MIME

<%@page language=”java” contentType=”text/html;charset=GBK”%>

注:可以在Tomcat安装目录/conf/web.xml中查询到所有已知的MIME类型。
② 设置文件编码
pageEncoding指的是JSP文件本身的编码,而contentType中的charset指的是服务器发送给客户端的内容编码。

<%@page language=”java” contentType=”text/html” pageEnconding=”GBK”%>

③错误页的设置
要想完成错误页的操作,一定要满足一下两个条件:
1)指的错误出现时的跳转页,通过errorPage属性指定;
2)错误处理页必须有明确的标识,通过isErrorPage指定。
即如果一个JSP页面运行时出现了错误,会通过errorPage指定的页面进行跳转,被跳转的页面中必须将isErrorPage的内容设置为true。

会出现错误的页:

<%@page language=”java” contentType=”text/html” pageEnconding=”GBK”%>
<%@page errorPage=”error.jsp”%>

错误处理页:

<%@page language=”java” contentType=”text/html” pageEnconding=”GBK”%>
<%@page isErrorPage=”true”%>

注:错误页的跳转属于服务器端的跳转。
服务器端跳转:内容显示虽然改变了,但是地址栏并没有改变。(在整个操作中,客户端对服务器只发送了一次请求,服务器对客户端也只回应了一次)
客户端跳转:内容显示改变的同时,页面的地址栏也发生改变。

以上的错误页是在每一个JSP页面中指定,当然也可以在整个虚拟目录中指定全局的错误处理,此时可以通过修改web.xml文件,在其中加入错误页的操作。
全局的错误处理可以处理两种类型的错误,一种是HTTP代码的错误,如404或500;还有一种是异常的错误,如NullPointerException等。
修改web.xml文件加入错误处理:

<error page>
<error-code>500</error-code>
<location>/ch05/error.jsp</location>
</error page>
<error page>
<error-code>404</error-code>
<location>/ch05/error.jsp</location>
</error page>
<error page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/ch05/error.jsp</location>
</error page>

注:此时跳转仍是服务器端的跳转。
④数据库连接操作

<%@ contentType=”text/html” pageEnconding=”GBK”%>
<%@ page import=”java.sql.*”%>

5.包含指令(include)

静态包含和动态包含两种方式。
(1)静态包含:在JSP编译时插入一个包含文本或代码的文件,包含的文件可以是JSP文件、HTML文件、文本文件或是一段Java程序。
语法格式:

<%@ include file=”要包含的文件路径”%>

属于先包含,后再将全部的代码进行集中的编译处理。
(2)动态包含:使用指令可以完成动态包含的操作,此时可以动态的区分被包含的页面是静态还是动态。如果是静态页面,则和静态页面一样,然后将内容包含进来处理;而如果被包含的动态页面,则可以先进行动态的处理,然后再将处理后的结果包含进来。
语法格式:

不传递参数:
<jsp:include page=”{要包含的文件路径|<%=表达式%>}”flush=”true|false”/>

传递参数:
<jsp:include page=”{要包含的文件路径|<%=表达式%>}”flush=”true|false”>
<jsp:param name=”参数名称”value=”参数内容”/>
…可传递多个参数
</jsp:include>

flush属性中flase表示这个网页完全被读进来以后才输出。在每一个JSP的内部都会有一个buffer,所以如果是true,当buffer满了就输出,一般此属性都会设置成true,当然默认值就是true。
注:标签指令必须完结。

(3)关于动态包含和静态包含的使用建议:
开发中使用动态包含更好。
静态包含的操作属于先包含后处理,而动态包含如果被包含的页面是动态的,则属于先处理后包含。

6.跳转指令

开发中可以使用指令,将一个用户的请求从一个页面传递到另外一个页面,即完成页面的跳转。
语法格式:

不传递参数:
<jsp:forward page=”{要包含的文件路径|<%=表达式%>}”/>

传递参数:
<jsp:forward page=”{要包含的文件路径|<%=表达式%>}” >
<jsp:param name=”参数名称”value=”参数内容”/>
…可传递多个参数
</jsp:forward>

注:此时的跳转仍属于服务器端跳转。

7.建议

在开发中尽量分开编写动态页和静态页,这样可以提升程序的运行速度。
动态请求和静态请求的处理流程不一样,静态请求不需要经过容器,所以把没有Java代码的页面写成静态页面的后缀,可以适当提升运行速度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值