/**
* 获取Cookie里面的东西
*/
protected List<String> getCookieList() {
Cookie[] cookies = null;
Cookie cookie = null;
String cookieValue = null;
String cookieName = null;
cookies = request.getCookies();
if(cookies==null){
return null;
}
List<String> cookieList = new ArrayList<String>();
for (int i = cookies.length - 1; i >= 0; i--) {
cookie = cookies[i];
try {
cookieValue = URLDecoder.decode(cookie.getValue(),"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
cookieName = cookie.getName();
int cookieNameIndex = 0;
cookieNameIndex = cookieName.indexOf("search");
if (cookieNameIndex != -1 && cookieValue!= null && StringUtils.isNotBlank(cookieValue)) {
cookieList.add(cookieValue);
}
}
//去重
removeDuplicate(cookieList);
//取记录
List<String> searchList = new ArrayList<String>();
int index = 0;
for(int i=0;i< cookieList.size(); i++){
if(index< Constants.COOKIES_NUM){
searchList.add(cookieList.get(i));
}
index++;
}
return searchList;
}
//去重
private static void removeDuplicate(List list) {
for (int i = 0; i < list.size() - 1; i++) {
for (int j = list.size() - 1; j > i; j--) {
if (list.get(j).equals(list.get(i))) {
list.remove(j);
}
}
}
}
//设置
protected void setCookie(String keyWord){
try {
//关键点
keyWord = URLEncoder.encode(keyWord,"UTF-8");
} catch (UnsupportedEncodingException e) { }
Cookie cookie = new Cookie("search"+new Date().getTime(), keyWord);
cookie.setPath("/");
cookie.setMaxAge(60 * 60 * 24 * 365 * 1);
response.addCookie(cookie);
}
//删除
protected void removeCookie(){
Cookie[] cookies = request.getCookies();
for (Cookie cookie:cookies){
cookie.setMaxAge(0);
}
}
如果cookie 考虑前端被禁掉的话可以考虑参考这段代码
分享到:
相关推荐
遍历这些Cookie,解析出URL,就可以构建历史记录列表。 4. **展示历史记录**:解析出的URL列表可以被用来渲染一个历史记录页面。Servlet会生成一个HTML页面,其中包含用户之前访问过的链接。这些链接可以按访问时间...
2. **管理Cookie集合**:如果用户已经有一个历史记录的Cookie,我们需要将其值解析为URL列表,然后添加新的URL,防止重复并限制数量(例如,限制最近10个页面)。 ```java String history = historyCookie....
除了登录和退出,Cookie还可以用于其他场景,如实现购物车功能,记录用户的浏览历史,或者存储用户的偏好设置。不过需要注意的是,由于Cookie是存储在客户端的,因此敏感信息(如密码)不应直接存储在Cookie中,以免...
Java Servlet和Cookie是Web开发中的两个重要概念,它们在构建动态、交互式的Web应用程序中扮演着关键角色。本文将深入探讨这两个技术,并提供相关的实践应用示例。 **Java Servlet** Java Servlet是一种Java语言...
1. **跟踪用户行为**:Cookie帮助网站记录用户的访问频率、停留时间等,有助于分析用户行为和网站流量。 2. **个性化服务**:通过Cookie,网站可以提供定制化的用户体验,如根据用户喜好显示内容或推荐产品。 3. **...
2. **JavaCookie**:Java中处理Cookie的API,包括`HttpCookie`类,用于创建、修改和解析Cookie。 3. **本地储存**:Cookie是本地存储的一种形式,数据存储在用户的设备上。 4. **自动登录**:通过Cookie实现的自动...
3. **显示历史记录**:找到`searchHistory`后,我们可以将其值解码并展示在页面上,例如在下拉列表或输入框下方,供用户选择。这样,用户就可以快速访问他们之前输入的内容,而无需重新输入。 4. **处理AJAX提交**...
4. **读取Cookie**:服务器可以通过`request.getCookies()`获取所有发送过来的Cookie对象,并进行相应的处理。 #### 示例代码: **设置一个Cookie** ```java Cookie myCookie = new Cookie("color1", "red"); ...
- **个性化推荐**:利用Cookie记录用户的浏览历史和喜好,为用户提供个性化的服务。 - **跨站会话管理**:利用Session来维持用户的会话状态,确保用户在不同页面间的操作能够保持一致性和连贯性。 #### 四、Cookie...
5. 提供个性化服务,如根据用户历史浏览记录推荐内容。 【JSP处理Cookie的方法】 在JSP中,我们可以利用Java Servlet API来创建、读取和修改Cookie。以下是创建和处理Cookie的基本步骤: 1. **创建Cookie** 使用...
当用户返回时,通过读取Cookie中的历史记录,可以展示之前查看过的产品。需要注意的是,Cookie的存储空间有限,因此在实际应用中,可能需要对保存的浏览历史进行适当的限制或清理策略。 **3. 购物车功能实现** 在...
在该场景下,结合Cookie记住用户名的功能,可能意味着系统能够根据用户信息提供个性化的购物体验,如显示历史购买记录或推荐商品。 总之,通过JSP和Cookie,开发者可以实现网站对用户的记忆功能,提升用户体验。但...
当用户访问书籍详情页面时,我们将在服务器端创建一个新的Cookie记录用户的浏览历史: ```java // 假设request和response为Servlet的请求和响应对象 List<String> bookHistory = new ArrayList(); bookHistory.add...
此外,考虑到浏览器还需要处理URL的重定向、cookies管理、历史记录等功能,开发者需要理解`java.net.HttpCookie`和`java.util.ArrayList`等类的应用,以及如何存储和检索用户的浏览历史。 安全性是另一个关键点。...
10. **历史记录与书签**:浏览器应保存用户的浏览历史,实现前进/后退功能。书签功能则需要持久化存储用户的收藏链接,可以使用数据库或文件系统实现。 以上是构建一个简易Java网页浏览器涉及的主要技术点,每个点...
这要求程序具有持久化存储功能,可能使用文件系统(如文本文件或XML文件)或者数据库(如SQLite、MySQL等)来保存用户的历史记录。JAVA提供了JDBC接口,可以方便地与各种数据库进行交互。 4. **用户管理模块**:...
7. **历史记录和书签**:为了实现浏览器的导航功能,需要存储用户的浏览历史和书签。这可以通过自定义的数据结构和持久化机制来实现,例如使用数据库或文件系统。 8. **多线程**:为了提高用户体验,浏览器通常会在...
GET请求通常用于获取资源,它将参数附加到URL上,限制了数据长度,并且请求信息会显示在浏览器的历史记录中,不适用于敏感信息的传递。POST请求则可以发送大量数据,常用于提交表单或上传文件,其参数不会显示在URL...
7. **历史记录和书签**: 一个基本的浏览器应该具备保存用户浏览历史和书签的功能。这需要在Java中实现数据结构(如栈或链表)来存储URL,同时提供界面元素供用户查看和操作。 8. **URL导航和前进/后退**: 用户可以...
PV表可以记录每个页面的浏览次数,而UV表则需要记录访客的唯一标识,如IP地址或者Cookie。 3. **Spring整合**:在Spring框架中,我们可以使用Spring的JdbcTemplate或者MyBatis等ORM工具来简化数据库操作。通过定义...