一.JSP基础语法:
<%!变量/方法%>
定义全局变量(Java支持的类型)和全局方法,解析器将其解析为类属性和静态的类方法,在整个jsp页面都有效。在方法内部声明的变量只在该方法被调用时才有效。
example1:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="ISO-8859-1"%>
<!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>
<%! int i=0;int y=1; %>
<%i++; %>
<p>你是<%=i %>个访问本站的用户
</body>
</html>
example2:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="ISO-8859-1"%>
<!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>
<%! double add(double x,double y)
{
return x+y;
}
double multi(double x,double y)
{
return x-y;
}
%>
<%
double x=32;
double y=34;
out.println(x+"+"+y+"="+"<br>");
out.println(add(x,y));
%>
</body>
</html>
<%java程序片%>程序片
在程序片中生命的变量jsp引擎将其解析为类的某个方法的变量即局部变量,java程序片会被按顺序执行;
用户每请求一次,jsp引擎就会为每个用户生成一个线程,对于jsp页面的全局变量各个线程共享,任何一个线程对数据的修改都会影响其他线程。
运行在不同线程的同一Java程序片不受其他线程的影响。
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="ISO-8859-1"%>
<!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>
<%!
int syn_count=0;
%>
<%
int ju_count=0;
out.println("count:"+syn_count++);
out.println("ju_count:"+ju_count++);
%>
</body>
</html>
Java表达式<%=java表达式%>
Tomcat引擎将java表达式结果转换成字符串的形式,因此编写JSP页面时将表达式看做普通文本;
example:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="ISO-8859-1"%>
<!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>
<%!
int x=12;int y=9;
%>
计算机表达式x+y,即<%=x %>+<%=y %>的值:
<%=x+y %>
<br />计算表达式 sin(x+y)的值,即:sin(<%=x+y %>)的值:
<%=Math.sin(x+y)%>
<%
%>
</body>
</html>
jsp的注释:
HTML注释:<!--注释内容-->
JSP注释:<%--注释内容--%>
Page指令标记:
形式:<% @page 属性1=“属性值” 属性2=“属性值”....%>
或者:
<% @page 属性1=“属性值"%>
<%@ page 属性2=”属性值"%>
属性取值:contentType:
值 文件类型 说明
application/msword doc dot Microsoft Word2003
application/vnd.ms-excel xls Microsoft Excel2003
application/vnd.ms-powerpoint ppt Microsoft Powerpoint
application/pdf pdf Adobe Acrobat
application/octet-stream bin exe so dll class 可执行程序
application/zip zip winzip
application/x-gzip gz gzip
p_w_picpath/gif gif GIF图像
p_w_picpath/jpeg jpg jpeg jpe JPEG图像
p_w_picpath/png png PNG图像
text/html html jsp 网页文档
text/plain txt 文本文档
text/xml xml XML文档
text/json json JSON字符串
language属性:<% @ page language="java" %>目前只能取java
import属性:
默认已有:Java.lang.*;javax.servlet.*;java.servlet.jsp.*;javax.servlet.http.*;
形式:<% @ page import="java.util.*" %>
<% @ page import="java.io.*" %>
buffer属性:指定缓冲区的大小
isThreadSafe:设置是否允许多线程,默认为true
session:设置是否使用内置session,默认为true
autoFlush:设置缓冲区被填满是是否自动刷新默认为true
info:设置一个JSP页面常用的字符串,可用:getServletInfo()取得:
example:
<%@ page language="java" contentType="text/html;charset=utf-8" %>
<%@ page buffer="1MB" autoFlush="true" isThreadSafe="true" info="jsp 练习" session="true" %>
<%@ page import="java.lang.*" %>
<%@ page import="javax.servlet.*" %>
<%@ page import="javax.servlet.jsp.*" %>
<%@ page import="javax.servlet.http.*" %>
<!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>
<%--注释1 --%>
</body>
</html>