Java--之JSP概念

JSP的宏观上的个人理解

一. 首先,JSP本质上是Servlet:当jsp文件添加到Tocmat的Container里后,就会被JSP编译器解析成一种 jsp_Servlet类,

                                                而JSP的内容将会在_jspService(xxx)这个函数中被解析和组装。                                        

                      <%-- --%>是服务器端注释代码;
                    <!--  -->是客户端注释代码;
                    当我们在浏览器中审查源代码的是,<%-- --%>标记的内容是完全看不到的,而<!--  -->

                    标记的内容不但可以看到,里面的内容还会被解析。

                


二. 其次,JSP中可以插入Java片段:如果是片段是变量和方法的话,就会被解析成 jsp_Servlet 的成员变量和方法属性。

                值得注意:于JSP声明语法定义的变量和方法对应于Servlet类的成员变量和方法,所以JSP声明部分定义的变量和方法可以使用private,public等访问控制符修饰,也可使用static修饰,将其变成类属性和类方法。但不能使用abstract修饰声明部分的方法,因为抽象方法将导致JSP对应的Servlet变成抽象类,从而导致无法实例化。

                <%!  %>:其声明的变量和方法--------》Servlet中的成员变量和方法

               <%  %>:  其声明的变量和方法---------》Servlet中的局部变量和方法,当然该标签主要作用是包含一些Java逻辑块

            

三.  然后,JSP中的HTML标签 :jsp中静态标签会被out.println()函数按着位置顺序输出,当然这个顺序也包含了一些Java片段
                                               中。 值得注意的是 ,JSP编译器只会对那些不是成员或函数声明且有输出标识“=”的Java片段

                                               进行out.println()函数输出。

四. 然后,JSP或jsp_Servlet中 out.println() 输出到客户端,即页面; system.out.println() 输出到Console中。前者是
                                                           Http Response(名称写的不准确)的实例,后者是系统IO输入出的实例; 值得注意的是:
                                                           system.out.println()如果出现在JSP中,将会在页面上输出一个空格,但同时会在控制台中

                                                 输出内容。

五. 最后,JSP还有九大内置对象:它们是当前WEB容器中某些类的实例,主要用来获得WEB容器中的环境属性。但在

                                                    _jsp

        

                page:page对象代表当前JSP页面,是当前JSP编译后的Servlet类的对象。相当于this。

    config:标识Servlet配置,类型:ServletConfig,api跟Servlet中的ServletConfig对象是一样的,能获取该servlet的一些配置信

                   息,能够获取ServletContext

      application:标识web应用上下文,类型:ServletContext,详情就看Servlet中的ServletContext的使用

      request:请求对象,  类型:httpServletRequest

      response:响应对象  类型:httpServletResponse

      session:表示一次会话,在服务器端记录用户状信息的技术

      out:输出响应体 类型:JspWriter

      exception 表示发生异常对象,类型 Throwable,在上面我们介绍page指令中的一个errorPage属性时就有说到他

      pageContext:表示 jsp页面上下文(jsp管理者) 类型:PageContext

     标记了红色的对象就是JSP独有的,其他的都是Servlet中的老东西。

      

      在这个由jsp转换为servlet的文件中,只能看到8个内置对象,少了exception对象,因为我们在将page指令时,说过一个isErrorPage属性,默认是false,被关闭了,所以其中并没有exception对象。





猜你喜欢

转载自blog.csdn.net/weixin_39609623/article/details/80756062