一、什么是JSP?

  HTML+Java代码+jsp标签=jsp。

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

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


二、JSP的真身:Servlet

  当客户请求的是JSP页面的时候,服务器会查看JSP对应的Servlet是否存在,如果存在,那么直接调用Sevlet的service()方法来处理请求。如果不存在,那么服务器会先把JSP编译成.java文件,然后再把.java文件编译成.class文件,然后调用service()方法。当这个jsp页面,第二次处理请求时,就直接调用真身的sercie()方法了。

JSP、EL的快速入门_第1张图片

  JSP是servlet,JSP与我们编写的Servlet有什么不同呢?通常我们编写的Servlet就不要输出HTML代码了,而是转发到JSP页面。

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

  在"真身"中,所有的静态内容会被输出。例如是静态内容,它对应"真身"中的out.write("");


三、JSP的脚本元素

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

    <%...%>:代码片段。代码片段会原模原样的出现在“真身”中,不会有变动。正常的Java代码都可以在代码片段中出现。

    <%=...%>:表达式。表达式会在“真身”中输出,例如:<%=a%>,对应真身中的out.print(a)。只能出现变量、常量,以及有返回值的方法调用,而不能出现分号!即在out.println()的合法参数都可以。

      <%=a%>对应out.print(a);

      <%="a"%>对应out.print("a");

      <%=fun()%>对应out.print("fun()");

      <%=a;%>对应out.print(a;);出错

      <%=System.out.print("hello")%>对应out.print("System.out.print("hello")"),出错。

    <%!...%> :声明。声明对应“真身”中的属性和方法。


四、EL

  JSP2.0要把HTML和CSS分离、要把HTML和JavaScript分离、要把Java代码块替换成标签。标签的好处就是非Java人员都可以使用。

  JSP2.0--纯标签页面,即:不包括<%...%>、<%=...%>、<%!...%>

  EL(Expression Language)是一门表达式语言,它杜继英<%=...%>。我们知道在JSP页面中,表达式会被输出,所以EL表达式也会被输出。

  EL表达式的格式::${...},例如${1+2}。