• Java遇见HTML——JSP篇之JSP基础语法


    一、JSP简介

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

    它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。

    JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。

    JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。

    JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。

    # 为什么使用JSP?

    首先先了解CGI(Common Gateway Interface,通用网关接口),是一种重要的互联网技术,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。CGI描述了服务器和请求处理程序之间传输数据的一种标准。

    CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的过程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。

    JSP程序与CGI程序有着相似的功能,但和CGI程序相比,JSP程序有如下优势:

    • 性能更加优越,因为JSP可以直接在HTML网页中动态嵌入元素而不需要单独引用CGI文件。
    • 服务器调用的是已经编译好的JSP文件,而不像CGI/Perl那样必须先载入解释器和目标脚本。
    • JSP基于Java Servlets API,因此,JSP拥有各种强大的企业级Java API,包括JDBC,JNDI,EJB,JAXP等等。
    • JSP页面可以与处理业务逻辑的servlets一起使用,这种模式被Java servlet 模板引擎所支持。

    最后,JSP是Java EE不可或缺的一部分,是一个完整的企业级应用平台。这意味着JSP可以用最简单的方式来实现最复杂的应用。

    # JSP的优势

    以下列出了使用JSP带来的其他好处:

    • 与ASP相比:JSP有两大优势。首先,动态部分用Java编写,而不是VB或其他MS专用语言,所以更加强大与易用。第二点就是JSP易于移植到非MS平台上。
    • 与纯 Servlets相比:JSP可以很方便的编写或者修改HTML网页而不用去面对大量的println语句。
    • 与SSI相比:SSI无法使用表单数据、无法进行数据库链接。
    • 与JavaScript相比:虽然JavaScript可以在客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务,比如访问数据库和图像处理等等。
    • 与静态HTML相比:静态HTML不包含动态信息。

    # JSP总览图

    二、常用动态网站开发技术

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

    JavaEE比较适用于以下开发:

    三、JSP页面元素构成

     3.1、JSP指令

    JSP的三大指令元素:

    • page指令语法:

    如:

    注意:pageEncoding是jsp文件本身的编码,contType的charset是指服务器发给客户端的内容编码。contType更常用。 

     3.2、JSP注释

    在JSP页面的注释。

    可以在JSP页面使用三种注释:

    如:

     3.3、JSP脚本

    在JSP页面中执行的Java代码。

    写在这一对标签的所有语句都可以认为是JSP脚本。

     3.4、JSP声明

    在JSP页面中定义变量或者方法。

    如:

     3.5、JSP表达式

    在JSP页面中执行的表达式。

    如:通过表达式调用上面声明的函数或变量。

    运行结果:

    四、JSP页面的生命周期

    JSP页面的生命周期是用户发出对jsp页面的访问,如果是第一次访问,jsp引擎就会将jsp文件生成为一个servlet,生成字节码文件执行jspInit(),注意这个方法只在生成字节码文件时会被使用,即在一个生命周期中只执行一次,然后对于不是第一次访问jsp页面时,直接返回字节码文件。

    具体说明:

    注意:

    1、生成字节码文件,执行jspInit()只在第一次请求时执行,重复请求仅只执行一次。生成的文件在work里,【每次修改会重新编译,生成新的字节码文件】
    2、jspService()用于处理用户请求,对于每一个请求,JSP引擎会创建一个新的线程来处理该请求【JSP多线程:降低资源需求,提高系统并发量及响应时间,但注意同步问题】。
    3、由于该Servlet常驻于内存里,所以响应速度非常快。

    Ps:当用户第一次请求一个jsp页面时,首先被执行的方法是构造方法。

    五、阶段项目

    表达式方式实现:

    脚本方式实现:

    注:out对象是JspWriter类的实例,用于向客户端输出内容

  • 相关阅读:
    TSQL查询进阶深入理解子查询
    CodeSmith和PowerDesigner的安装和数据库创建
    Inten对象中的Flag
    JNI配置问题
    Android技巧篇
    onSaveInstanceState状态问题
    Android MMSTransactionService
    Android MMS
    AcctivityManager
    隐藏键盘
  • 原文地址:https://www.cnblogs.com/Qian123/p/5271372.html
Copyright © 2020-2023  润新知