jsp中使用cookie时报错……
今天在看jsp中的cookie時(shí),遇到一個(gè)比較麻煩的問題。
關(guān)鍵代碼如下:
登錄頁(yè)面:login.jsp
<form action="doLogin.jsp"?method="post">用戶名:<input?type="text"?name="sname"?/><br/>密碼:<input?type="text"?name="spass"/><br/><input?type="submit"?value="登錄"/> </form>處理登錄業(yè)務(wù)的doLogin.jsp
<%@page?import="java.net.URLEncoder"%> <%@page?import="org.dao.impl.StudentDaoImpl"%> <%@page?import="org.dao.IStudentDao"%> <%@page?import="org.entity.Student"%> <%@page?import="org.service.impl.StudentServiceImpl"%> <%@page?import="org.service.IStudentService"%> <%@ page language="java"?import="java.util.*"?pageEncoding="UTF-8"%> <%//創(chuàng)建Service的對(duì)象IStudentService studentService = new?StudentServiceImpl();//解決亂碼的問題request.setCharacterEncoding("utf-8");//獲取表單的值String?sname = request.getParameter("sname");String?spass = request.getParameter("spass");//調(diào)用service的方法進(jìn)行登陸Student stu = studentService.login(sname, spass);if(stu.getSid()!=0){//登陸成功//將用戶名放入到Cookie里面Cookie scook = new?Cookie("sname",sname);response.addCookie(scook); //將登陸信息放在Session中//session.setAttribute("sname",sname);request.getRequestDispatcher("index.jsp").forward(request,response);}%>登錄成功跳轉(zhuǎn)到的頁(yè)面:index.jsp
<body><h1>歡迎進(jìn)入學(xué)生管理系統(tǒng)</h1><%Cookie cookie[] = request.getCookies();for(int i=0;i<cookie.length;i++){Cookie cook = cookie[i];if(cook.getName().equals("sname")){%> 你好:<%=cook.getValue()%><%}}%>?<%--?<%String?sname?=(String)session.getAttribute("sname");if(sname==null){response.sendRedirect("login.jsp");}%><%=sname?%>?--%></body>代碼都寫的沒問題,就是報(bào)錯(cuò):
ava.lang.IllegalArgumentException: Control character in cookie value or attribute.
后來(lái)用英文的昵稱登錄,正常顯示:
看來(lái)就是中文編碼的問題了,在網(wǎng)上查了查,確實(shí)是編碼的問題,只需要在放置cookie的時(shí)候,設(shè)置編碼格式為UTF-8,并且在顯示時(shí),設(shè)置編碼格式也為UTF-8,問題完美解決,修改過后的代碼如下:
登錄業(yè)務(wù)處理:doLogin.jsp
Cookie scook = new?Cookie("sname",URLEncoder.encode(sname,"UTF-8"));登錄成功:index.jsp
<%Cookie cookie[] = request.getCookies();for(int?i=0;i<cookie.length;i++){Cookie cook = cookie[i];if(cook.getName().equals("sname")){%> 你好:<%=URLDecoder.decode(cook.getValue(),"UTF-8")%><%}}%>切記切記,在講中文字符往Cookie中放的時(shí)候,一定要設(shè)置編碼格式。
往期精彩
Java中的TreeSet集合會(huì)自動(dòng)將元素升序排序
2020-11-16
“老師,請(qǐng)您多關(guān)注一下我吧!!!”
2020-11-15
晨讀,難道只是為了完成任務(wù)而讀的嗎?
2020-11-14
Vector是線程安全的?
2020-11-13
為什么要有周考?周考是用來(lái)干什么的?
2020-11-12
剛剛,改造了下BaseDao……
2020-11-11
點(diǎn)分享
點(diǎn)點(diǎn)贊
點(diǎn)在看
總結(jié)
以上是生活随笔為你收集整理的jsp中使用cookie时报错……的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 聊聊为工程师定制的电脑聊聊为工程师定制的
 - 下一篇: 电脑用久了就会卡电脑用的久了为什么会卡