实习中接触到的JSP知识

JSP主要用于动态WEB开发,打开一个JSP页面,会发现主要是由HTML和JAVA代码构成,在学校刚开始接触到JSP时,就是采用HTML中嵌入JAVA代码的写法(<% 若干java语句 %>),但是这样存在一个问题就是:整个JSP看起来很乱,尤其是JAVA代码中包含循环和判断时。因此,便有了后来的EL表达式和JSTL标签,用来替换掉JSP中的JAVA代码,使整个JSP看起来整洁。

EL表达式:###

1.输出内容
使用 ${输出内容}这种形式来代替<%=JAVA代码%>进行输出

  • ${name},name为域中定义的变量,能获取到值则输出获取的值,否则不输出
  • ${map["name"]},获取map中的值,也可以使用${map.name}
  • ${object.getName()},object为类对象,调用getName()方法获取值



    2.执行运算
  • 普通计算。${1+2},会输出3
  • 类型转换。${"1"+2},会将2转化为字符2进行拼接,输出12
  • 比较运算。${2>1},会输出true
  • 空值判断。${empty(name)},会判断name是否为空,输出true或者false,也可以判断对象是否为空、域中是否有属性
  • 三元表达式。${2>1?"是" : "否"},会输出是

JSTL标签:###

!!使用myeclipse开发的话,里面会自带有jstl标签库,所以不需要导入包
!!使用eclipse开发,需要以下步骤:

  1. 导入jstl.jar和standard.jar两个jar包
  2. 在WEB-INF目录下导入c.tld文件
  3. 在web.xml中进行配置


    http://java.sun.com/jstl/core
    /WEB-INF/c.tld


    最后在jsp中引用
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>

列举几个常用标签:
1. c:out 中的特殊字符会原样输出

注:escapeXml控制是否转义,默认为true,即不转义,是什么就输出什么(value中的值)。例子中设置escapeXml为false,则会进
行转义输出,即输出xxx





**2. ** c:set 可以更改域中的值

注:更改域中名为name的值,若不存在,则添加name





3. c:if做判断


2是大于1
注:test接收一个bool型的数,如果为true就执行c:if里面的代码,否则没变化





4. c:forEach可以遍历


${i}
上述代码相当于
for(int i = 1; i <= 10; i+=2){
System.out.print(i);
}
可以在forEach中添加if判断,如下



${i }



${i }

输出1~10,如果是偶数,设为红色,否则,正常输出
该标签中有个varStatus,它有几个属性
index —— 当前数
count —— 目前的总数
first —— 现在指到的成员是否是第一个成员,返回类型为boolean
last —— 现在指到的成员是都是最后一个成员,返回类型为boolean





5. c:forTokens可以分割字符串


${i}
注:items表示需要切割的字符串,delims表示以什么为准进行切割,例子中是以点,var用于记录切割的字符片段





6. c:import可以包含页面


上面这种方式是直接把页面包含进来



xxx
${p}
yyy
上面这种方式则是把页面以page类型存入p中,然后在需要的位置输出p即可





7. c:url可以保存url



www.abc.com
把url保存在u中,在需要的位置直接使用





8. c:redirect页面重定向




c:param标签是用于保存放在url中的数据

你可能感兴趣的:(实习中接触到的JSP知识)