JSP学习笔记(三):JSP配置与EL表达式

一、JSP配置

JSP可以与Servlet一样配置映射,也可以省略。

(一)简单配置
1、使用<jsp-file>基础标签
  <servlet>
   <servlet-name>myJsp</servlet-name>
   <jsp-file>/jsp/base/myJsp.jsp</jsp-file>
  </servlet>
  <servlet-mapping>
   <servlet-name>myJsp</servlet-name>
   <url-pattern>/myJsp</url-pattern>
  </servlet-mapping>


1)访问方式:/jsp/base/myJsp.jsp 或者 直接 /myJsp 访问。

2、配置初始化参数与多个映射
  <servlet>
   <servlet-name>myJsp</servlet-name>
   <jsp-file>/jsp/base/myJsp.jsp</jsp-file>
   <init-param>
    <param-name>encoding</param-name>
    <param-value>utf-8</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
   <servlet-name>myJsp</servlet-name>
   <url-pattern>/myJsp</url-pattern>
   <url-pattern>/myJsp.html</url-pattern>
   <url-pattern>/myJsp.php</url-pattern>
  </servlet-mapping>


1)初始化参数通过 JSP 中的config 对象的 getInnitParameter() 获取。

(二)<jsp-config>批量配置
1、<jsp-config>标签支持批量配置。包括两个子标签:
1)<taglib>:定义标签属性。
2)<jsp-property-group>:批量定义JSP属性。
  <jsp-config>
   <taglib>
    <taglib-uri>taglib</taglib-uri>
    <taglib-location>/WEB-INF/tlds/taglib.tld</taglib-location><!--定义tld文件位置 -->
   </taglib>
   <jsp-property-group>
    <url-pattern>/jsp/base/*.jsp</url-pattern><!-- 使用范围:所有/jsp/base/ 下所有的jsp -->
    <el-ignored>true</el-ignored><!--是否忽略EL 表达式。默认为false -->
    <page-encoding>UTF-8</page-encoding><!--编码方式 -->
    <scripting-invalid>true</scripting-invalid><!--是否忽略JSP脚本。默认false -->
    <include-prelude>/head.jspf</include-prelude><!--在执行 JSP 之前执行该文件 -->
    <include-coda>/foot.jspf</include-coda><!--在执行 JSP 之后执行该文件 -->
   </jsp-property-group>
 
  </jsp-config>


2、<include-prelude>与<include-coda> 支持的文件一般以 .jspf为后缀。
3、正常如果自定义标签与方法的话,需要配置。

二、EL表达式 ${}
(一)读取对象以及属性的简单方式
1、${person.age}:默认先从request中获取,没有则会从session 中获取。

(二)读取隐藏对象
1、读取其他隐藏对象,例如:
1)、${param.name} :读取地址栏参数,等价于request.getParameter("name");
2)、${initParam.foo}:读取初始化参数,相当于 comfig.getInitParameter("foo")
3)、${header.host}:读取 head 参数,相当于request.getHeader("host")
技术分享
技术分享
技术分享
技术分享


(三)EL 表达式运算
1、简单运算:加减乘除、取余(%、mod)、三目运算等

${1+2}
${5%2}
${1==2 ? 3 : 4} 

2、简单比较运算:等于(==、eq) 不等于(!= 、ne)
${1>2}
${1==2}
${1 eq 2}
${1!=2}
${1 ne 2} 

3、比较运算&& ||

4、Map:使用empty 判断是否为空。
${param.param[0]}
${empty param.paramA}

5、EL表达式不能直接访问普通的方法,以及静态属性。


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。