1.JSP简介
1.1 jsp定义
JSP,全名Java Server Pages,其根本是一个简化的Servlet设计,它实现了在Java当中使用HTML标签。
JSP是一种动态网页技术标准,也是Java EE的标准。
JAP与Servlet一样,是在服务器端执行的。
2.jsp页面元素构成
jsp页面由指令、表达式、小脚本、声明、注释、静态内容等组成
Scriptlet脚本:
<% %>、<%!%>、<%=%>
2.1指令元素
page指令:通常位于JSP页面的顶端,同一个页面可以有多个PAGE指令。
include指令:将一个外部文件嵌入到当前JSP文件中,同时解析这个页面中的JSP语句。
taglib指令:使用标签库定义新的自定义标签,在JSP页面中启用定制行为。
page指令语句:
<%@ page 属性1="属性值" 属性2="属性值" ... 属性n="属性值"%>
//language属性:指定JSP页面时用的脚本语言,默认值为java,如language="java"
//import属性:通过该属性来引用脚本语言中使用到的类文件,默认值为无,如import="java.util.*"
//contentType属性:用来指定JSP页面所采用的编码方式,默认值为text/html,ISO-8859-1
//一般是用中文就用contentType="text/html; charset=utf-8"
//综上,一般JSP页面的第一行就是:
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
实例:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
//新创建的web项目,jsp文件中默认为以上属性,当前“ISO-8859-1”不能在页面输入中文,否则会报错
3 <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
//建议改为以上指令,可以显示中文
2.2注释
//HTML注释//客户端可见
<!-- HTML注释 -->
//JSP注释//客户端不可见
<%-- HTML注释 --%>
//JSP脚本注释//客户端不可见
//单行注释
/**/多行注释
实例:
<!-- HTML注释 -->
<%--JSP注释 --%>
<%
//java脚本注释
/*
多行注释
*/
%>
2.3 jsp脚本
作用:在JSP页面中执行的JAVA代码,可以定义局部变量、编程语句
<% Java代码 %>
但在程序中过多出现<% %>会导致代码混乱,所以在新版本的JSP中提供了一种scriptlet标签,使用此便签可以完成与<% %>相同的功能。
<jsp:scriptlet>
Java代码
</jsp:scriptlet>
实例:
<body>
<h1>jsp测试</h1>
<hr>
<%
out.println("jsp测试");
%>
</body>
2.4 jsp声明
作用:在jsp页面中定义全局变量、方法、类,但是注意,不能出现任何的其他语句。
<%! Java代码 %>
实例
<body>
<%!
String s="jsp测试";//声明一个字符串对象
int add(int x,int y){//声明一个整型求和
return x+y;
}
%>
<h1>jsp测试</h1>
<hr>
<%
out.println("jsp测试");
out.println(add(4,5));
%>
</body>
2.5 jsp表达式
<body>
<%!
String s="jsp测试";//声明一个字符串对象
int add(int x,int y){//声明一个整型求和
return x+y;
}
%>
<h1>jsp测试</h1>
<hr>
你好,<%=s %><br>
x+y=<%=add(10,5) %><br>
</body>
3.实例打印9*9乘法表
<body>
<h1>九九乘法表</h1><br>
<%!
//使用Java普通方法实现打印九九乘法表
String printMultiTable(){
String s="";
for(int i=1;i<9;i++){
for(int j=1;j<=i;j++){
s+=i+"*"+j+"="+(i*j)+" ";//HTML空格代码为“ ”
}
s+="<br>";//追加换行
}
return s;
}
//JSP内置out对象,使用脚本方式调用,打印九九乘法表
void printMultiTable2(JspWriter out) throws Exception{
for(int i=1;i<9;i++){
for(int j=1;j<=i;j++){
out.println(i+"*"+j+"="+(i*j)+" ");
}
out.println("<br>");//追加换行
}
}
%>
<hr>
<%=printMultiTable() %>
<br>
<% printMultiTable2(out); %>
</body>