如果Cookie被用户在浏览器禁用了,那么我们怎么去判断Cookie被禁用了呢?接下来就是在禁用掉之后演示如何使用Cookie获取值.(so Easy)
运行代码会出现错误,提示你开启Cookie
禁用之后Cookie可通过request.getCookies()获取值,跟之前所获取值一样,你要记住只是浏览器禁用不让你用了,但是并不能阻止你自己的项目里面的使用,但是仅局限于单独的request.
import javax.servlet.ServletException;
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.URLEncoder;
public class Regist01 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
// 创建cookie对象
Cookie cookie = new Cookie("userpass", username + "+" + password);
// 把cookie写入浏览器
response.addCookie(cookie);
// 获取Cookies
Cookie[] cookies = request.getCookies();
// 有值时给result存值,没值时,便可响应浏览器提示开启Cookied等等一些逻辑
String result = null;
if(cookie != null) {
for (Cookie ck : cookies) {
String name = ck.getName();
if("userpass".equals(name)){
String value = ck.getValue();
// 赋值
result = value;
System.out.println(value + "=============");
}
}
}
System.out.println(result);
request.getRequestDispatcher("/regist1.html").forward(request, response);
}
}