JSP_2_JSP基本语法

JSP:Java Sever Page,一个简化的Servlet

主要技术JSP 安全性高,Asp.net 简单,Php 简单高效(LAMP:Linux+Apache+MySql+Php)

---2-3 JSP页面元素构成---------------------------------------------------------------------------------------

2-3 JSP页面元素构成

1 指令:

<%@ 编译指令名 属性名="属性值"... %>

page指令:常位于JSP页面的顶端,同一个页面可以有多个page指令

include指令:将一个外部文件嵌入到当前JSP文件中,同事解析这个页面中的JSP语句。

taglib指令:使用标签库定义新的自定义标签。

1.1 page指令语法:

<%@ page 属性1="属性值" 属性2="属性值1,属性值2"... 属性n="属性值n"%>

  各指令的属性定义:

  language : 声明当前JSP页面使用的脚本语言的种类,通常默认是Java 。

import : 导入包。 默认值:无(下面几个包是系统默认导入的:java.lang.* ; javax.servlet.*; javax.servlet.jsp.*;javax.servlet.http.* ;)

  contentType : 用于设定生成网页的文件格式和编码字符集,即MIME类型和页面字符集类型。  

          默认的MIME类型是 text/html ;默认的字符集类型为ISO-8859-1(英文).

以下不常用

  extends  : 指定JSP页面编译所产生的Java类所继承的父类,或所实现的接口。

  session : 设定这个JSP页面是否需要HTTP Session。

   buffer : 指定输出缓冲区的大小。

  autoFlush : 当输出缓冲区即将溢出时,是否需要强制输出缓冲区的内容。

  info : 设置该JSP程序的信息,也可以看做其说明,可以通过Servlet.getServletInfo()方法获取。

  errorPage : 指定错误处理页。

  isErrorPage : 设置本JSP页面是否为错误处理程序。

  PageEncoding :是定生成网页的编码字符集。

 1 <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11
12     <title>My JSP ‘index.jsp‘ starting page</title>
13     <meta http-equiv="pragma" content="no-cache">
14     <meta http-equiv="cache-control" content="no-cache">
15     <meta http-equiv="expires" content="0">
16     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
17     <meta http-equiv="description" content="This is my page">
18     <!--
19     <link rel="stylesheet" type="text/css" href="styles.css">
20     -->
21   </head>
22
23   <body>
24     <h1>大家好</h1>
25     <hr>
26     <!-- 我是HTML注释,在客户端可见 -->
27     <%-- 我是JSP注释,在客户端不可见 --%>
28     <%!
29        String s = "张三";  //声明了一个字符串变量
30        int add(int x,int y) //声明了一个返回整型的函数,实现两个整数的求和。
31        {
32           return x+y;
33        }
34     %>
35
36     <%
37        //单行注释
38        /*多行注释*/
39        out.println("大家好,欢迎大家学习JAVAEE开发。");
40     %>
41     <br>
42         你好,<%=s %><br>
43     x+y=<%=add(10,5) %><br>
44   </body>
45 </html>

  <%@page

  [language="Java"]

  [extends= "package.class"]

  [import = "package.class|package.*..."]

  [session= "true|false"]

  [buffer = "none|8KB|size Kb"]

  [autoFlush = "true|false"]

  [isThreadSafe = "true|false"]

  [info = "text"]

  [errorPage = "relativeURL"]

  [contentType = "mimeType[; charset = characterSet]"|"text/html ; charset = ISO-8859-1"]

  [pageEncoding = "ISO-8859-1"]

  [isErrorPage = "true|false"]

  %>

---2-5 JSP注释---------------------------------------------------------------------------------------

JSP页面注释:

1.HTML的注释:<!--html注释-->//客户端可见

2.jsp的注释:<%--jsp注释--%>//客户端不可见

3.JSP脚本注释://单行  /**/多行  

<% 
        //单行注释
        /*多行注释*/
      out.println("大家好,欢迎大家学习JAVAEE开发。");

%>

---2-7 JSP脚本---------------------------------------------------------------------------------------

JSP脚本中可以放置任何可执行性java语句,所以可以充分利用Java语言的功能,例如连接数据库和执行数据库。

<%jsp脚本%>

<% 
      out.println("大家好,欢迎大家学习JAVAEE开发。");

%>

---2-8 JSP声明---------------------------------------------------------------------------------------

JSP声明用于声明变量和方法。JSP声明的语法格式如下:

<%! jsp声明%>

<%!
  // 声明一个变量
  public int count = 0 ;
  // 声明一个方法
  public String info()
  {
  return "hello : " + count ;
  }
