一.使用web.xml设置网页首选项。
1.首先在新建JSP项目时,先别急着点Finish,应该先点Next (需连续点两个)
2.然后勾选Generate web.xml deployment descriptor 这个选项,才能点击Finish
web.xml文件(不打勾就没有):
4.点击web.xml文件,在点击右下角的Source,就会出现如图所示的代码页面:
列表中有6种文件,每次访问项目时,会在你的文件列表找是否有以上其中一种文件类型
web.xml设置网页首选项:就是修改web.xml文件中的默认内容,eg:把网页首选项设置为登录页面。
6.修改了web.xml文件,其项目必须重启服务器 。
二.域对象(四个)
名称 | 作用 |
page(pageContext) | 作用域仅限于当前的jsp页面(既不能用来做转发的数据分享,也不能做重定向 的数据分享) |
request | 作用域仅限于当前请求(转发有效) |
session | /作用域仅限于当前会话(一次对话:浏览器的打开和关闭之间称之为一次会话 ,转发和重定向都可以使用) |
application(content) | 作用域在当前的服务器内 |
1.存值:
1)pageContext.setAttribute("a", "小羽")
2)equest.setAttribute("a", "小香")
3)session.setAttribute("a", "小花")
4)application.setAttribute("a", "小姣")
2.取值(使用jsp表达式):
1)<%=pageContext.getAttribute("a") %><br>
2)<%=request.getAttribute("a") %><br>
3)<%=session.getAttribute("a") %><br>
4)<%=application.getAttribute("a") %><br>
三.EL表达式
1.What? 什么是EL?
EL即Expression Language(表达式语言)。
2.EL的功能。
替代JSP页面中的复杂代码(相比较在JSP中嵌入Java代码,EL应用更简单)
3.EL的语法。
1)${ EL exprission }
2)${ bean.name } 或 ${ bean['name'] }
3)${bean.name}实质是调用bean的getName()方法
4.EL的实例代码。
${ "Helloworld" } // 输出字符串常量
${ str } // 输出字符串变量 str 的值
${ 3 + 2 } // 输出 3+2 的结果
${ user.name} // 输出 user 对象的 name 属性
${user["name"] } // 同上
${ sessionScope ["user"].name } // 同上
${user.name} // 访问对象 user 的 getName () 方法以得到 name 成员的值。
${list[1]} // 访问 list 对象的第二项。
${map["key"]} // 访问 map 指定键的值。
5.EL运算符 "."与"[ ]" 的相同点和差别。
1)相同点:都可以访问对象有属性。
2)不同点:当属性的名字包含有空格,点号等复杂符号时。使用"." 来访问对象有属性将会出现异常。
三、JSTL (jsp标准标签库)
1.JSTL的优点。
1)提供一组标准标签
2)可用于编写各种动态 页面
3)JSTL通常会与EL表达式合作实现JSP页面的编码
2.使用JSTL的步骤。
1)在JSP页面添加taglib指令
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
2)使用JSTL标签
3. JSTL标准标签库内的标签。
1)通用标签
set:设置指定范围内的变量值
set标签用于给变量设置值和作用范围(scope= "page|request|session|application" )
<c:set var= "example" value="${100+1}" scope="session" />
out:计算表达式并将结果输出显示
out 标签在页面上显示信息或变量值
<c:out value="${example}"/>
remove:删除指定范围内的变量
remove 标签用于删除作用域内的变量
<c:remove var= "example" scope="session"/>
2)条件标签
if:if标签用于判断条件是否成立,与Java中的If语句作用相同
test:判断条件表达式,返回true/false var:变量名用于保存返回的true/false scope: 指定var变量的作用域
<c:if test="condition" var="name" scope="applicationArea" >
3)迭代标签
forEach:实现对集合中对象的遍历
items指定要遍历的集合对象 var指定集合内数据的变量名称 begin指定从集合的第几位开始 end指定迭代到集合的第几位结束 Step指定迭代的增量
<c:forEach items=collection var=name begin=start end=end step=count>
forEach是for循环语句的变体,实现集合对象(可以是list、数组等)的处理
我不惦记你,我靠什么活下去
--《知否》