package com.cn.servlet04; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLDecoder; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.Date; @WebServlet("/Cookie03") public class ServleCookie03 extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //设置响应消息体的数据格式 resp.setContentType("text/html;char=utf-8"); //获取cookie Cookie[] cookies = req.getCookies(); //遍历数据 if(cookies != null && cookies.length>0){ for(Cookie c:cookies){ String name = c.getName(); //判断name是否是登录时间的name System.out.println("name"+name); if("time".equals(name)){ String value = c.getValue(); //解码 value = URLDecoder.decode(value,"utf-8"); //有我要的cookie 不是第一次访问 resp.getWriter().write("<h1>欢迎回来</h1>"); } } } if(cookies == null || cookies.length==0){ //第一次访问 Date date = new Date();//获取系统时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String str_date = sdf.format(date); Cookie c = new Cookie("time",str_date); // c.setMaxAge(0); resp.addCookie(c); resp.getWriter().write("欢迎你首次访问"); } } } 为什么网页无法正常显示,给出修改过后的代码
时间: 2024-04-12 19:29:27 浏览: 164
您提供的代码缺少一些必要的部分,例如导入的包和Servlet的注解信息。此外,您还需要提供更详细的问题描述,以便我能更好地帮助您修改代码。以下是一个基本的修改后的代码示例:
```java
package com.cn.servlet04;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/Cookie03")
public class ServletCookie03 extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 设置响应消息体的数据格式
resp.setContentType("text/html;charset=utf-8");
// 获取cookie
Cookie[] cookies = req.getCookies();
// 遍历cookie
if (cookies != null && cookies.length > 0) {
for (Cookie c : cookies) {
String name = c.getName();
// 判断name是否是登录时间的name
System.out.println("name: " + name);
if ("time".equals(name)) {
String value = c.getValue();
// 解码
value = URLDecoder.decode(value, "utf-8");
// 有我要的cookie,不是第一次访问
resp.getWriter().write("<h1>欢迎回来</h1>");
}
}
}
if (cookies == null || cookies.length == 0) {
// 第一次访问
Date date = new Date();// 获取系统时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String str_date = sdf.format(date);
Cookie c = new Cookie("time", URLEncoder.encode(str_date, "utf-8"));
// c.setMaxAge(0);
resp.addCookie(c);
resp.getWriter().write("欢迎你首次访问");
}
}
}
```
请注意,以上代码仅仅是一个基本的修改示例,如果您有其他问题或者详细需求,请提供更多的信息,以便我能更好地帮助您。
阅读全文