JSP基本语法

JSP基本语法

一、JSP简介

JSP指的是Java Server Pages,它是SUN公司在1996年6月发布的用于开发动态Web应用的一项技术。JSP是基于Java Servlet的Web开发技术,由于其所具有的简单易学和跨平台等的特性,使其在各种动态Web程序的设计语言中脱颖而出,它具有一套完整的语法规范,目前已经成为Web开发中的主流选择

二、JSP基本语法

在传统的HTML页面文件中嵌入脚本语言JSP标签就构成了一个JSP页面文件。一个JSP页面可有5中元素组合而成。

HTML页面内容

JSP注释

JSP指令

JSP脚本元素

JSP动作元素

本小节讲这三个。

1、JSP注释

1、JSP注释有两种,一种是可以在客户端显示的注释,称为HTML注释

表示形式:  <!-- 注释内容 -->

2、一种是发送到服务器端,在客户端不能显示的注释,称为JSP注释

表示形式:  <%--注释内容--%>

2、JSP指令:

JSP指令用来向JSP引擎提供编译信息。可以设置全局变量,如声明类、要实现的方法和输出内容的类型。一般的,JSP指令在整个页面范围内有效,且并不向客户端产生任何输出。所有的JSP指令都只在当前的整个页面中有效。与其书写的位置无关,一般写在最前面。

JSP指令有3类,分别是:

page指令

include指令

taglib指令

1、  page指令称为页面指令,用来定义JSP页面的全局属性,该配置会作用于整个JSP页面。page指令用来指定所使用的脚本语言、导入指定的类及软件包等。

[java] view plaincopy

  1. <%@ page language="java" contentType="text/html;charest=GBK"%>
  2. <%@ page import="java.util.*, java.io.*, java.awt.*"%>

2、include指令是文件加载指令,用于在JSP文件中插入一个包含文本或代码的文件。它把文件插入后与原来的JSP文件合并成一个新的JSP页面。还需要注意的是,如果被插入的文件发生了变化,则包含这个文件的JSP文件需要被重新编译。

[java] view plaincopy

  1. <%@ include file="baozi.txt"%>
  2. <%@ include file="baozi.html"%>
  3. <%@ include file="baozi.jsp"%>

3、taglib指令用来引用标签库并设置标签库的前缀。这个指令允许JSP页面使用用户自定义的标签,它也可以为标签库命名,标签在这个库中定义。

taglib有2个属性,uri用来指定标签文件或标签库的存放位置,prefix用来指定该标签库所使用的前缀。

[java] view plaincopy

  1. <%@ pagelanguage="java" contentType="text/html"pageEncoding="UTF-8"%>
  2. <%--声明要引用的标签库--%>
  3. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  4. <html>
  5. <head>
  6. <title>taglib标签</title>
  7. </head>
  8. <body>
  9. <%--使用JSTL标签输出--%>
  10. <c:out value="taglibexample!"/>
  11. </body>
  12. </html>

3、JSP脚本元素:

脚本元素是JSP中使用最频繁的元素,通过JSP脚本可以将Java代码嵌入到HTML页面中,所有可执行的Java代码,都可以通过JSP脚本来实现。

JSP脚本元素主要包含如下三种类型:

JSP声明语句

JSP表达式

JSP Scriptlets

1、JSP声明语句用于声明变量和方法。使用JSP声明语句声明变量时需要在”<%!”和”%>”标记之间放置Java变量的声明语句。变量的类型可以是Java语言中所提供的任意数据类型。使用JSP声明语句声明的变量将来会转换成Servlet类中的成员变量,这些变量在整个JSP页面中都有效,因此也被称为JSP页面的成员变量。声明的方法在整个JSP页面有效,方法内声明的变量只在方法内有效。

[java] view plaincopy

  1. <%@ page language="java"contentType="text/html" pageEncoding="UTF-8"%>
  2. <html>
  3. <head>
  4. <title>JSP声明语句示例</title>
  5. </head>
  6. <!--JSP声明语句  -->
  7. <%!
  8. public int a;            //声明整型变量a
  9. public String printStr(){    //声明方法printStr
  10. return "JSP method";
  11. }
  12. %>
  13. <body>
  14. <%
  15. out.println("a="+a);        //输出a值
  16. a++;                //a自增
  17. %>
  18. <br>
  19. <%
  20. out.println(printStr());    //调用printStr()方法,输出其返回值
  21. %>
  22. </body>
  23. </html>

