博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSP教程(三)—— 基本语法
阅读量:4685 次
发布时间:2019-06-09

本文共 3428 字,大约阅读时间需要 11 分钟。

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-15 //一般是用中文就用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 
1 //JSP注释//客户端不可见2 <%-- HTML注释 --%>
1 //JSP脚本注释//客户端不可见2 //单行注释3 /**/多行注释

实例:

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

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

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

2.3  JSP脚本

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

1 <% Java代码 %>

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

1 
2 Java代码3

实例:

1 2     

祁俊辉

3

4 <%5 out.println("我是祁俊辉");6 %>7

运行结果:

(在HTML中嵌入JAVA语句)

2.4  JSP声明

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

1 <%! Java代码 %>

实例:

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

祁俊辉

9

10 <%11 out.println("我是祁俊辉");12 out.println(add(4,5));13 %>14

运行结果:

2.5  JSP表达式

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

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

实例:

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

祁俊辉

9

10 你好,<%=s %>
11 x+y=<%=add(10,5) %>
12

运行结果:

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

3  JSP页面的生命周期

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

4  实例:打印九九乘法表

 

1  2     

九九乘法表

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+="
";//追加换行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("
");//追加换行23 } 24 }25 %>26

27 <%=printMultiTable() %>28
29 <% printMultiTable2(out); %>30

运行结果:

转载于:https://www.cnblogs.com/qijunhui/p/8448939.html

你可能感兴趣的文章
iOS IM开发的一些开源、框架和教程等资料
查看>>
FansUnion:共同写博客计划终究还是“流产”了
查看>>
python 二维字典
查看>>
编译原理实验一
查看>>
Git for Android Studio 学习笔记
查看>>
pip 警告!The default format will switch to columns in the future
查看>>
Arrays类学习笔记
查看>>
实验吧之【天下武功唯快不破】
查看>>
2019-3-25多线程的同步与互斥(互斥锁、条件变量、读写锁、自旋锁、信号量)...
查看>>
win7-64 mysql的安装
查看>>
dcm4chee 修改默认(0002,0013) ImplementationVersionName
查看>>
maven3在eclipse3.4.2中创建java web项目
查看>>
发布时间 sql语句
查看>>
黑马程序员 ExecuteReader执行查询
查看>>
记一些从数学和程序设计中体会到的思想
查看>>
题目1462:两船载物问题
查看>>
POJ 2378 Tree Cutting(树形DP,水)
查看>>
第二冲刺阶段个人博客5
查看>>
UVA 116 Unidirectional TSP (白书dp)
查看>>
第三方测速工具
查看>>