zoukankan      html  css  js  c++  java
  • jsp入门

     

     

    1 什么是JSP

    HTML + java代码 + jsp动态标签  ==  JSP(Java Server Pages)

    在静态页面上添加动态信息就可以了,如果是Servlet还需要一行一行的输出。

    通常在前台开发人员给出静态页面后,后台开发人员只需在静态页面中添加动态信息即可,而不用再使用Servlet一行一行的去输出了。

    2 JSP"真身":Servlet

    当客户请求的jsp页面时服务器会查看jsp对应的Servlet是否存在,(就是在Tomcat解压包下面的workCatalinalocalhost工程名orgapachejsps是否生成对应的xxx_jsp.java和xxx_jsp.class这两个文件。)如果存在,那么直接调用Servletservice()方法来处理请求。如果不存在,那么服务器会先把JSP编译成.java,再把.java编译成.class,然后调用service()方法。当这个JSP页面,第二处理请求时,就直接调用直身的service()方法了。

    在workCatalinalocalhost工程名orgapachejsp下生成xxx_jsp.java和xxx_jsp.class这两个文件

    从上面的代码中,我们可以看出,xxx_jsp.java是继承于HttpJspBase,而HttpJapBase又继承于HttpServlet

    启动服务器,没访问jsp之前work工程名里面没有内容。

    JSPServletJSP与我们编写的Servlet有什么不同呢?

     通常我们编写的Servlet就不需要输出HTML代码了,而是转发到JSP页面。

      即Servlet不再负责显示页面,而由JSP来完成!而Servlet专注与控制层内容!

      在“真身”中,所有的静态内容会被输出。例如<html>就是静态内容,它对应“真身”中的out.write(“<html>”)

    3 jsp中的java代码块

    JSP中的java代码块就是最常见的动态信息。它分为三种:

    <%...%>:代码片段。代码片段会原封不动的出现在真身中(xxx_jsp.java中)。正常的Java代码都可以在代码片段中出现;

    <%=...%>:表达式。表达式会在“真身”中输出,例如:<%=a%>,对应真身中的out.print(a)。

      只能出现常量、变量,以及有返回值的方法调用,而且不能出现分别!即在out.println()的合法参数都可以!

       <%=a%>对应out.println(a)

       <%=”a”%>对应out.println(“a”)

       <%=fun()%>对应out.println(fun())

       <%=a;%>对应out.println(a;);,所以出错;

       <%=System.out.println(“hello”)%>对应out.println(System.out.println(“hello”)),所以出错。

    <%!...%>:声明。声明对应“真身”中的属性和方法!例如<%! int serverInstanceVariable = 1; %>

      静态的数据成员也可以如此定义。

    另外一种理解(百度百科)

    有三个基本的脚本元素,作用是使JAVA代码可以直接插入servlet.
    • 一种是声明标签,在JAVA SERVLET的类体中放入一个变量的定义。静态的数据成员也可以如此定义。
      • <%! int serverInstanceVariable = 1; %>
    • 一种是脚本标签,在JAVA SERVLET的类的_jspService()方法中放入所包含的语句。
      • <% int localStackBasedVariable = 1; out.println(localStackBasedVariable); %>
    • 一种是表达式标签,在JAVA SERVLET的类中放入待赋值的表达式,表达式注意不能以分号结尾。
      • <%= "expanded inline data " + 1 %>(表达式会在JAVA SERVLET中输出)


    4 JSP的两种注解

     

    其中JSP只有一种注释:<%-- … --%>,注释中的内容会被JSP编译系统忽略!

    HTML的注释:<!-- … -->,因为最终向客户端响应的内容还是HTML,所以在HTML注释中的内容还是看不到的。

    但是可以通过在浏览器中右键à查看源代码,查看<!-- … -->中的内容。

    1 <!-- <%=String.format("%tF %<tT"new Date())%> -->(xxx.jsp)

    (xxx_jsp.java)

    (源码)

    2 <%-- <%=String.format("%tF %<tT", new Date())%> --%>

    <%-- … --%>,注释中的内容会被JSP编译系统忽略,不编译

  • 相关阅读:
    Matlab 实现神经网络实例
    python 神经网络实例
    TensorFlow基础笔记(2) minist分类学习
    贝叶斯深度学习
    python:一行代码实现局域网共享文件
    maven:手动上传jar私服
    maven:清除lastUpdated文件
    python:序列化与反序列化(json、pickle、shelve)
    jenkins变量的传递
    python:解析requests返回的response(json格式)
  • 原文地址:https://www.cnblogs.com/kingxiaozi/p/3483991.html
Copyright © 2011-2022 走看看