jsp
jsp的优点: jsp能够同时运行java 与 前台 语言 大大降低前后台交互的难度,直接获取。
jsp 的使用
注释
jsp 能同时运行java与去前台语言 他的注释也分三种:
显示注释: 会被浏览器编译 , 如注释中存在错误,程序也就错误
<!-- 这是 html 类型的注释-->
隐式注释:不会被浏览器编译
<%--JSP注释 --%> ----- < 与> 代表<>
<%
//java 类型的注释
/*
java 类型 多行注释
java类型的注释只能在java 的编辑域内存在
*/
%>
界面
jsp界面与html相似,首行指令规定了语言格式
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
/*
page 指令:
language:当前语言类型
contentType:响应MIME类型及编码格式
pageEncoding:编码格式
import:导包 (在标签中只有该属性可以使用多次)
isErrorPage:是否是处理错误的页面,默认是false;一般与errorPage结合使用
errorPage:处理错误的页面路径;一般与isErrorPage结合使用
当contentType,pageEncoding 同时存在时,按照顺序只执行一个,当前一个编码在浏览器中不存在 时,执行下一个
*/
%>
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注释</title>
</head>
<body>
</body>
</html>
包含
包含的作用:我们需要在多处使用同一段代码时,就可以单独将他提出到一个jsp文件,通过包含将多个jsp文件整合显示,提高效率
包含分为两类:
1.静态包含:
<%@ include file="包含资源的相对路径" %>
特点:
1、相当于将内容进行直接的覆盖,将多个文件的源代码整合在同一个service方法体中,所以只会生成一个源文件。
缺点:
1、不能有同名变量(静态包含相当于将多个页面整合成一个页面,此时如存在相同变量名就会报错)
2、运行效率稍微高一点,但耦合度高,不够灵活。
2.动态包含
<jsp:include page="要包含的地址"></jsp:include>
特点:
1.包含相当于一个链接 将其他jsp文件导入 ,编译后生成多个源文件
2、可以定义同名变量(多个源文件中的变量名 互不影响)
3、耦合度低,比较灵活。
错误处理
在程序运行时难免会遇到各类异常/错误问题,但是不能直接将异常界面抛给用户看,需要进行异常处理
这是就需要用到errorpage
与isErrorPage
两个指令
<!--
errorPage="文件地址":在可能会出错的界面添加这个指令指向指定的处理错误界面
isErrorPage="true/false": 这个指令设置是否为异常处理页面默认为false,在做为异常处理的页面的指 令中需要将他修改为true ,这样在可能出错的页面配置了errorPage后出错了会跳转到异常处理界面
-->
Scriptlet(脚本小程序)
- Scriptlet标签
<%
/*
Scriptlet(脚本小程序),及在页面运行的java代码,所有想要在页面运行的java代码都必须写在 Scriptlet标签中
*/
%>
Scriptlet标签:
1. <% java代码 %> 执行中间的java代码
2. <%=......%> 等号后面可以是文本或者一段代码 ,将结果打印到网页上
3. <%!java语句 %> 这个标签是用来声明全局变量的
注意: 一个jsp文件中可以同时存在多个scriptle标签 ,在编译时会将他们编译到一起
- Scriptlet脚本的九大内置对象:在Scriptlet标签中 可以直接调用9大内置对象(都是一件封装好的对象)
<%
/* 四大域对象 */
// pageContext : 只在当前页面有效 跳转即失效(显得完全没有用),可以用于设置session 与 application域对象
// request
// session
// application
/* 两种输出对象 */
// out
// response
/* 一个配置对象 */
// config
/* 一个当前对象 */
// page
/* 一个异常对象:只有页面设置属性 isErrorPage=true时,才能使用 */
// exception
%>