实际上,JSP页面最终会编译成Servlet类,而在容器中只会存在一个Servlet类的实例。在JSP中声明的变量时成员变量,它只在创建Servlet实例时被初始化一次,此后该变量一直保存,直到Servlet实例被销毁掉。

2、JSP表达式,即在”<%=”和”%>”标记之间插入一个表达式,这个表达式必须能够求值,并且计算结果以字符串的形式发送到客户端显示出来。JSP表达式的值会作为HTML页面的内容。

如果表达式的值是一个字符串,则将表达式的值直接显示在页面上,否则会先将表达式转换为字符串。

[java] view plaincopy

  1. <%@ page language="java"contentType="text/html" pageEncoding="UTF-8"%>
  2. <html>
  3. <head>
  4. <title>JSP 表达式</title>
  5. </head>
  6. <body>
  7. <%!
  8. String str="JSP expression";        //声明变量str
  9. %>
  10. <!--JSP表达式-->
  11. <%=str%>
  12. </body>
  13. </html>

3、JSPScriptlet是一段Java代码。当需要使用Java实现一些复杂的操作或控制时,JSP表达式往往不能满足要求,此时就需要用到JSP Scriptlet。

在JSP Scriptlet里声明的变量是局部变量,调用JSP Scriptlet时,会为局部变量分配内存空间,调用结束便释放变量占有的空间。

[java] view plaincopy

  1. <%@ page language="java"contentType="text/html" pageEncoding="UTF-8"%>
  2. <html>
  3. <head>
  4. <title>JSP Scriptlet</title>
  5. </head>
  6. <body>
  7. <%
  8. String str="JSP Scriptlet";     //声明字符串
  9. out.println(str);                  //输出字符串的值
  10. %>
  11. </body>
  12. </html>

三、JSP动作元素

JSP动作元素用来控制JSP的行为,执行一些常用的JSP页面动作。通过动作元素可以实现使用多行Java代码能够实现的效果,如动态插入文件、重用JavaBean组件、自定义标签等。

JSP中的动作元素主要包含下面7个:

[java] view plaincopy

  1. <jsp:include>
  2. <jsp:forward>
  3. <jsp:param>
  4. <jsp:plugin>
  5. <jsp:useBean>
  6. <jsp:setProperty>
  7. <jsp:getProperty>

1、<jsp:include>动作元素提供了一种在JSP页面中包含页面的方式,既可以包含静态文件,也可以包含动态文件。

include.jsp:

[java] view plaincopy

  1. <%@ page language="java"contentType="text/html" pageEncoding="UTF-8"%>
  2. <html>
  3. <head>
  4. <title>jsp:include</title>
  5. </head>
  6. <body>
  7. <jsp:include page="hello.jsp"></jsp:include>
  8. </body>
  9. </html>

hello.jsp:

[java] view plaincopy

  1. <%@ page language="java"contentType="text/html" pageEncoding="UTF-8"%>
  2. <%@ page import="java.util.*"%>
  3. <%=(newDate()).toString()  %>

2、<jsp:forward>是一种用于页面重定向的动作元素,它的作用是停止当前页面的执行,而将客户端请求转交给另一个JSP页面。此操作是在服务器端进行的,不会引起客户端二次请求,因此浏览器的地址不会发生改变。

forward.jsp:

[java] view plaincopy

  1. <%@ page language="java"contentType="text/html" pageEncoding="UTF-8"%>
  2. <html>
  3. <head>
  4. <title>jsp:forward</title>
  5. </head>
  6. <body>
  7. <%--这里会执行 --%>
  8. <jsp:forward page="to_forward.jsp"></jsp:forward>
  9. <%--这里不会执行 --%>
  10. </body>
  11. </html>

to_forward.jsp

[java] view plaincopy

  1. <%@ page language="java"contentType="text/html" pageEncoding="UTF-8"%>
  2. <html>
  3. <head>
  4. <title>to_forward</title>
  5. </head>
  6. <body>
  7. 该页面为jsp:forward跳转的页面
  8. </body>
  9. </html>

 

3、<jsp:param>是一种提供参数的附属动作元素,它以“名-值”对的形式为其它动作元素提供附加信息,一般与<jsp:include>、<jsp:forward>和<jsp:plugin>联合使用。

1、<jsp:param>与<jsp:include>相联合:

param_include.jsp 代码:

