第1章 JSP基础

第1章 JSP基础

1.1 JSP

JSP文件的本质是Servlet。只不过,JSP与Servlet不同的是,JSP是专门用于进行数据展示的Servlet,其有特殊的写法。而普通的Servlet是用于完成业务逻辑处理的。由于Servlet是运行在单例多线程环境下的,所以JSP同样也是运行在单例多线程环境下的。

1.2 JSP规范

将JSP页面翻译为Servlet的过程,是由Tomcat完成的。在Tomcat中内置了一个JSP的翻译引擎,当第一次访问该JSP页面时,翻译引擎会将JSP页面翻译为Servlet的.java文件,再将其编译为.class文件进行运行。

SUN公司制定的JavaEE规范中包含两个很重要的子规范,Servlet规范和JSP规范。其中,JSP规范中就包含了如何将JSP页面翻译为Servlet。例如,JSP页面中的html、css、javascript、普通文件部分,均会被翻译到out.write()中。

1.3 JSP注释

JSP注释:<%-- --%>

HTML注释:<!-- -->

JSP注释与HTML注释区别:

(1)、HTML注释会被JSP翻译引擎翻译到Servlet的out.write()中;而JSP注释会被翻译引擎忽略,在Servlet中看不到。

(2)、客户端浏览器查看源码时,HTML注释是可以查看到的;JSP注释查看不到。

1.4 JSP的java代码块

<% %> java代码块出现在Servlet的_jspService()方法中,不能定义方法,不能定义静态语句块。

<html>
    <% double b = 2; %>
    <body>
        <% int a = 1; %>
    </body>
</html>

1.5 JSP的声明语句块

<%! %> 声明语句块中的内容,将出现在Servlet类体中,没有包含到哪个方法体中。有线程安全隐患

<%! 
    private int amount = 3;

    public void showData(){
        syso("aaaaa");
    }
 %>

1.6 JSP的表达式块

<%= %> 表达式块出现的_jspService()方法的out.write()方法中。

count = <%=count %>

//Servlet
out.write("count = ");
out.write(count);