%>

---2-9 JSP表达式---------------------------------------------------------------------------------------

JSP页面中执行的表达式值输出表达式将转换成Servlet里面的输出语言。

  语法格式:

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

例子:

<%!
       String s = "张三";  //声明了一个字符串变量
       int add(int x,int y) //声明了一个返回整型的函数,实现两个整数的求和。
       {
          return x+y;
       }
    %>
   
    <%
       //单行注释
       /*多行注释*/
       out.println("大家好,欢迎大家学习JAVAEE开发。");
    %>
    <br>
        你好,<%=s %><br>
    x+y=<%=add(10,5) %><br>

  

---2-10 JSP页面生命周期---------------------------------------------------------------------------------------

apache的work fold内App folder下生成的java文件(servlet)

JSP的工作原理:

    Client            →发出请求→        JSP Server(如果该JSP页面第一次收到请求,先编译JSP文件,生成对应的Servlet,如果该JSP页面已有对应的

          ←返回标准的HTML页面←    的Servlet,这根据请求动态生成标准的HTML页面。注:每次都会根据请求动态生成HTML文档。)

jspService()方法被调用来处理客户端的请求。对每一个请求会创建一个线程,如果同时有多个请求需要处理的话就会创建多个线程

。每个客户端请求对应一个线程。以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及响应时间。但也要注意多线程的编程带来的同步问题,由于该Servlet始终驻于内存,所以相应是非常快的。

 1 <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"%>
 2 <%@ page import="java.text.*" %>
 3 <%
 4 String path = request.getContextPath();
 5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 6 %>
 7
 8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 9 <html>
10   <head>
11     <base href="<%=basePath%>">
12
13     <title>My JSP ‘index.jsp‘ starting page</title>
14     <meta http-equiv="pragma" content="no-cache">
15     <meta http-equiv="cache-control" content="no-cache">
16     <meta http-equiv="expires" content="0">
17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18     <meta http-equiv="description" content="This is my page">
19     <!--
20     <link rel="stylesheet" type="text/css" href="styles.css">
21     -->
22   </head>
23
24   <body>
25     <h1>JSP生命周期</h1>
26     <hr>
27     <%
28       SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
29       String s = sdf.format(new Date());
30     %>
31         今天是:<%=s %>
32   </body>
33 </html>

---2-12 阶段项目:打印99乘法表---------------------------------------------------------------------------------------

分别使用表达式方式和脚本方式打印99乘法表

page指令:快捷键"alt + / " 选择page 的属性

"&nbsp;&nbsp;&nbsp;&nbsp;"输出四个空格

"<br>" //追加换行标签,"<br/>"HTML5的格式

 1 <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11
12     <title>My JSP ‘exercise.jsp‘ starting page</title>
13
14     <meta http-equiv="pragma" content="no-cache">
15     <meta http-equiv="cache-control" content="no-cache">
16     <meta http-equiv="expires" content="0">
17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18     <meta http-equiv="description" content="This is my page">
19     <!--
20     <link rel="stylesheet" type="text/css" href="styles.css">
21     -->
22
23   </head>
24
25   <body>
26     <%!
27        //返回九九乘法表对应的HTML代码,通过表达式来调用,在页面上显示
28        String printMultiTable1()
29        {
30           String s = "";
31           for(int i=1;i<=9;i++)
32           {
33              for(int j=1;j<=i;j++)
34              {
35                 s+=i+"*"+j+"="+(i*j)+"&nbsp;&nbsp;&nbsp;&nbsp;";
36              }
37              s+="<br>"; //追加换行标签
38           }
39           return s;
40        }
41
42        //JSP内置out对象,使用脚本方式调用,打印九九乘法表
43        void printMultiTable2(JspWriter out) throws Exception
44        {
45            for(int i=1;i<=9;i++)
46            {
47              for(int j=1;j<=i;j++)
48              {
49                 out.println(i+"*"+j+"="+(i*j)+"&nbsp;&nbsp;&nbsp;&nbsp;");
50              }
51              out.println("<br/>"); //追加换行标签
52           }
53        }
54
55     %>
56     <h1>九九乘法表</h1>
57     <hr>
58     <%=printMultiTable1()%>
59     <br>
60     <% printMultiTable2(out);%>
61     <br>
62
63   </body>
64 </html>
时间: 2024-08-08 14:11:39

JSP_2_JSP基本语法的相关文章

SqlServer给一个表增加多个字段语法