[java] view plaincopy

  1. <%@ page language="java"contentType="text/html" pageEncoding="UTF-8"%>
  2. <html>
  3. <head>
  4. <title>jparam_include</title>
  5. </head>
  6. <body>
  7. <!-- 使用jsp:include动作元素导入动态文件-->
  8. <!-- 使用jsp:param动态元素传递参数 -->
  9. <jsp:include page="param_sum.jsp">
  10. <jsp:param value="220" name="number"/>
  11. </jsp:include>
  12. </body>
  13. </html>

param_sum代码:

[java] view plaincopy

  1. <%@ page language="java"contentType="text/html" pageEncoding="UTF-8"%>
  2. <html>
  3. <head>
  4. <title>param_num</title>
  5. </head>
  6. <body>
  7. <%
  8. String str=request.getParameter("number");  //获取要累加的次数
  9. int n=Integer.parseInt(str);        //将字符串解析成带符号整数
  10. int sum=0;      //存放;累加和
  11. for(int i=1;i<=n;i++){
  12. sum+=i;
  13. }
  14. %>
  15. <br>
  16. 整数和为:
  17. <%=sum %>
  18. </body>
  19. </html>

2、<jsp:param>与<jsp:forward>相联合:

param_forward.jsp代码:

[java] view plaincopy

  1. <%@ page language="java"contentType="text/html" pageEncoding="utf-8"%>
  2. <html>
  3. <head>
  4. <title>jsp:forward</title>
  5. </head>
  6. <body>
  7. <!-- 转向另一个页面,传递参数-->
  8. <jsp:forward page="userinfo.jsp">
  9. <jsp:param value="Baolibin" name="userName"/>
  10. <jsp:param value="23" name="userAge"/>
  11. </jsp:forward>
  12. </body>
  13. </html>

userinfo.jsp代码:

[java] view plaincopy

  1. <%@ page language="java"contentType="text/html" pageEncoding="utf-8"%>
  2. <html>
  3. <head>
  4. <title>用户信息</title>
  5. </head>
  6. <body>
  7. <%
  8. String name=request.getParameter("userName");  //获取名字
  9. String age=request.getParameter("userAge");  //获取年龄
  10. %>
  11. <%="用户信息如下"%><br>
  12. <%="用户名字:"+name%><br>
  13. <%="用户年龄:"+age%>
  14. </body>
  15. </html>

4、<jsp:plugin>动作元素可以将服务器端的JavaBean和Applet下载到客户端执行。

5、<jsp:useBean>、<jsp:setProperty>和<jsp:getProperty>这三个元素都是跟JavaBean有关。

<jsp:useBean>动作元素用来装载一个将在JSP页面中使用的JavaBean。这个功能非常有用,它充分发挥了Java组件重用的优势,同时也提高了JSP使用的方便性。

<jsp:setProperty>在获取Bean实例之后,就可以用这个动作元素来设置和修改Bean中的属性值。

<jsp:getProperty>动作元素用来提取Bean中的属性值,并将其转换成字符串,然后输出。

jspBean.jsp代码:

[java] view plaincopy

  1. <%@ page language="java"contentType="text/html" pageEncoding="utf-8"%>
  2. <html>
  3. <head>
  4. <title>JavaBean Test</title>
  5. </head>
  6. <body>
  7. <!-- 创建jsp.User的实例,实例名为user -->
  8. <jsp:useBean id="user" class="jsp.User"scope="page" />
  9. <!-- 设置user的userName属性 -->
  10. <jsp:setProperty property="userName" name="user"value="Baolibin"/>
  11. <!-- 设置user的age属性 -->
  12. <jsp:setProperty property="age" name="user"value="23"/>
  13. 用户信息:
  14. <br>用户名:
  15. <!-- 输出user的userName属性 -->
  16. <jsp:getProperty property="userName" name="user"/>
  17. <br>年龄:
  18. <!-- 输出user的age属性 -->
  19. <jsp:getProperty property="age" name="user"/>
  20. </body>
  21. </html>

User.java代码:

[java] view plaincopy

  1. package jsp;
  2. public class User {
  3. private StringuserName;
  4. private int age;
  5. //setter和getter方法
  6. public StringgetUserName() {
  7. returnuserName;
  8. }
  9. public void setUserName(String userName) {
  10. this.userName= userName;
  11. }
  12. public int getAge() {
  13. return age;
  14. }
  15. public void setAge(int age) {
  16. this.age =age;
  17. }
  18. }

时间: 2024-11-04 09:08:12

JSP基本语法的相关文章

【MOOC笔记】JSP基础语法

