JSP和JSTL

JSP
    JSP:Java Server Page SUN 公司提供的动态网页编程技术,是 Java Web 服务器端的动态资源。
     注释
        ① 显示注释语法:从 HTML 风格继承而来
            这种注释是允许客户端看见的
        ② 隐式注释语法:从 JAVA 风格继承;JSP 自己的注释
            此种注释是客户端无法看见的
        JSP 的三种注释方式:
            1) // 注释,单行注释 /* 多行注释*/
            2)<!-- HTML风格的注释 -->
            3)<%-- JSP注释 --%>
    Scriptlet(脚本小程序)
        所有嵌入在 HTML 代码中的 Java 程序
        三种脚本
            <%! 成员变量%>
            <% 局部变量 %>
            <%= 原样输出 %>
 
        页面包含
            静态包含
                <%@ include file=''target.jsp"%>
                被包含的页面要知根知底
                被编译一个文件
            动态包含
                <jsp:include page='target.jsp'>
                包含页面和被包含页面是2个文件
                (2)动态包含的特点:
                    ①动态包含将被包含的JSP页面翻译成.java.class文件
                    ②动态包含还可以传递参数
                    ③动态包含底层使用如下代码调用被包含的JSP页面执行输出:
                    org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, “/foot.jsp”, out, false);


    JSP的四大域对象
        范围
            1. page
                pageContext : 只在一个页面中保存属性,跳转之后无效
            2. request
                request : 只在一次请求中保存,服务器跳转后依然有效
            3. session
                session : 在一次会话范围中,无论何种跳转都可以使用
            4. application
                application : 在整个服务器上保存
        方法
            public void setAttribute(String name, Object o)         设置属性的名称及内容
            public Object getAttribute(String name)     根据属性名称取属性
            public void removeAttribute(String name)     删除指定的属性
        验证属性范围的特点
            1. page
                本页面取得,服务器端跳转()后无效
            2. request
                服务器跳转有效,客户端跳转无效
            3.session
                无论客户端还是服务器端都可以取得,但是现在重新开启一个新的浏览器,则无法取得之前设置的session了,因为每一个session只保存在当前的浏览器当中,并在相关的页面取得。对于服务器而言,每一个连接到它的客户端都是一个session如果想要让属性设置一次之后,不管是否是新的浏览器打开都能取得则可以使用application
            4. application
                所有的application属性直接保存在服务器上,所有的用户(每一个session)都可以直接访问取得只要是通过application设置的属性,则所有的session都可以取得,表示公共的内容,但是如果此时服务器重启了,则无法取得了,因为关闭服务器后,所有的属性都消失了,所以需要重新设置
        问:使用哪个范围呢?
            答:在合理范围尽可能小


     EL表达式
        EL(Expression Language) 是为了使 JSP 写起来更加简单。
         EL表达式的语法
            语法结构: ${expression}
        EL 表达式一般操作的都是域对象中的数据,操作不了局部变量
        域对象的概念在 JSP 中一共有四个:pageContext, request, session, application;范围依次是,本页面,一次请求, 一次会话,整个应用程序。


        内置对象
            pageScope
            requestScope
            sessionScope
            applicationScope
        作用域取值,没有值,不报错
        ${name} 没有指定作用域对象,他根据作用域的大小从小到大一次扫描,若指定了作用域对象,则不会再去一次搜索或者扫描

        el作用:一般对作用域里数据进行获取,运算,展示

        el获取list集合:${list[index]}

         el获取map集合:${map.key}或¥{map[key]}

         el获取javabean集合:${user.uname}        


    JSP九大内置对象
        request:请求对象
        response:响应对象
        pageContext:JSP的上下文对象
        session:会话对象
        application:ServletContext对象
        config:ServletConfig对象
        out:JSP输出流对象
        page:指向当前JSP的对象
        exception:异常对象


    MVC模式
        M:model  javaBean
        V:view html,jsp.freemarker
        C:controller servlet....

JSTL

JSTL:Java Servlet Pages Standrad Tag Libray : JSP标准标签库
    是一个定制标签类库的集合,用于解决一些常见的问题,例如迭代一个映射或者集合、条件测试、XML 处理,甚至数据库和访问数据库操作等
    常用标签
        核心标签
            core
                c标签
                    c:if
                        属性
                            test:条件,是必要,无默认值
                            var:用于存储条件结果的变量(仅限域变量名),不必要,无默认值
                            scope:var属性的作用域,可取值:page|request|session|application,不必要,默认值page
                    c:set
                    c:choose,when,otherwise
                    c:foreach
                        forEach标签
                            属性
                                items 要被循环的数据 否 无默认值
                                begin 开始的元素(0=第一个元素,1=第二个元素) 否 0
                                end 最后一个元素(0=第一个元素,1=第二个元素) 否 Last element
                                step 每一次迭代的步长 否 1
                                var 代表当前条目的变量名称 否 无
                                varStatus 代表循环状态的变量名称 否 无
                            items:获取目标作用域里面的对象
                            var:声明变量存储目标对象
                            varStatus
                                index:索引     ${status.index}
                                first:是否第一个对象
                                last:是否最后一个
                                count:统计数量
        格式化
            格式化数字:formatNumber
            格式化日期:formatDate
        转换
            ParseNumber
            ParseDate

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值