添加字段语法 alter table table_name add column_name +字段类型+ 约束条件 给一个表增加多个字段: use NatureData go alter table XunHu add MaleCount varchar(50) null, FemaleCount varchar(50) null, SubadultCount varchar(50) null, LarvaeCount varchar(50) null, TraceType varchar(50

MySQL(九)之数据表的查询详解(SELECT语法)二

上一篇讲了比较简单的单表查询以及MySQL的组函数,这一篇给大家分享一点比较难得知识了,关于多表查询,子查询,左连接,外连接等等.希望大家能都得到帮助! 在开始之前因为要多表查询,所以搭建好环境: 1)创建数据表suppliers 前面已经有一张表是book表,我们在建立一张suppliers(供应商)表和前面的book表对应. 也就是说 让book中s_id字段值指向suppliers的主键值,创建一个外键约束关系. 其实这里并没有达到真正的外键约束关系,只是模拟,让fruits中的s_id中

linux shell基础语法

1.第一个Shell脚本 打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了. 输入一些代码: #!/bin/bash echo "Hello World !" "#!" 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell.echo命令用于向窗口输出文本. 运行Shell脚本有两种方法. 1.1作为可执行程序 将上面的代码保存为t

Linux C中内联汇编的语法格式及使用方法(Inline Assembly in Linux C)

在阅读Linux内核源码或对代码做性能优化时,经常会有在C语言中嵌入一段汇编代码的需求,这种嵌入汇编在CS术语上叫做inline assembly.本文的笔记试图说明Inline Assembly的基本语法规则和用法(建议英文阅读能力较强的同学直接阅读本文参考资料中推荐的技术文章 ^_^). 注意:由于gcc采用AT&T风格的汇编语法(与Intel Syntax相对应,二者的区别参见这里),因此,本文涉及到的汇编代码均以AT&T Syntax为准. 1. 基本语法规则 内联汇编(或称嵌入汇

Python基本语法

Python基本语法 1.第一个Python代码 print('Hello Word!') 2.注释 1.定义:注释即解释,主要用于提示相关代码的信息. 2.注释分类:单行注释和多行注释 单行注释:# 注释内容 多行注释:''' 注释内容 ''' 或 """ 注释内容 """ 3.变量 1.定义:变量就是可以改变的量 2.命名规则: 1.汉字变量名能用,不推荐使用 2.数字不能开头 3.不可以使用特殊字符,除_ 4.变量区分大小写 5.可以使用关

Java基础语法(1)

一.Java概述 1.1Java语言平台 图1-1  java语言平台 注:开发者都是安装javaSE平台的软件. 1.2.跨平台性 平台:指的是操作系统(Windows,Linux,Mac) 跨平台:Java程序可以在任意操作系统上运行,一次编写到处运行 原理:实现跨平台需要依赖Java的虚拟机 JVM (Java Virtual Machine) 图1-2 跨平台版本 1.3      JVM   JRE   JDK说明   -A:什么是JVM JVM是java虚拟机(JVM Java Vi

eclipse使用与java语法规则

eclipse的使用 1.运行点击"三角图标"或右键Run As运行2.3. java语法规范 1.括号要成对出现2.每句代码应该有分号结束3.java语法区分大小写4.一个文件只能写一个带有public的class声明,还必须和文件名一致.一个文件中不可以有多个带有public的修饰符号5.名称写的时候不要包含关键字和非法字符(字母和下划线开头可以,也可以用数字结尾)6.java代码的语法全部都是半角符号7.学会规范的写代码. 写代码的好习惯: 1.常按保存,写完一句或几句就按一次C

js基本语法总结(一)

1.js简介 a)js是一种网页脚本语言,使得浏览器可以与网页互动. js的一种基于对象和事件驱动,具有安全性能的脚本语言,脚本语言就是在客户端的浏览器就可以互动响应处理程序的语言,而不需要服务器的处理和响应. js也可以与服务器交互响应,而服务器语言(asp.php.jsp)需要将命令上传服务器,经服务器处理后回传处理结果. js可以嵌入到html文件,不需要经过web服务器就可以对用户操作作出响应,使得网页与用户很好的交互,利用客户端电脑的资源适当减少服务器端的压力,并减少用户的等待时间.

sass语法基础知识

文件后缀名 sass有两种后缀名文件:一种后缀名为sass,不使用大括号和分号:另一种就是我们这里使用的scss文件,这种和我们平时写的css文件格式差不多,使用大括号和分号.而本教程中所说的所有sass文件都指后缀名为scss的文件.在此也建议使用后缀名为scss的文件,以避免sass后缀名的严格格式要求报错. //文件后缀名为sass的语法 body background: #eee font-size:12px p background: #0982c1 //文件后缀名为scss的语法 b