JSP 全名:Java Server Pages.java服务器端页面. 本质上是一个简化的Servlet设计,实现了在java中使用HTML标签. JSP是一种动态网站开发标准,与Servlet一样,在服务器端执行. 常用动态网站开发技术: JSP:JAVA平台,安全性高,适合开发大型.企业级WEB应用程序. ASP.NET:基于可视化组件开发,安全性.跨平台性差,最好用微软配套系统. PHP:适合中小型企业WEB应用开发,黄金开发组合:Linux+Apache+MySQL+PHP JSP基础

JSP 简明教程(二):JSP基本语法

基本语法 JSP只是在html的基础上嵌入一些动态的元素.下面是HelloWorld代码: <html> <% out.println("hello world"); %> </html> 以上代码中的<% %>就是动态元素.JSP中所有的特殊语法如下: <% %>:用于表示一段Java代码.这段代码在编译之后会放在_jspService()方法中. <%! %>:多了一个叹号,也用于表示一段Java代码,但是这段

JSP基本语法总结【1】(jsp工作原理,脚本元素,指令元素,动作元素)

时隔半年,回头对jsp复习整理一下,温故而知新. jsp工作原理: jsp服务器管理jsp页面分两个阶段:转换阶段(translation phase)和执行阶段(execution phase). 客户发送请求时,服务器检验jso语法是否正确,然后转换成servlet源文件,然后调用javac工具类便宜servlet源文件生成class文件,此阶段为转换阶段. 接下来,servlet容器加载转换后的servlet类,实例化一个对象来处理客户端的请求.请求处理后,响应对象被jsp服务器接收,服务

关于jsp基本语法:第一章节

今天我学习了关于JSP基本语法的一些知识点. JSP全名是 Java server pages,其根本是一个简化的Servlet设计,实现了在java当中使用HTML标签.JSP是一种动态网页技术,标准也是Javaee的标准,jsp与servlet一样,是在服务器端执行的. 常见的动态网站开发技术对比主要分为Jsp和Asp.net以及Php.这三种开发技术各有优缺点.我们学习的Jsp是基于Java平台,安全性高,适合开发大型的,企业级的Web应用程序.JSP页面元素 由注释,声明,小脚本,表达式

JSP基本语法、3个编译指令、7个动作指令、9个内置对象

一.jsp概述 JSP是java server page的缩写,其本质是一个简化的servlet,是一种动态网页技术标准.jsp页面是在HTML页面中嵌入java程序段,使用jsp开发的应用程序可以跨平台. 二.jsp基本语法 2.1 jsp表达式 jsp表达式用于向页面输出信息,语法格式如下: <%= 表达式 %> 如:<%= 5+6 %> <%与=之间不能有空格,=与后面的表达式之间可以有空格. 2.2 jsp声明标识 声明标识用语在jsp页面中定义全局的变量或者方法,通

JSP的语法

JSP的4种基本语法: 1:jsp注释 jsp注释格式如下: <%---注释内容--%> <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %> <html> <head> <title>jsp基础语法</title> </head> <body> &l

01_01 JSP基础语法

JSP基础语法 一.注释 1.显式注释,客户端可见 <!--注释--> 2.隐式注释,客户端不可见 //注释单行 /*注释多行*/ <%--JSP注释--> 二.Scriptlet 1.第一种 Scriptlet: <%%> 可以用于定义局部变量.编写语句等 <%     int x = 10;     String info ="www.126.com";     out.println("<h2>x="+x+

Java Web学习(7):JSP基础语法

一个JSP页面可以被分为以下几部份: 1)静态数据,如HTML: 2)JSP指令,如include指令: 3)JSP脚本元素和变量: 4)JSP动作: 5)用户自定义标签: 一静态数据 静态数据在输入文件中的内容和输出给HTTP响应的内容完全一致.此时,该JSP输入文件会是一个没有内嵌 Java或动作的HTML页面.而且,客户端每次请求都会得到相同的响应内容. 这个静态数据的本质就是HTML文档. 二JSP指令 JSP指令控制JSP编译器如何去生成servlet,以下是可用的指令: (1)pag

JSP基础语法(章节摘要)

1,在JSP中分为3种Script,<%!%>,<%%>和<%=%>. 2,在开发中尽量使用表达式输出(<%=%>)来代替out.println()语法. 3,使用page指令可以设置一个页面的操作属性,如MIME类型,显示编码,导包操作等. 4,JSP中德包含语句分为两种,一种是静态包含,另一种是动态包含,静态包含属于先包含后处理,而动态包含属于先处理后包含. 5,使用<jsp:forward>可以执行跳转操作,跳转后的地址栏不改变,所以是服务