JSP是Java Server Page的缩写,它是Servlet的扩展,它的作用是简化网站的创建和维护。
JSP是HTML代码与Java代码的混合体。
JSP文件通常以JSP或JSPX的扩展名。
JSP拥有自己的语法。
JSP形式上像HTML,但本质上是Servlet。
JSP的出现,使得将Web开发中的HTML与业务逻辑代码有效分离成为可能。通常JSP只负责生成动态的HTML文档,而业务逻辑由其他Java组件如JavaBean来实现。JSP可以通过Scriptlet来访问这些组件。
一个简单的jsp实例:
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<html>
<body>
<%
out.print("当前时间是:"+(new java.util.Date()));
%>
</body>
</html>
在 JSP 中,主要有3种类型的指令:page,include 和 taglib。
例如:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ include file="foot.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
page 指令
可以定义下面这些大小写敏感的属性(大致按照使用的频率列出):import、contentType、pageEncoding、session、buffer、autoFlush、info、errorPage、isErrorPage、isThreadSafe、language 和 extends。
page 指令可以出现在文档中的任何地方.
下面是page中一些常用的属性说明:
1.import属性
使用 page 指令的 import 属性指定 JSP 页面转换成的 servlet 应该输入的包。
默认情况下,servlet 导入 java.util.*、javax.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*
使用 import 属性时,可以采用下面两种形式:
<%@ page import="java.text.*" %>
<%@ page import="java.util.*,java.text.*" %>
2 contentType 和 pageEncoding 属性
使用 contentType 属性时,可以采用下面两种形式:
不仅可以设置charset,还可以设置MIME属性:
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page contentType="charset=utf-8"%>
使用pageEncoding属性:
<%@ page pageEncoding="utf-8"%>
不同点:
pageEncoding是jsp文件本身的编码 ,把jsp文件编译成java的时候给编译器用的 。
contentType的charset是指服务器发送给客户端时的内容编码 ,是浏览器解析网页的时候用的
如果两个任意设置了其中一个,另一个即会与此保持一致。
3 session 属性
<%@ page session="true" %> <%--默认--%>
<%@ page session="false" %>
true 值(默认)表示,如果存在已有会话,则预定义变量 session 应该绑定到现有的会话;否则,创建新的会话并将其绑定到 session。false 值表示不自动创建会话,在 JSP 页面转换成 servlet 时,对变量 session 的访问会导致错误。
4 errorPage 和 isErrorPage 属性
errorPage 属性用来指定一个 JSP 页面,由该页面来处理当前页面中抛出但未被捕获的任何异常(即类型为 Throwable 的对象)。它的应用方式如下:
<%@ page errorPage="error.jsp"%>
isErrorPage 属性表示当前页是否可以作为其他 JSP 页面的错误页面。使用 isErrorPage 属性时,可以采用下面形式:
<%@ page isErrorPage="true"%>
5.info属性
info 属性定义一个可以在 servlet 中通过 getServletInfo 方法获取的字符串,使用 info 属性时,采用下面的形式
<%@ page info="Some Message" %>
<%
String info=getServletInfo();
%>