jsp基础

一个jsp页面最后变成一个servlet

三个指令:

    page,include,taglib

指令表示方式:

    <%@ page import="foo.*" %>    import是page指令的一个属性

五种种jsp元素:

    scriptlet:<% ... %>
    指令: <
%@ ... %>
    表达式:<%= ... %>
    声明:<%! ... %>
    动作:<jsp:include page="wickedFooter.jsp" />

表达式“=”后的内容会当做参数传递给打印语句,例如<%= hah %>被转换为out.print("hah")

不能把返回值为void的函数放在表达式中,表达式没有分好

声明后的内容被当做生成servlet的实例变量和方法,声明中即可以放变量也可以放方法,例如:

    <%! int count = 1%>

    <%! int count() {
                return ++count;
            }
    %>

jsp转换为servlet时服务方法中声明的隐式对象:

    JspWriter out
    HttpServletRequest request
    HttpServletResponse response
    HttpSession session
    ServletContext application
    ServletConfig config
    Throwable exception
    PageContext pageContext
    Object page

jsp生命周期:

1.容器读取web应用的web.xml,但是对.jsp不做任何处理,直至得到第一个请求

2.当客户点击这个链接,容器尝试将.jsp转换为servlet的java代码,这阶段会发现jsp语法错误

3.容器尝试把这个servlet .java源文件编译为一个.class文件,这里会捕获到java语法错误

4.容器加载新生成的servlet类

5.容器实例化servlet,并导致servlet的jspInit()方法运行,对象现在成为一个真正的servlet,准备就绪,可以接受用户请求了

6.容器创建一个新线程处理这个客户的请求,servlet的_jspService()方法运行

jsp的编译和转换在jsp声明周期中,编译和转换至发生一次

为jsp配置servlet初始化参数,与常规servlet配置基本相同,唯一区别是必须在<servlet>标记中增加一个<jsp-file>元素,例如:

<web-app...>
    <servlet>
        <servlet-name>MyTestInit</servlet-name>
        <jsp-file>/TestInit.jsp</jsp-file>
        <init-param>
            <param-name>email</param-name>
            <param-value>[email protected]</param-value>
        <init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>MyTestInit</servlet-name>
        <url-pattern>/TestInit.jsp</url-pattern>
    </servlet-mapping>
</web-app>

jsp定义的四个作用域:

    application,pageContext,session,request

在DD中配置禁用脚本元素:

<web-app...>
    ...
    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <script-invalid>
                true
            </script-invalid>
        </jsp-property-group>
    </jsp-config>
</web-app>

 配置忽略el:

在<jsp-property-group>标签中加入以下标签即可:

<el-ignored>
    true
</el-ignoed>

也可以在page指令中设置,指令优先级高于配置文件

你可能感兴趣的:(jsp基础)