一,概述
jsp的语法说多不多,但对于自己这种记忆力不太好的人来说,记起来还是有点吃力的.当年为了记英语单词使用了抄的方法,现在就为了巩固技术,打好基础,写写博客其实是对自己来说是一种最适合的方式.好了,进入正题吧!
二,JSP语法
1)jsp模板
jsp页面中的html代码就是jsp的模板.
2)jsp脚本
语法:<% Java代码 %>
作用:执行Java代码
原理:把脚本中的代码原封不动的拷贝到_jspService()方法中运行.(不知道这个方法的,可以查看我这篇博客JSP的执行过程及生命周期)
示例:
<%
String name="bighuan";
int a=30;
int b=45;
%>
3)jsp表达式
语法:<%=变量或表达式 %>
作用:向浏览器输出变量的值或者是表达式计算的结果.
注意:表达式的结果就是翻译成out.print("变量");通过该方法向浏览器输出内容;表达式后面不需要分号.
示例(变量在上个示例定义了):
<%=name %>
<%=(a+b) %>
输出结果就是:bighuan 75
4)jsp的声明
语法:<%! 变量或者是方法 %>
作用:声明jsp的变量或者是方法
注意:变量翻译成成员变量,方法翻译成成员方法.
示例:
<%!
//变量会被翻译成成员变量
String username="bighuan";
//方法会被翻译成成员方法
public String getName(){
return username;
}
/*
//jsp声明中不能重复定义一些翻译好的一些方法,比如这个jsp生命周期中初始化的方法,方法一样就会报重复的错误.切记!
public void _jspInit() {
}
*/
%>
5)jsp注释
语法:<%-- 注释内容 --%>
注意:在jsp中html的注释会被翻译和执行,而jsp的注释不会翻译和执行.建议jsp页面中只用jsp注释.
示例:
<!-- <jsp:forward page="/hello.jsp"></jsp:forward> -->
上面这行代码在jsp页面中依然会执行,测试一下,发现跳转了页面.而下面这种方式就不会执行:
<%-- jsp注释
<jsp:forward page="/01.hello.jsp"></jsp:forward>
--%>
当然了,在jsp脚本 声明 注释等中都可以使用Java的注释,如:
<%
int age=12;
//jsp脚本内不能写方法,不然就会成为方法中的方法,
/*这是错误的*/
/**dfjlsdf*/
%>
三,JSP的三大指令
1)include指令
作用:在当前页面包含其他页面,可以有效减少当前页面的代码量.
语法:<%@include file="common/header.jsp"%>
注意:a.原理是被包含的页面(header.jsp)的内容翻译到包含页面(home.jsp)中,合并成一个jsp文件然后在翻译成一个Java文件,再编译运行.这种包含叫静态包含(源码包含).
b.如果使用静态包含,被包含页面中不需要出现全局的html标签了,比如:html head body等等.
2)page指令
作用:告诉tomcat服务器如何翻译jsp文件
贴代码:
<%@ page
language="java" --告诉服务器使用什么动态语言来翻译jsp文件
import="java.util.*" --告诉服务器java文件使用什么包,导入包,多个包之间用逗号分割
pageEncoding="utf-8" --告诉服务器使用什么编码翻译jsp文件(成java文件)
contentType="text/html; charset=utf-8" 服务器发送浏览器的数据类型和内容编码
注意:在开发工具中,以后只需要设置pageEncoding即可解决中文乱码问题
errorPage="error.jsp"--指定当前jsp页面的错误处理界面
isErrorPage="false"--指定当前页面是否为错误处理页面,默认false。false,不是错误处理页面,则不能使用
buffer="8kb" --jsp页面的缓存区大小
session="true"--是否开启session功能.默认为true.若为false,则不能使用session内置对象
isELIgnored="false" --是否忽略EL表达式
%>
对于错误页面,可以在web.xml文件中配置全局的错误处理界面:
<!-- 全局错误处理界面设置 -->
<error-page>
<error-code>500</error-code>
<location>/common/500.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/common/404.html</location>
</error-page>
全局的错误处理界面的优先级要低于通过errorPage="true"配置的错误处理界面.
3)taglib指令
taglib指令主要用于引入标签库以及自定义标签的前缀
语法:<%@taglib uri="tld文件的uri名称" prefix="简写" %>,导入jsp核心标签库,示例如下:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
uri和prefix是参照Java EE 5 Libraries-->jstl-1.2.jar-->META-INF-->c.tld里面的内容写的:
<short-name>c</short-name>
<uri>http://java.sun.com/jsp/jstl/core</uri>
四,总结
好了,jsp的基本知识点就这些了(当然不止了,但我就写了这么多).后面会加一篇博客关于jsp的核心标签库,敬请期待吧!