zoukankan      html  css  js  c++  java
  • JSP的介绍

    JSP概念

    JSP全称java server page,中文含义为java服务端页面。对于jsp的理解需要和另外几个相似的概念连接起来:Html和Servlet.常规的html作为一个静态文本传输,具体显示由浏览器通过html标准负责处理,Servlet则作为客户端和服务器一个连接通信的一个基本组件(其本身也是由服务端容器定义地)。二者对于服务端而言其实就是静态响应(HTML)和动态响应的区别。

    Servlet本身其实也可以通过代码手动的生成html文档返回响应,但并不简洁,也不方便我们不断的修改,Html本身也没有动态响应的功能。为了方便简化开发流程,由Sun公司倡导建立了一种动态页面的技术标准,也就是创建一种新的页面格式,制定页面处理规则,这就是JSP,JSP其本质是属于Servlet的一种扩展技术,通过制定页面格式标准,将Java代码文本化。通过在其中嵌入java代码段和一些规定的页面规定指令(通常类似于标记语言的方式通过元素来控制指令类别)。当用户发起对该jsp的请求,Servlet容器(Tomcat等)会对该jsp文件进行解析生成一个java文件(Servlet),动态相应请求。其基本的流程如下:
    JSP流程图

    JSP语法

    为了使JSP比较便于使用,创建者给JSP制定了一系列的使用规则,也就是JSP的语法规则。唯有遵循JSP语法规则编写的jsp文件才可被Servlet容器翻译、编译并正常运行。以下介绍基本的几类JSP语法规则,但并不能完全叙述,若希望较为完整的学习JSP,可以参考网上的一些在线教程或者电子文档,这里提供一个在线jsp学习教程:http://www.runoob.com/jsp/jsp-tutorial.html. (Jsp语法是除去html基本文档编写语法之外的jsp格式要求)

    1) 指令
    JSP指令是用于设置与整个页面相关的属性,基本的如页面的编码和使用的开发语言等,基本语法格式如下:


    <%@ 指令名 属性=“值” %>

    常见的指令类型有三种:
    - page 定义页面的依赖配置属性
    常见的page指令属性有language、method、import等,基本信息如下表格:

    属性 格式 描述
    language <%@ page language=”java” % > (jsp编程语言,当前只支持java
    method <%@ page method=”doGet” %> jsp中的java程序片段所位于对应Servlet类中的方法名,支持:service、doGet、doPost
    import <%@ page import=”java.io.,java.util.” %> 对应java文件中的import命令导入包或者类,该列表用”“,”“分离,可多次使用
    content_type <%@ page content_type=”text/html;charset=UTF-8” %> 设置响应的MIME类型,默认位text/html,默认字符编码为ISO-8859-1,不支持多次使用
    session <%@ page session=”true” %> 指定jsp页面是否支持Session,值为boolean值:true,false,不支持多次使用
    errorPage <%@ page errorPage=”error.jsp” %> 请求异常转发地址
    isErrorPage <%@ page isErrorPage=”true” %> 表示改jsp是否为异常处理页面

    - include 文件导入包含
    由于包含导入文件,属于静态包含(即全盘导入文件内容而非请求响应结果),基本格式如下:

     ```
     <%@ inculde  file="head.jsp" %>
    
     ```
    
    • taglib 标签库的引入
      支持自定义标签,通过引入标签库,从而可以在jsp中使用自定义的标签库实现特定动作行为,基本格式如下:


      <%@taglib uri="/WEB-INF/tlds/orataglib_1_0.tld" prefix="ora" %>

    2) 声明
    JSP声明运行用户通过既定规则声明对应Servlet对象的成员变量和成员方法,基本格式如下:

       <%! delarce ; [decalaration] %>        //声明格式
    
    
       //声明示例
    
       <%! //成员变量
            String tag="jsp";
            static int number=10;
       %>
           <%! //方法
           public String  getName(){
                 return "hfcai";
           }
    
       %>

    3) 程序脚本和表达式
    JSP支持在文件中使用脚本的形式书写java语言来实现某些基本程序逻辑从而达到动态响应的效果。脚本代码可以插入到jsp文件的任意为止(前提是符合既定的代码格式),表达式可以将具体的数据写到相应的html的位置,其类似一个简单的赋值语句,而不同的是被复制的变量是jsp文档本身。格式如下:

       <%= [statement]%>  //jsp表达式
       <% [statement]%>  //jsp 程序脚本
    
       <%
         out.println("request IP address:" + request.getRemoteAddr());  //打印请求地址
        %>
      <input type="submit" value="<%="submit"%>" />
      ```
    
    
    
    4) JSP 注解
       这里说的注解属于jsp的程序片段的注解不同于html的注解,主要作用是用于对代码进行描写和注释(程序片段内部java自身注释仍然有效),基本格式如下:
    
    
       ```
          <%-- 注释 --%>
    
          //案例
    
    <%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Jsp 注解</title>
    </head>
    <body>
    <%-- jsp注解部分--%>
    <p>
       request IP address: <%= request.getRemoteAddr()%>
    </p>
    </body>
    </html>
    

    5) 隐含对象
    即jsp文件中直接提供的默认可以直接访问的程序成员名,可以直接通过特定变量名直接访问其参数、方法,操作一如java对象。基本的隐含对象如下:

    变量名 类型描述
    request javax.servlet.HttpServletRequest 请求对象
    response javax.servlet.HttpServletResponse 响应返回对象
    pageContext javax.servlet.jsp.PageContext 提供对JSP页面所有对象以及命名空间的访问
    application javax.servlet.ServletContext servlet应用上下文
    out javax.servlet.jsp.JspWriter 输出流,可以直接答应字符串到界面
    config javax.servlet.ServletConfig servlet的配置对象
    page java.lang.Object(自身,当前对象,等同与this,当前jsp页面)
    session javax.servlet.http.HttpSession
    exception java.lang.Exception 异常,发生错误的JSP页面中对应的异常对象

    6) JSP动作标签
    jsp动作标签又称Jsp行为标签,可以动态引入文件,可以完成特定请求行为,动作元素包含标准元素和自定义元素,基本格式如下:

              <jsp:action_name attribute="value">     //标准元素

    动作元素较多,常见包括:

    • inclue 动态包含
    • useBean 查找或初始化javabean对象
    • setProperty 设置javabean的属性值
    • getProperty 获取javabean属性值
    • forward 页面跳转
    • param 设置参数(可以和include配合使用)
    • attribute 标记设置动作元素属性
  • 相关阅读:
    spring容器启动
    springmvc流程
    bean作用域
    bean的生命周期
    web.xml详解
    设计模式 工厂和抽象工厂
    requests 模块
    爬虫基础
    提高级
    循环语句
  • 原文地址:https://www.cnblogs.com/amiko/p/7906205.html
Copyright © 2011-2022 走看看