1 JSP注释
JSP注释主要为了方便开发人员阅读JAVA代码。
语法:
<%-- 注释语句 --%>
总结:
HTML注释可以在查看浏览器页面源码的时候可见。但是JSP的注释是给开发者看的因此在浏览器端是无法看见的。
2 JSP指令
JSP指令主要用于通知浏览器如何解析或者处理当前的JSP页面数据。
语法:
<%@ 指令名 指令属性列表%>
常见的JSP指令
1. page page指令只要用于通知浏览器如何解析页面的数据。 <%@page autoFlush="true" ? 指定是否自动刷新 buffer="8kb" ? 指定缓冲区大小 contentType="text/html; charset=utf-8" ? 设置页面内容类型 errorPage="" ? 指定处理错误的 extends="" ? 指定需要继承的父类 import="" ? 指定需要导入的包名以及类 info="" ? 指定页面的信息 isELIgnored="false" ? 指定当前页面是否忽略EL表达式 isErrorPage="false" ? 指定当前页面是否是处理错误的页面 isThreadSafe="true" ? 指定当前页面是线程安全的 language="java" ? 指定JSP的脚本语言,默认java语言 pageEncoding="utf-8" ? 指定数据的编码方式 session="true" ? 指定是否使用session %>
举例1:在JSP中导入类。
JSP的page指令中只有import属性可以连续出现多次,因此可以使用该属性导入多个包中类。
import="java.util.Date" import="java.io.File"
简化:
import="java.util.Date,java.io.File"
举例2:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" import="java.util.Date,java.io.File" errorPage="/error.jsp"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> 系统时间:<%= new Date() %><br/> <% File file = new File("aa.txt"); %> <%= file %> <br/> <%= 10/0 %> </body>
error.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>错误处理页面</title> </head> <body> <%= exception.getMessage() %> </body> </html>
举例3:使用JSP的page指令属性忽略页面中的EL表达式。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true" isELIgnored="true"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>错误处理页面</title> </head> <body> <%= exception.getMessage() %> ${20+30 } </body> </html>
总结:如果不忽略那么显示的值是50,如果忽略那么直接显示${20+30}。
800x600
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
MicrosoftInternetExplorer4
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
2 include
JSP中可以使用包含指令来将公用的页面直接包含进来,进而提高代码的维护性。
<body> <%-- 使用包含指令包含其他的页面 --%> <%@include file="/included.jsp" %> <p>some text some text some text some text</p> </body>
总结:
被包含页面和包含页面被翻译在同一个java文件中。因此将这种包含方式称之为静态包含。
那么被包含页面中最好不要出现包含页面中已经具有的数据。
3 taglib
JSP的taglib指令可以引入其他的标签库文件,使得在JSP页面中可以直接使用标签进行数据的逻辑处理。
<%-- 使用taglib指令引入标签库信息 --%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <c:out value="波"></c:out>
4 JSP动作
JSP动作主要是用于简化JSP中出现的JSP脚本片段。
常见的动作
<jsp:include page=""></jsp:include> ? 包含页面 <jsp:forward page=""></jsp:forward> ? 请求转发 <jsp:param/> ? 传递参数
举例1:使用JSP动作包含页面。
该方式在包含页面的时候将包含页面和被包含页面都进行了翻译和编译,因此称之为动态包含。
包含页面action.jsp
<body> <jsp:include page="/included.jsp" flush="true"> <jsp:param name="name" value="jack"/> </jsp:include> <h4>包含页面的数据</h4> </body>
被包含页面included.jsp
<body> <h3>被包含页面的数据: <%= request.getParameter("name") %> </h3> </body>
举例2:使用JSP动作实现页面的转发。
<jsp:forward page="/included.jsp"> <jsp:param name="name" value="jack"/> </jsp:forward>