1、会话管理:
1)URL重写:(少量信息科使用此方式) 通常使用A标签:url?key=value&key2=value2....;(URL和token建用?隔开,token间用&隔开);-------------------------------------------------------------------------------------------------------------------------------------------------- 2)隐藏域:(仅当网页有表单的时候有效,但与URL重写一样不适合跨越多个界面) <input type="hidden" name="" value="">//此隐藏域可跟随表单提交-------------------------------------------------------------------------------------------------------------------------------------------------- 3)*Cookies:(可在多个页面间传递信息) 创建一个cookie:Cookie cookie = new Cookie(key, value);//创建完后可设置domain、path、maxAge属性,maxAge是生命周期 HttpServletResponse.addCookie(cookie);//将cookie发送给浏览器 ServletActionContext.getResponse().addCookie(cookie);//此方法适合在struts2中使用 ***浏览器在访问服务器的时候,会将之前收到的cookies一并发送给服务器*** 服务器取得cookie方法: Cookie[] cookies = request.getCookies(); Cookie cook = null; if(cookies != null){ for(Cookie ck : cookies ){ if(ck.getName().equals("name")){ cook = ck; break; } } } 删除原有cookie的方法:(创建同名cookie,并将maxAge设为0) Cookie cookie = new Cookie("name", ""); cookie.setMaxAge(0); HttpServletResponse.addCookie(cookie); 前台获得cookie方法: a.导jquery.cookie.js:$.cookie("key"); b.使用EL表达式:${cookie.cookieKey.value}//获得cookie值; ${cookie.cookieKey.path}//获得cookie的路径值-------------------------------------------------------------------------------------------------------------------------------------------------- 4)***HttpSession对象:(最强大和适用)(占用内存) HttpSession getSession();//使用getSession().setAttribute()方法来向session中存值;getSession().getAttribute()取值; 部署描述符session-timeout设置session过期时间; setMaxInactiveInterval单独对某个session设置时间;==================================================================================================================================================2、EL表达式语言:${} 1)访问对象属性: ${object.name}或者${object["name"]}后者更为规范 2)访问javaBean: ${bean.stu_name}//访问bean中的stu_name属性 3)关系运算符: ${statement? a:b}//如果statement计算的结果为真,则输出结果a,如果为假,输出结果b 4)empty运算符: ${empty x}//如果x是长度为0的字符串,或者是空map、空数组、空集合泽返回true==================================================================================================================================================3、JSTL标签: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 1)set标签: //以下创建了字符串the wisest fool,并将它赋值给页面范围变量fool <c:set var="fool" value="the wisest fool"/> //以下创建了job的有界变量,引用请求范围的对象position <c:set var="job" value="${requestScope.position}" scope="page|request|session|application"/> //下面的set是将字符串"tokyo"赋予有界对象address的city属性 <c:set target="${address}" property="city" value="tokyo"/>-------------------------------------------------------------------------------------------------------------------------------------------------- 2)remove标签: //用于删除有界变量,但无法删除引用的对象 <c:remove var="varName" [scope="page|request|session|application"]/>-------------------------------------------------------------------------------------------------------------------------------------------------- 3)if标签:判断test中的运算结果,若为true时,执行body content,否则不执行。为了模仿if...else 可使用两个<c:if>标签,条件设置完全相反 <c:if test="testCondition" [var="varName"] [scope="page|request|session|application"]> body content </c:if>-------------------------------------------------------------------------------------------------------------------------------------------------- 4)choose、when和otherwise标签:(类似于JAVA中的switch和case) <c:choose> <c:when test="testCondition"> body content </c:when> <c:when test="testCondition2"> body content </c:when> <c:otherwise>//放在最后,当以上when全部为假不执行时,执行otherwise中的body content other body content </c:otherwise> </c:choose>-------------------------------------------------------------------------------------------------------------------------------------------------- 5)forEach标签: //遍历collection集合,显示stu_name属性的值 <c:forEach items="collection" var="varName" [varStatus="num"] [begin="begin"] [end="end"] [step="step"]> ${varName.stu_name} </c:forEach> //与map结合使用 <c:forEach item="map" var="varName"> ${varName.key} ${varName.value} </c:forEach>-------------------------------------------------------------------------------------------------------------------------------------------------- 6)forTokens标签:用于遍历特定分隔符隔开的字符串等 <c:forTokens var="item" items="a,b,c,d" delims=","> <c:out value="${item}"/> </c:forTokens>--------------------------------------------------------------------------------------------------------------------------------------------------<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>//调用函数的格式要用EL表达式:${fn:functionName} 7)contains函数:用于测试一个字符串中是否包含指定子字符串(containsIgnoreCase函数与contains类似,但区分大小写) ${fn:contains(myString, "hello")}//判断myString字符串中是否包含hello-------------------------------------------------------------------------------------------------------------------------------------------------- 8)endWith函数:用于测试一个字符串是否已某个指定后缀结尾(startWith与之相反) ${fn:endWith("hello world","world")}-------------------------------------------------------------------------------------------------------------------------------------------------- 9)indexOf函数:用于返回指定子字符串在某个字符串中第一次出现时的索引 ${fn:indexOf("hello","e")}//返回1-------------------------------------------------------------------------------------------------------------------------------------------------- 10)join函数:用于将一个数组用特定符号分割开 ${fn:join(array, ",")} -------------------------------------------------------------------------------------------------------------------------------------------------- 11)length函数:用于返回集合中的项目书,或者字符串的字符数-------------------------------------------------------------------------------------------------------------------------------------------------- 12)replace函数:将字符串中出现的所有begin用after替换 ${fn:replace("hello world", "l", "L")}//结果为heLLo worLd-------------------------------------------------------------------------------------------------------------------------------------------------- 13)split函数:用于将一个字符串分离成一个字符串数组,与join相反 ${fn:split("my,world", ",")}-------------------------------------------------------------------------------------------------------------------------------------------------- 14)substring函数:返回一个从指定的起始索引到终止索引的子字符串(substringAfter\substringBefore函数返回子字符串第一次出现后\前的部分) ${fn:substring("hello world",0,4)}-------------------------------------------------------------------------------------------------------------------------------------------------- 15)toLowerCase\toUpperCase函数:用于将字符串转换成小写\大写版本-------------------------------------------------------------------------------------------------------------------------------------------------- 16)trim函数:用于删除一个字符串开头和结尾的空白 ${fn:trim(" hello ")}//返回hello ==================================================================================================================================================