JSP
和
JSTL
JSP
:
Java Server Page SUN
公司提供的动态网页编程技术,是
Java Web
服务器端的动态资源。
它相比
html
而言,
html
只能为用户提供静态数据,而
Jsp
技术允
许在页面中嵌套
java
代码,为用户提供动态数据。
相比
servlet
而言,
servlet
很难对数据进行排版,而
jsp
除了可以
用
java
代码产生动态数据的同时,也很容易对数据进行排版。
不管是
JSP
还是
Servlet
,虽然都可以用于开发动态
web
资源。但
由于这
2
门技术各自的特点,在长期的软件实践中,人们逐渐把
servlet
作为
web
应用中的控制器组件来使用, 而把
JSP
技术作为
数据显示模板来使用。
其实
Jsp
就是一个
Servlet
,当我们第一次访问
Jsp
的时候,
Jsp
引
擎都会将这个
Jsp
翻译 成一个
Servlet
,这个文件存放在
tomcat
(源码目录) 中的
work
目录中。
注释
在
JSP
中支持两种注释的语法操作:
一种是显示注释,这种注释是允许客户端看见的; 另一种是隐式注
释,此种注释是客户端无法看见的
① 显示注释语法:从
HTML
风格继承而来
② 隐式注释语法:从
JAVA
风格继承;
JSP
自己的注释
1) // 注释,单行注释 /* 多行注释*/
2)<!-- HTML风格的注释 -->
3)<%-- JSP注释 --%>
JSP
的指令标签
使用包含操作,可以将一些重复的代码包含进来继续使用,从正常
的页面组成来看,有时可能分为几个区域。而其中的一些区域可能
是一直不需要改变的,改变的就其中的一个具体内容区域。现在有
两种方法可以实现上述功能。
方法一:在每个
JSP
页面(
HTML
)都包含工具栏、头部信息、尾
部信息、具体内容
<%@ page language="java" contentType="text/html;
charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE >
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8">
<title>Scriptlet</title>
</head>
<body>
<%
String str = "Hello JSP";
System.out.println(str);
response.getWriter().write(str);
%>
<%!
String memberStr = "a member
String";
%>
<%=memberStr%>
<h1>This is a JSP page!!</h1>
</body>
</html>
20
方法二:将工具栏、头部信息、尾部信息都分成各个独立的文件,
使用的时候直接导入
很明显,第二种方法比第一种更好,第一种会存在很多重复的代
码,并且修改很不方便,在
JSP
中如果要想实现包含的操作,有两
种做法:
静态包含
、
动态包含
,静态包含使用
include
指令即可,
动态包含则需要使用
include
动作标签
四种属性范围
在JSP中提供了四种属性的保存范围,所谓的属性保存范围,指的就
是一个设置的对象,可以再多少个页面中保存并可以继续使用
1. page范围
pageContext : 只在一个页面中保存属性,跳转之后无效
2. request范围
request : 只在一次请求中保存,服务器跳转后依然有效
3. session范围
session : 在一次会话范围中,无论何种跳转都可以使用
4. application范围
application : 在整个服务器上保存