栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2022-5-12作业

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2022-5-12作业

记住上一次的访问时间
需求:
    1.访问一个servlet,如果第一次访问,则提示:您好,欢迎首次访问
    2.如果不是第一次访问,则提示:欢迎回来,您上一次访问时间为:显示时间
分析:
    1.可以采用Cookie来完成
    2.在服务器中的Servlet判断是否有一个名为lastTime的Cookie
    ——有:不是比一次访问
    ————欢迎回来,您上一次访问时间为:显示时间
    ————写回Cookie:lastTime=时间
    ——没有:是第一次访问
    ————响应数据:您好欢迎首次访问
    ————写回Cookie:lastTime=时间
 

写的时候一直报错:HTTP状态 500 - 内部服务器错误,Cookie值中存在无效字符[32]

搜索一下:

项目报错:java.lang.IllegalArgumentException:Cookie值中存在无效字符[32]

在Cookie中,某些特殊字符不能存在。例如:空格、逗号、等于号、双引号、斜杠等特殊符号

解决方法:

 1.存Cookie之前先将需要传的字符串编码,使用的时候在解码,需要用到下面的两个方法
URLEncoder类的静态方法encode()
URLDecoder类的静态方法decode()

2.在tomcat的根目录的conf目录context.xml加上下面的代码


	

我是在 SimpleDateFormat("yyyy-MM-ddHH:mm:ss")中有空格

 答:

package com.qiku.web;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;

@WebServlet(name = "zyCookie" , urlPatterns = "/zycookie")
public class zyCookie extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        HttpSession session = req.getSession();
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");
        boolean sessionNew = session.isNew();
        Cookie[] cookies = req.getCookies();//获取所有的cookie
        if (cookies != null ){
            for (Cookie c : cookies){
                String name = c.getName();//获取cookie的名字
                if (name.equals("lastTime")){
                    String format = sdf.format(date);

                    c.setValue(format);
                    resp.addCookie(c);
                    String cvalue = c.getValue();

                    System.out.println("欢迎回来,您上一次访问时间为:" + cvalue);
                    break;
                }
            }
        }

        if (sessionNew){
            String s = sdf.format(date);
            Cookie cookie = new Cookie("lastTime", s);

            cookie.setValue(s);
            resp.addCookie(cookie);
            System.out.println("您好,欢迎首次访问");
        }


    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        doPost(req, resp);
    }
}

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/877959.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号