smallFishBug 发表于 2017-8-17 22:07:29

JSP&Servlet22


        JSP中与Javabean相关的标签(JSP动作标签)
                <jsp:useBean>:创建或者查询bean 无则创建 有责查询
                        在当前jsp页面创建Javabean对象,把创建的Javabean对象保存到域对象中
                       
                        <jsp:useBean>标签默认是把Javabean对象保存到page域,还可以通过scope(范围)标签属性来指定保存的域
                        <jsp:useBean id="user1" class="cn.itcast.domain.user" scope="page">
                        <jsp:useBean id="user2" class="cn.itcast.domain.user" scope="session">
               
                <jsp:setProperty>
                设置名为 user1的这个Javabean的username属性值为admin
                <jsp:setProperty property="username" name="user1"value="admin">
               
                <jsp:getProperty>
                <jsp:getProperty property="username" name="user1">
                获取名为user1的javabean的名为username属性值
               
EL表达式语言 Expression Language
        EL的作用
                JSP2.0把html同css分离、html和JavaScript分离,把java代码替换成标签(使用标签好处:非java人员都懂得使用)
                JSP2.0为纯标签页面,不包含<%...%><%!....%><%=…..%>,EL是一门表达式语言,替代了<%=…%>
               
        EL的格式
                ${…..}
       
        EL表达式来读取四大域
                ${}全域查找 如果不存在对应的属性,则输出空字符串,而不是null
                ${pageScope.xxx}   ${sessionScope.xxx}   ${requestScope.xxxx}${applicationScope.xxxx}
               
                Javabean导航
                        利用EL表达式可以不调用方法,访问Javabean任何属性
                       ${requestScope.emp.address.street }
                                在request域中寻找emp属性,然后遍历该emp对象,找到属性address,然后遍历该address
                                对象找到属性street,返回其属性值
               
           EL内置对象
                内置11个对象,无需创建即可使用,有10个是map类型,最后一个是pageContext对象
                pageScope
                requestScope
                sessionScope
                applicationScope
                param
                intparam
                paramValues
                header
                headerValues
                Cookie
               
                域相关内置对象(重点)
                pageScope        ${pageScope.name}等同于 pageContext.getAttribute("name")
                requestScope        ${requesScope.naem}等同于request.getAttribute("name")
                sessioinScope        ${sessionScope.name}等同于session.getAttribute("name")
                applicationScope        ${applicationScope.name}等同于application.getAttribute("name")
               
                当用EL访问域中的Javabean属性,前提:由于EL只做读操作,所以Javabean必须提供get方法
               
                请求参数相关内置对象
                        Param和paramValues 这两个内置对象用来获取请求参数
                        Param:        Map<String,String>类型,param对象用来获取参数,与request.getParameter()相同
                        paramValues        Map<String,String[]>类型,当一个参数名,对应多个参数值时可以使用它
                       
                请求头相关内置对象
                        Header和headerValues是与请求头相关的内置对象
                        Header        Map<String,String>类型,获取请求头
                        headerValues        Map<String,String[]>类型,当一个请求头名称,对应多个值时,使用这个对象
                       
                        由于都是Map类型,有两种调用格式:
                                1、map.key (点方法)2、map['key'] (下标方法)
                                EL表达式在获取Map的值或Bean的属性值时,可以使用"点"的方法,也可以使用"下标"的方法,当Map的键或Beand属性名中包含下划线时,必须使用 下标方法
                                例子:当 headerValues对象请求 属性User-Agent
                                                由于里面包含-号,el表达式会当做减法运算
                                                因此使用 map['key'] 格式
                                               
                应用初始化参数相关内置对象
                initParam        initParam是Map<String,String>类型,对应web.xml中的<context-param>参数
               
                Cookie内置对象
                Cookie:Map<String,Cookie>类型,其中key是cookie的name,value是cookie对象${cookie.username,value}
               
                pageContext内置对象
                PageContext类型 ${pageContext.request.contextPath}
                <a href="${pageContext.request.contextPath }/el/a.jsp">点击这里</a>
                       
                <form action="${pageContext.request.contextPath }/initParam/a.jsp" method="post">
                        <input type="submit" value="xxx">
                </form>
                       
                ${pageContext.session.id }
页: [1]
查看完整版本: JSP&Servlet22