欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

使用jstl设置cookie,jstl设置cookie,最近有个公司新招的毕业生

来源: javaer 分享于  点击 45902 次 点评:85

使用jstl设置cookie,jstl设置cookie,最近有个公司新招的毕业生


最近有个公司新招的毕业生,问cookie怎么实现,我告诉他 网上很多,他说不想用那种,因为在jsp中内嵌入太多的<%%>,

这种结构,是jsp不提倡的,一想说的也对,x想利用了jstl标签库实现了cookie

因为jstl有对cookie进行提取的标签,但是没有设置cookie的标签

所以我们必须写一个javabean,在javabean里封装了cookie,然后通过设置这个javabean的属性来间接的达到设置cookie的属性<jsp:useBean>,我只在cookie设置了两个属性(username 和 password)

取得cookie时,可以利用EL表达式来完成,总

以下为核心的代码

设置cookies部分 利用了<jsp:useBean ........><jsp:setProperty>

<jsp:useBean id = "ck_username" class = "org.com.jsp.CookieBean" /> <jsp:setProperty name="ck_username" property="name" value="username"/> <jsp:setProperty name="ck_username" property="value" value="${param.username}"/> <jsp:setProperty name="ck_username" property="maxAge" value="<%= 14*24*60*60%>"/> <jsp:setProperty name="ck_username" property="cookieHeader" value="<%= response%>"/><jsp:useBean id = "ck_password" class = "org.com.jsp.CookieBean" /> <jsp:setProperty name="ck_password" property="name" value="password"/> <jsp:setProperty name="ck_password" property="value" value="${param.password}"/> <jsp:setProperty name="ck_password" property="maxAge" value="<%= 14*24*60*60%>"/> <jsp:setProperty name="ck_password" property="cookieHeader" value="<%= response%>"/>

提取cookies部分 利用了EL表达式

 <c:forEach items="${pageContext.request.cookies}" var="c">   <c:if test="${fn:contains(c.name,'username')}">    <c:set var="username" value="${c.value}"/>  </c:if>  <c:if test="${fn:contains(c.name,'password')}">    <c:set var="password" value="${c.value}"/>  </c:if></c:forEach>

html部分

<form name="login" action="redirect.jsp">  用户名:<input type="text" name="username" value="<c:out value="${username}"/>"><br/>  密码:<input type="password" name="password" value="<c:out value="${password}"/>"><br/>  <input type="submit" value="login"></form>

CookieBean代码

package cn.outofmemory.jsp;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.Cookie;public class CookieBean {  private Cookie cookie = null;public CookieBean(){}//set the cookie namepublic void setName(String name){    if (name == null || (name.equals("")))        throw new IllegalArgumentException("Invalid cookie name set in: "+getClass().getName());    cookie = new Cookie(name,""+new java.util.Date().getTime());}//set the cookie valuepublic void setValue(String value){ if (value == null || (value.equals("")))        throw new IllegalArgumentException("Invalid cookie value set in: "+getClass().getName());    if (cookie != null)        cookie.setValue(value);}public void setMaxAge(int maxAge){    if (cookie != null)        cookie.setMaxAge(maxAge);}public void setPath(String path){ if (path == null || (path.equals("")))        throw new IllegalArgumentException("Invalid cookie path set in: "+getClass().getName());    if (cookie != null)        cookie.setPath(path);}public void setCookieHeader(HttpServletResponse response){    if (response == null )        throw new IllegalArgumentException("Invalid HttpServletResponse set in: "+getClass().getName());    if (cookie != null)        response.addCookie(cookie);}public String getName(){    if (cookie != null)       return cookie.getName();    else       return "unavailable";       }public String getValue(){    if (cookie != null)       return cookie.getValue();    else       return "unavailable";       }public String getPath(){    if (cookie != null)       return cookie.getPath();    else       return "unavailable";       }}
相关栏目:

用户点评