java - 在servlet中添加cookie報錯
問題描述
1.在添加cookie的時候報錯:
An invalid character [13] was present in the Cookie value
在網(wǎng)上查了一些報錯,大部分都是[32]、[44],據(jù)說是因為cookie里面添加了“,”或者空格導致的。
登陸處理的代碼是這樣的:
//登錄處理 @RequestMapping(value = '/login/validate', method = RequestMethod.POST) public void Validate(@RequestParam('username') String username, @RequestParam('password') String password, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {String md5 = MD5Util.stringToMD5(password);if (userService.verification(username, md5)) { User user = userService.selectByUsername(username); Long id = user.getId(); Long createDate = new Date().getTime(); String str = id + '=' + createDate; //加密 byte[] result = DESUtil.desCrypto(str, '12345678'); //把加密的字節(jié)數(shù)組轉換成16進制// String results = TypeUtil.bytesToHexString(result); String results = Base64.encodeBase64String(result); Cookie cookie = new Cookie('token', results); cookie.setMaxAge(60 * 60 * 24 * 7);//7天 cookie.setPath('/'); System.out.println('新生成cookie和其MaxAge:' + cookie.getName() + '-->' + cookie.getMaxAge()); httpServletResponse.addCookie(cookie); HttpSession session = httpServletRequest.getSession(); session.setAttribute('user', user); for (Cookie c : httpServletRequest.getCookies()) {System.out.println('cookes添加到response后重新獲取cookies和其MaxAge:' + c.getName() + '-->' + c.getMaxAge()); } try {httpServletResponse.sendRedirect('/index.html');//httpServletRequest.getRequestDispatcher('/index.html').forward(httpServletRequest, httpServletResponse); } catch (Exception e) {e.printStackTrace(); }} else { try {httpServletResponse.sendRedirect('no.html'); } catch (IOException e) {e.printStackTrace(); }} }
報錯的地方發(fā)生在addCookie這里。
問題解答
回答1:經(jīng)過嘗試,把原來的代碼2注釋,1 放開就可以了,哪位大佬可以解釋一下啊
1. String results = TypeUtil.bytesToHexString(result);2. //String results = Base64.encodeBase64String(result);
相關文章:
1. javascript - 有什么比較好的網(wǎng)頁版shell前端組件?2. sql語句 - mysql中關聯(lián)表查詢問題3. javascript - 原生canvas中如何獲取到觸摸事件的canvas內坐標?4. css - div外層有一圈白色5. javascript - [js]為什么畫布里不出現(xiàn)圖片呢?在線等6. javascript - vscode alt+shift+f 格式化js代碼,通不過eslint的代碼風格檢查怎么辦。。。7. javascript - 如何將一個div始終固定在某個位置;無論屏幕和分辨率怎么變化;div位置始終不變8. html - vue項目中用到了elementUI問題9. javascript - iframe 為什么加載網(wǎng)頁的時候滾動條這樣顯示?10. javascript - 求解答:實例對象調用constructor,此時constructor內的this的指向?
