任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依然有其自己扩充的语法,而且在JSP中,所有的JAVA语句都可以使用
jsp基础语法
1. 脚本元素:
脚本元素包括:
- 声明脚本
语法:<%! %> 用来声明成员变量和成员方法
<%!
int a=3;
public int sum(int a,int b){
return a+b;
};
%>
- 普通脚本
语法<% %> 用来声明局部变量和方法调用
<%
int b=123;
int result=sum(1,4);
out.print("result:"+result);
request.setAttribute("uname","zhangsan");
int c=1/0;
%>
- 表达式脚本
语法:<%= %> 用来计算和显示表达式结果
<%=123+1%>
<%=request.getAttribute("uname")%>
2. 指令元素
jsp所有页面的指令元素都是以<%@开头以%>结束
常见的指令元素包括
<1.page指令
语法<%@page 属性名=属性值%>
作用:用来设置jsp页面相关属性和配置信息
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8"
errorPage="error.jsp" %>
- language:当前jsp文件用哪种语言进行赋值,赋值java说明当前jsp由java语言负责解析
- contentType:设置jsp页面的上下文类型,主要是设置响应文件类型个字符集
- import:在当前页面引入其他类
- errorpage:设置当前页面出现异常后,处理异常的界面
- iserrorpage:当前页面是否是处理异常或者错误的界面,取值true和false,true表示当前页面是负责处理异常的界面,false表示当前页面不是处理异常的界面,默认值是false。
- 当iserror为true时,我们可以使用exception来获取异常信息,当isErrorpage为false时,页面不能使用exception
<2.include指令(静态包含)
语法:<%@ include file=“地址” %>
作用:在当前页面包含另一个页面
inclue也叫静态包含,在一个页面将另一个页面的完整代码完整包含进来,静态包含在编译后产生一个class文件。
在index.jsp中静态包含error.jsp
<%@include file="error.jsp"%>
在error.jsp中定义一个成员变量price
<%! int price=9; %>
在index.jsp中输出price,发现可以拿到price的值
out.print(price+"</br>");
< 3.taglib指令
语法:<%@ taglib uri="" prefix="">
uri表示标签库的地址
prefix表示标签的前缀
使用标签库前要先添加标签库的jar包
在页面使用taglib指令引入标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<fmt:formatDate value="<%=new Date()%>" pattern="yyyy-MM-dd HH:mm:ss"/>
3. 动作元素
- 动态包含
作用:在当前页面将另外一个页面包含进来(只包含结果)
语法:<jsp:include page=“”></jsp:include>
动态包含在编译后会产生多个编译结果(class文件)
静态包含和动态包含有什么区别?
静态包含源代码 ,编译后产生1个class文件
动态包含结果,编译后产生多个class文件 - 请求转发
语法:<jsp:forward page=“a.jsp”></jsp:forward>
请求转发到a.jsp,并且传递参数
<jsp:forward page="a.jsp">
<jsp:param name="uname" value="admin"></jsp:param>
<jsp:param name="passwd" value="123"></jsp:param>
</jsp:forward>
在a.jsp中获取参数的值
uname:<%=request.getParameter("uname")%>
passwd:<%=request.getParameter("passwd")%>
jsp注释
1.java注释
2.Html注释
3.jsp注释<%-- --%>
html注释和jsp注释区别?
Html注释的内容会被编译,jsp注释的内容不会被编译