zoukankan      html  css  js  c++  java
  • JSP_2(3+4)_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>
  • 相关阅读:
    01(b)无约束优化(准备知识)
    01(a)一元函数_多元函数_无约束极值问题的求解
    谱聚类
    分类算法
    Implementing EM for Gaussian mixtures
    0-1背包问题1
    ML_推荐系统与降维
    Machine Learning: Clustering & Retrieval机器学习之聚类和信息检索(框架)
    Linux命令
    Udacity_机器学习
  • 原文地址:https://www.cnblogs.com/charles999/p/6687620.html
Copyright © 2011-2022 走看看