一、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表达式不能直接访问普通的方法,以及静态属性。