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>
    

      





  • 相关阅读:
    November 07th, 2017 Week 45th Tuesday
    November 06th, 2017 Week 45th Monday
    November 05th, 2017 Week 45th Sunday
    November 04th, 2017 Week 44th Saturday
    November 03rd, 2017 Week 44th Friday
    Asp.net core 学习笔记 ( Area and Feature folder structure 文件结构 )
    图片方向 image orientation Exif
    Asp.net core 学习笔记 ( Router 路由 )
    Asp.net core 学习笔记 ( Configuration 配置 )
    qrcode render 二维码扫描读取
  • 原文地址:https://www.cnblogs.com/archy2016/p/6117819.html
Copyright © 2011-2022 走看看