JSP教程(三)—— 基本语法

1  JSP简介

1.1  JSP定义

JSP,全名Java Server Pages,其根本是一个简化的Servlet设计,它实现了在Java当中使用HTML标签。

JSP是一种动态网页技术标准,也是Java EE的标准。

JAP与Servlet一样,是在服务器端执行的。

1.2  常见动态网站开发技术对比

  • JSP:Java平台,安全性高,适合开发大型的,企业级的Web应用程序。
  • Ssp.net:.Net平台,简单易学,但是安全性以及跨平台性差。
  • PHP:简单、高效,成本低且开发周期短,特别适合中小型企业的Web应用开发。(LAMP:Linux+Apche+MySQL+PHP)

2  JSP页面元素构成

JSP页面由指令、表达式、小脚本、声明、注释、静态内容等组成。

其中,<% %>、<%! %>、<%= %>属于Scriptlet(脚本小程序)。

2.1  指令元素

  • page指令:通常位于JSP页面的顶端,同一个页面可以有多个PAGE指令。
  • include指令:将一个外部文件嵌入到当前JSP文件中,同时解析这个页面中的JSP语句。
  • taglib指令:使用标签库定义新的自定义标签,在JSP页面中启用定制行为。

page指令语句:

1 <%@ page 属性1="属性值" 属性2="属性值" ... 属性n="属性值"%> 
2 //language属性:指定JSP页面时用的脚本语言,默认值为java,如language="java"
3 //import属性:通过该属性来引用脚本语言中使用到的类文件,默认值为无,如import="java.util.*"
4 //contentType属性:用来指定JSP页面所采用的编码方式,默认值为text/html,ISO-8859-1
5 //一般是用中文就用contentType="text/html; charset=utf-8"
6 //综上,一般JSP页面的第一行就是:
7 <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>

实例:

1 <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
2 //新创建的web项目,jsp文件中默认为以上属性,当前“ISO-8859-1”不能在页面输入中文,否则会报错
3 <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
4 //建议改为以上指令,可以显示中文​​

2.2  注释

1 //HTML注释//客户端可见
2 <!-- HTML注释 -->
1 //JSP注释//客户端不可见
2 <%-- HTML注释 --%>
1 //JSP脚本注释//客户端不可见
2 //单行注释
3 /**/多行注释

实例:

1 <!-- HTML注释 -->
2 <%--JSP注释 --%>
3 <%
4     //java脚本注释
5     /*
6     多行注释
7     */
8 %>​

运行程序(记得要先发布到Tomcat服务器,再运行),查看源代码,如下:

(只出现了HTML的可见注释)

2.3  JSP脚本

作用:在JSP页面中执行的Java代码,可以定义局部变量、编写语句等。

1 <% Java代码 %>

但在程序中过多出现<% %>会导致代码混乱,所以在新版本的JSP中提供了一种scriptlet标签,使用此便签可以完成与<% %>相同的功能。

1 <jsp:scriptlet>
2     Java代码
3 </jsp:scriptlet>

实例:

1 <body>
2     <h1>祁俊辉</h1>
3     <hr>
4     <%
5         out.println("我是祁俊辉");
6     %>
7 </body>

运行结果:

(在HTML中嵌入JAVA语句)

2.4  JSP声明

作用:在JSP页面中定义全局变量、方法、类,但要注意,不能出现任何的其他语句。

1 <%! Java代码 %>

实例:

 1 <body>
 2     <%!
 3         String s="我是祁俊辉";//声明一个字符串对象
 4         int add(int x,int y){//声明一个整型求和
 5             return x+y;
 6         }
 7     %>
 8     <h1>祁俊辉</h1>
 9     <hr>
10     <%
11         out.println("我是祁俊辉");
12         out.println(add(4,5));
13     %>
14 </body>

运行结果:

2.5  JSP表达式

作用:在JSP页面中执行的表达式,即输出一个变量或一个具体内容。

1 <%= 表达式 %>  //注意:表达是不以分号结束

实例:

 1 <body>
 2     <%!
 3         String s="我是祁俊辉";//声明一个字符串对象
 4         int add(int x,int y){//声明一个整型求和
 5             return x+y;
 6         }
 7     %>
 8     <h1>祁俊辉</h1>
 9     <hr>
10     你好,<%=s %><br>
11     x+y=<%=add(10,5) %><br>
12 </body>

运行结果:

注:现在有两种输出方式:out.println()和<%= %>,但在实际开发中,为使HTML代码和Java代码相分离,所以尽量使用<%=%>。

3  JSP页面的生命周期

jspService()方法被调用出来处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及响应时间。但也要注意多线程的编程带来的同步问题,由于该Servlet是种驻于内存,所以想赢是非常快的。

4  实例:打印九九乘法表

 

 1 <body>
 2     <h1>九九乘法表</h1><br>
 3     <%!
 4         //使用Java普通方法实现打印九九乘法表
 5         String printMultiTable(){
 6             String s="";
 7             for(int i=1;i<9;i++){
 8                 for(int j=1;j<=i;j++){
 9                     s+=i+"*"+j+"="+(i*j)+"    ";//HTML空格代码为“ ”
10                 }
11                 s+="<br>";//追加换行
12             }
13             return s;
14         }
15         
16         //JSP内置out对象,使用脚本方式调用,打印九九乘法表
17         void printMultiTable2(JspWriter out) throws Exception{
18             for(int i=1;i<9;i++){
19                 for(int j=1;j<=i;j++){
20                     out.println(i+"*"+j+"="+(i*j)+"    ");
21                 }
22                 out.println("<br>");//追加换行
23             }    
24         }
25     %>
26     <hr>
27     <%=printMultiTable() %>
28     <br>
29     <% printMultiTable2(out); %>
30 </body>

运行结果:

posted @ 2018-02-14 21:36  祁俊辉  阅读(282)  评论(0编辑  收藏  举报