zoukankan      html  css  js  c++  java
  • 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>

    运行结果:

  • 相关阅读:
    hbase分布式集群搭建
    hadoop分布式集群搭建
    cobbler koan自动重装系统
    nginx基础整理
    cobbler 自定义安装系统
    cobbler 自定义私有yum源
    cobbler自动安装系统
    [转]10+倍性能提升全过程--优酷账号绑定淘宝账号的TPS从500到5400的优化历程
    服务器性能调优(netstat监控大量ESTABLISHED连接与Time_Wait连接问题)
    LINUX下解决netstat查看TIME_WAIT状态过多问题
  • 原文地址:https://www.cnblogs.com/qijunhui/p/8448939.html
Copyright © 2011-2022 走看看