zoukankan      html  css  js  c++  java
  • JSP基础语法

    关于JSP基础语法主要介绍下面5个内容:

    • Jsp简介
    • 常用动态网站开发技术
    • Jsp页面元素构成
    • Jsp的声明周期
    • 阶段项目

    1、JSP简介

    JSP全名是Java Server Pages,其根本是一个简化的Servlet设计,他实现了在Java当中使用HTML标签。Jsp是一种动态网页技术标准也是JAVAEE的标准。JSP与Servlet一样,是在服务器端执行的。

    2、常见动态网站开发技术对比

    • Jsp: Java平台,安全性高,适合开发大型的,企业级别的Web应用程序。
    • Asp.net: .Net平台,简单易学。但是安全性以及跨平台性差。
    • Php: 简单,高效,成本低开发周期短,特别适合中小企业的Web应用开发。(LAMP: Linux+Apache+MySQL+PHP)

    3、Jsp页面元素构成

    3.1 Jsp指令

    • 1、page指令
      通常位于jsp页面的顶端,同一个页面可以有很多个page指令。

    page指令的语法:
    %@ page 属性1="属性值" 属性2="属性值1,属性值2"... 属性n="属性值n"%>
    下面是最常用的属性

    属性描述默认值
    language 指定JSP页面使用的脚本语言 Java
    import 通过该属性来引用脚本语言中使用到的类文件
    contentType 用来指定JSP页面所采用的编码方式 text/html,ISO-8859-1

    contentType="text/html; charset=utf-8"

    • 2、include指令(JSP 包含指令)
      将一个外部文件嵌入到当前的JSP文件中,同时解析这个页面 中的JSP语句。这是一种非常常用的组织页面的方式。例子,下面是一个 nav.jsp
    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
    <navclass="navbar navbar-inverse navbar-fixed-top">
    ...
    </nav>
    

      

    可以将该 JSP 文件导入到你想可以显示它的页面中,代码如下:

    <%@ include file="nav.jsp" %>
    

      

    这些公共的 .jsp 文件都会放在一个固定的文件夹中。
    同样的道理,head 标签中de各类静态资源定义、底部页面版权声明信息也可以抽取到公共文件中,那么对于任意的一个页面,它的结构是固定的:

      

    <html>
    <head>
    <%@ include file="common/head.jsp" %>
    </head>
    <body>
    <%@ include file="common/nav.jsp" %>
    <%@ include file="common/footer.jsp" %>
    </body>
    </html>
    

      

    • 以上是静态的引入页面,可以动态的引入:使用 jsp:include 动作
      <jsp:include page="common/head.jsp" />
      和包含指令不同的是,jsp:include 在每次请求当前 JSP 文件的时候,才将目标 JSP 文件包含进来(包含指令则是在编译的时候),再看下一个例子:

      

    <jsp:includepage="file_name">
    <jsp:paramname="parameter_name"value="parameter_value"/>
    </jsp:include>
    

      

    我们可以通过 jsp:include ,将某个参数传给目标 JSP 文件。在目标 JSP 文件中,parameter_name 变量就可以像上下文中的变量一样被使用: ${parameter_name}

    • 3、taglib指令
      使用标签库定义新的自定义标签,在JSP页面中启动定制的行为。

    3.2 Jsp注释

    在JSP中用到的注释一共有三种类型:

    • HTML的注释:
      // 客户端可见(但是需要点击查看源文件)

    • JSP注释:
      <%– jsp注释 –%> // 客户端不可见

    • 可在JSP脚本中使用的脚本注释:
      // 单行注释
      /**/ 多行注释
      何为脚本,在<% %> 中的可被认为是脚本(也是客户端不可见的)

    3.3 Jsp脚本

    Jsp脚本就是在JSP页面中执行的java代码。
    语法:
    <% Java代码 %>
    例如:

    3.4 Jsp声明

    Jsp声明就是指在JSP页面中定义变量或者方法。
    语法:
    <%! Java代码 %>

    举例:

    <%!
    String s ="张三";// 声明了一个字符串变量
    int add(int x,int y)// 声明了一个返回整型的函数,实现了两个整数的求和
    {
    return x+y;
    }
    %>
    

      

    以后可以对这个声明的变量和函数进行调用。

    3.5 Jsp表达式

    就是在JSP页面中执行的表达式。
    语法:
    <%= 表达式 %> // 注意: 表达式不以分号结束

    举例:

    <%!
    String s ="张三";// 声明了一个字符串变量
    int add(int x,int y)// 声明了一个返回整型的函数,实现了两个整数的求和
    {
    return x+y;
    }
    %>
    <br>
    你好,<%=s %><br>
    x+y=<%=add(10,5) %><br>
    

      

    4、JSP页面生命周期


    jspService()就是用来处理用户请求。

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

    下面是一个具体的实例,来了解JSP生命周期。
    首先建立一个WEB PROJECT,项目的首页就是index.jsp 先将此项目部署到tomcat上。同时记忆,在tomcat下的work文件夹保存了比如servlet程序编译的.class文件都放在了这个文件夹中。这是你去查看,你是不会发现该.jsp文件被变为字节码文件的,为什么呢?因为你还没有访问它,所以jsp引擎不会将其转换成servlet,并生成字节码文件。

    做一个项目,使页面返回一个九九乘法表,首先创建一个新的.jsp页面:

      

    <%@ page language="java"import="java.util.*" contentType="text/html; charset=utf-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getSchema()+"://"+ request.getServerName()+":"+ request.getServerPort()+ path +"/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <base href="<%=basePath%>">
    <title>My JSP 'exercise.jsp' starting page</title>
    <meta http-equiv="param" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="style.css">
    -->
    </head>
    <body>
    <%!
    // 返回九九乘法表对应的HTML代码,通过表达式来调用,在页面上显示
    String printMultiTable()
    {
    String s ="";
    for(int i=1;i<=9;i++){
    for(int j =1; j <= i; j++)
    s += i +"*"+j +"="+(i*j)+"   &nbsp";
    s +="<br>";// 追加换行标签
    }
    return s;
    }
    // 使用脚本的方式.JSP内置out对象
    void printMultiTable2(JspWriter out)throwsException{
    for(int i=1;i<=9;i++){
    for(int j =1; j <= i; j++)
    out.println(i +"*"+j +"="+(i*j)+"   &nbsp");
    out.println("<br>");// 追加换行标签
    }
    %>
    <h1>九九乘法表</h1>
    <hr>
    <%=printMultiTable()%>
    <br>
    <% printMultiTable2(out);%><!--脚本以;号结束-->
    </body>
    </html>
    

      





  • 相关阅读:
    ffmpeg mp3转ogg的命令
    四个很好的开源app项目
    iOS 开发者必不可少的 75 个工具
    几点iOS开发技巧
    100 Most Influential Books According to Stack Overflow
    iOS图形处理和性能(转)
    Objc的底层并发API(转)
    GCD CoreData 简化CoreData操作(转)
    微信扫一扫背后的秘密:基于运动估计的智能传图算法(转)
    Objective-C 的 API 设计(转)
  • 原文地址:https://www.cnblogs.com/archy2016/p/6117819.html
Copyright © 2011-2022 走看看