Servlet—Cookie(显示用户上次访问时间、显示商品浏览历史)

Cookie技术实现显示用户上次的访问时间的功能 —————————————Java后台语言————————————— 小编使用的是IDEA编码器,tomcat 8版本的服务器。 简单说明下Cookie类的构造方法,有且仅有一个,具体语法格式如下: public Cookie(java.lang.String name,java.lang.String value) 接下来创建一个LastAccessServlet的Servlet类,该... 阅读详情

1 . 什么是会话?

会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。

1.1 会话过程中要解决的一些问题?

每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,程序要想办法为每个用户保存这些数据。

例如:用户点击超链接通过一个servlet购买了一个商品,程序应该想办法保存用户购买的商品,以便于用户点结帐servlet时,结帐servlet可以得到用户购买的商品为用户结帐。

思考:用户购买的商品保存在request或servletContext中行不行?

假如用使用request保存购买商品的servlet中的信息,当用户访问结账servlet时,又重新创建了一个新的request,所以使用request不行。

使用ServletContext也不行,因为ServletContext是针对整个web应用的。

1.2 保存会话数据的技术

保存会话有两种技术:Cookie和Session。

2. Cookie

Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。

2.1 Cookie的常用方法

public Cookie(String name,String value):Constructs a cookie with a specified name and value.

void setValue(java.lang.String newValue)  :Assigns a new value to a cookie after the cookie is created.

String getValue() : Returns the value of the cookie.

void setMaxAge(int expiry):Sets the maximum age of the cookie in seconds.

int getMaxAge():Returns the maximum age of the cookie, specified in seconds, By default,-1 indicating the cookie will persist until browser shutdown.

void setPath(java.lang.String uri): Specifies a path for the cookie to which the client should return the cookie.

String getPath() :Returns the path on the server to which the browser returns this cookie.

void setDomain(java.lang.String pattern):Specifies the domain within which this cookie should be presented.

String getDomain():Returns the domain name set for this cookie. 

String getName(): Returns the name of the cookie.

2.2  显示用户上次登录的时间

package com.oner.cookie;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//假设CookieDemo这个Servlet代表网站首页
public class CookieDemo extends HttpServlet {

	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");
		
		response.setHeader("Expires", "-1");  
        response.setHeader("Cache-Control", "no-cache");  
        response.setHeader("Pragma", "no-cache"); 

		PrintWriter out = response.getWriter();
		out.print("您上次访问的时间是");

		// 获得用户的时间cookie
		Cookie[] cookies = request.getCookies();
		// 用户第一次访问时并没有带Cookie,所以需要先检查下
		for (int i = 0; cookies != null && i < cookies.length; i++) {
			if (cookies[i].getName().equals("lastAccessTime")) {
				long cookieValue = Long.parseLong(cookies[i].getValue());// 得到了上次访问的时间
				Date date = new Date(cookieValue);
				out.print(date.toString());
			}
		}

		// 给用户发送最新的访问时间
		Cookie cookie = new Cookie("lastAccessTime", System.currentTimeMillis()
				+ "");
		cookie.setMaxAge(1 * 30 * 24 * 3600);// 设置Cookie有效期为一个月
		cookie.setPath("/day07");
		response.addCookie(cookie);
		
	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}


在浏览器地址中输入:http://localhost:8080/day07/CookieDemo,回车:


刷新后:


2.3 Cookie的一些细节

1. 一个Cookie只能标识一种信息,它至少含有一个标识该信息的名称(NAME)和设置值(VALUE)。

2. 一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie。

3. 浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。

4. 如果创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。需要注意,删除cookie时,path必须一致,否则不会删除。

这儿演示下:

先使用火狐浏览器搜索Cookie选项,搜索“lastAccessTime”,发现没有lastAccessTime文件:


在地址栏中输入:http://localhost:8080/day07/CookieDemo,回车:


再次搜索名为“lastAccessTime”的cookie文件,发现确实存在:


说明浏览器确实得到了该cookie,再次刷新地址栏:


说明第二次访问时服务器从浏览器发送到请求中得到了“lastAccessTime”cookie信息。点击“点击上次访问时间”:


地址跳转到了http://localhost:8080/day07/DeleteCookie,说明执行了DeleteCookie这个Servlet,在Cookie选项中搜索“lastAccessTime”这条Cookie,发现没有:



说明删除成功。

2.4 显示商品浏览历史记录

假如一个网上书店需要在用户每次登陆主页后显示用户曾经浏览过的一些书籍,该怎么实现呢?

思考下,这儿至少需要两个Servlet,一个是ServletA,一个是ServletB。ServletA代表网上书店的主页,主要是用于显示书店的所有书籍以及曾经浏览的一些书籍(按照浏览时间的递减顺序显示,也就是最后浏览的书籍显示在最上面):


ServletB主要用于显示书籍的详细信息:


显示书店的所有书籍以及显示书籍的详细信息很容易实现,可以从数据库中得到,这儿用一个Book类和DB类来模拟数据库:

class Book {

	private String id;
	private String name;
	private String author;
	private String description;

	public Book() {
		super();
	}

	public Book(String id, String name, String author, String description) {
		super();
		this.id = id;
		this.name = name;
		this.author = author;
		this.description = description;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAuthor() {
		return author;
	}

	public void setAuthor(String author) {
		this.author = author;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

}


显示所有书籍名称:

要在ServletA中显示所有的书籍名称,只需要输出书名就可以了,但是想要在点击之后显示该书籍的详细信息,必须要将该书籍的id在超链接中带给ServletB,这样ServletB才能知道显示哪个书籍的详细信息。

		PrintWriter out = response.getWriter();

		out.write("本网站有如下书籍:<br/>");
		Map<String, Book> map = DB.getAll();
		Set<Map.Entry<String, Book>> set = map.entrySet();
		for (Map.Entry<String, Book> entry : set) {
			Book book = entry.getValue();
			// 这儿的超链接打开方式设为在新的窗口打开
			// 并且需要将每次所浏览书的id给ServletB
			out.print("<a href='/day07/ServletB?id=" + book.getId()
					+ "' target='_blank'>" + book.getName() + "</a>");
			out.write("<br/>");
		}


显示书籍详细内容:

在ServletB中,从用户点点击的超链接中得到想要查看书籍的id,然后由该id输出该书籍的详细信息:

		PrintWriter out = response.getWriter();

		String id = request.getParameter("id");
		Book book = DB.getAll().get(id);

		out.write("您要查看的书的详细信息如下:<br/><br/>");
		out.print("书名:" + book.getName() + "<br/>");
		out.print("作者:" + book.getAuthor() + "<br/>");
		out.print("描述:" + book.getDescription() + "<br/>");


以上实现了显示所有书籍名称以及显示书籍详细内容,如果想要实现用户浏览过的书籍该怎么实现呢?

可以创建一个名为“bookHistory”的Cookie,它的值为浏览过书籍的id。这样用户在浏览器中每次(第一次访问除外)访问一本书籍时,服务器这端都可以从这次的request中得到“bookHistory”的值,也就是之前浏览书籍的id,然后就能拿到用户之前访问的书籍有哪些。

这里设定bookHistory的存放的书籍id个数最多为3(也就是说在浏览器页面只能显示最近的3次浏览历史),并且id之间以“,”分割。具体怎么实现呢?

在ServletB中就是拿到用户最新访问书籍的id,并根据之前的bookHistory值来构造新的bookHistory,然后写给浏览器。

在ServletA中就是从用户的本次request中得到bookHistory,也就是拿到了之前浏览过的书籍的id,然后由id将书名输出即可。

ServletB:

// 根据当前浏览书籍的id和本次request中包含的bookHistory来构建一个新的bookHistory
		String cookieValue = buildCookie(id, request);
		Cookie cookie = new Cookie("bookHistory", cookieValue);
		
		cookie.setMaxAge(1 * 30 * 24 * 3600);
		cookie.setPath("/day07");

		response.addCookie(cookie);


ServletA:

		out.print("<br/><br/>您曾经浏览过的书籍:<br/>");
		Cookie[] cookies = request.getCookies();
		for (int i = 0; cookies != null && i < cookies.length; i++) {
			if (cookies[i].getName().equals("bookHistory")) {
				String[] ids = cookies[i].getValue().split("\\,");// 得到浏览过所有书籍的id集合{2,3,1}
				for (String id : ids) {
					Book book = DB.getAll().get(id);
					out.print(book.getName() + "<br/>");
				}
			}
		}


完整的代码如下:

ServletA:

package com.oner.cookie;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//代表书店首页的Servlet
public class ServletA extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();

		// 1. 输出网站的所有书籍
		out.write("本网站有如下书籍:<br/>");
		Map<String, Book> map = DB.getAll();
		Set<Map.Entry<String, Book>> set = map.entrySet();
		for (Map.Entry<String, Book> entry : set) {
			Book book = entry.getValue();
			// 这儿的超链接打开方式设为在新的窗口打开
			// 并且需要将每次所浏览书的id给ServletB
			out.print("<a href='/day07/ServletB?id=" + book.getId()
					+ "' target='_blank'>" + book.getName() + "</a>");
			out.write("<br/>");
		}

		// 4. 从浏览器带来的Cookie中,得到用户曾经看过的书籍
		out.print("<br/><br/>您曾经浏览过的书籍:<br/>");
		Cookie[] cookies = request.getCookies();
		for (int i = 0; cookies != null && i < cookies.length; i++) {
			if (cookies[i].getName().equals("bookHistory")) {
				String[] ids = cookies[i].getValue().split("\\,");// 得到浏览过所有书籍的id集合{2,3,1}
				for (String id : ids) {
					Book book = DB.getAll().get(id);
					out.print(book.getName() + "<br/>");
				}
			}
		}

	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

class DB {

	// 使用LinkedHashMap是为了保证存储和取出的顺序一致
	private static Map<String, Book> map = new LinkedHashMap<String, Book>();

	static {

		map.put("1", new Book("1", "javaweb开发", "老张", "一本好书"));
		map.put("2", new Book("2", "spring开发", "老黎", "一本好书"));
		map.put("3", new Book("3", "hibernate开发", "老佟", "一本好书"));
		map.put("4", new Book("4", "struts开发", "老毕", "一本好书"));
		map.put("5", new Book("5", "ajax开发", "老张", "一本好书"));

	}

	public static Map<String, Book> getAll() {
		return map;
	}

}

class Book {

	private String id;
	private String name;
	private String author;
	private String description;

	public Book() {
		super();
	}

	public Book(String id, String name, String author, String description) {
		super();
		this.id = id;
		this.name = name;
		this.author = author;
		this.description = description;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAuthor() {
		return author;
	}

	public void setAuthor(String author) {
		this.author = author;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

}


ServletB:

package com.oner.cookie;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//显示商品详细信息的Servlet
public class ServletB extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();

		// 2. 根据用户带过来的id,显示商品的详细信息
		String id = request.getParameter("id");
		Book book = DB.getAll().get(id);

		out.write("您要查看的书的详细信息如下:<br/><br/>");
		out.print("书名:" + book.getName() + "<br/>");
		out.print("作者:" + book.getAuthor() + "<br/>");
		out.print("描述:" + book.getDescription() + "<br/>");

		// 3. 构建Cookie,回写给浏览器
		// 根据当前浏览书籍的id和本次request中包含的bookHistory来构建一个新的bookHistory
		String cookieValue = buildCookie(id, request);
		Cookie cookie = new Cookie("bookHistory", cookieValue);
		
		cookie.setMaxAge(1 * 30 * 24 * 3600);
		cookie.setPath("/day07");

		response.addCookie(cookie);

	}

	private String buildCookie(String id, HttpServletRequest request) {

		// bookHistory=null 1 bookHistory=1
		// bookHistory=3_1_5 1 bookHistory=1_3_5
		// bookHistory=3_2_5 1 bookHistory=1_3_2
		// bookHistory=3_2 1 bookHistory=1_3_2

		String bookHistory = null;
		Cookie[] cookies = request.getCookies();

		// 从浏览器带来的cookie中得到bookHistory,并将其赋值给本地变量bookHistory
		for (int i = 0; cookies != null && i < cookies.length; i++) {
			if (cookies[i].getName().equals("bookHistory")) {
				bookHistory = cookies[i].getValue();
			}
		}

		// ①如果bookHistory=null,说明浏览器之前并没有访问过本网站的书籍,所以返回当前浏览的书籍的id
		if (bookHistory == null) {
			return id;
		}

		// bookHistory字符串中包含的是之前浏览书籍的所有id,且以“,”分开
		// 所以可以将其切分成一个数组
		String[] srcArray = bookHistory.split("\\,");
		// 将数组转成List集合
		List<String> srcList = Arrays.asList(srcArray);
		// 查看asList方法的源码,知道该方法返回的其实是一个ArrayList
		// 由于LinkedList集合的增删快,所以可以将ArrayList集合转成LinkedList
		LinkedList<String> list = new LinkedList<String>(srcList);

		// ②如果bookHistory中包含当前浏览书籍的id,那么就将当前浏览书籍的id放在最前面
		if (list.contains(id)) {
			list.remove(id);
			list.addFirst(id);
		} else {
			// ③如果bookHistory中包含的书籍id大于等于3,则需要移去最后的id,并将当前浏览书籍的id放在最前面
			if (list.size() >= 3) {
				list.removeLast();
				list.addFirst(id);

			} else {
				// ④bookHistory包含的书籍id小于3,且不含当前浏览书籍的id,则直接将当前浏览书籍的id加入到最前面
				list.addFirst(id);
			}
		}

		StringBuffer sb = new StringBuffer();
		for (String l : list) {
			sb.append(l).append(",");
		}

		// 去掉左后一个无用的逗号
		return sb.deleteCharAt(sb.length() - 1).toString();
	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}


测试:

打开httpwatch,在浏览器地址中输入:http://localhost:8080/day07/ServletA,回车:



点击spring开发这本书籍,浏览器开启了一个新的页面显示这本书的详细信息:


查看httpwatch:


从响应头Set-Cookie中可以看出来,服务器发送了一个名为“bookHistory”,值为2的Cookie。其实这时候,浏览器会将这个cookie缓存到本地磁盘中。再次回到主页,点击javaweb开发这本书,发现浏览器开启了一个新的页面显示这本书的详细信息:


查看httpwatch:


从发送头Cookie可以看到,bookHistory=2,说明浏览器这次是携带着上次缓存到本地磁盘的cookie来访问的;从响应头的Set-Cookie可以看出,bookHistory=“1,2”,由此说明了ServletB更新了bookHistory,将其值赋为本次访问的书籍id1以及之前访问的书籍id2。这时回到主页刷新下:




请设计一个类,使用Cookie技术实现显示用户上次访问时间的功能。(JAVA_Web)(超详解加注意点) 请设计一个类,使用Cookie技术实现显示用户上次访问时间的功能。 阅读详情

相关推荐

动态网站开发05:会话及会话技术

目标:了解会话的概念,能够知道会话用于做什么在日常生活中,从拨通电话到挂断电话之间的一连串的你问我答的过程就是一个会话。在打电话过程中,通话双方会有通话内容,同样,在客户端与服务器交互的过程中,也会产生一些数据。例如,用户甲和乙分别登录了购物网站,甲购买了一个iPhone手机,乙购买了一个iPad,当这两个用户结账时,Web服务器需要对用户甲和乙的信息分别进行保存。为了保存会话过程中产生的数据,Servlet提供了两个用于保存会话数据的对象,分别是Cookie和Session。

justin02191004的博客 257

[Web程序设计]实验:会话技术应用

掌握Cookie和session两种会话跟踪技术和它们的应用和区别。掌握Cookie和session两种会话的应用和区别。请设计一个类,使用Cookie技术实现显示用户上次访问时间的功能:要求如下: 创建一个LastAccessServlet类,使其继承HttpServlet类并重写该类的doGet()方法。 在doGet()方法中,使用request.getCookies()得到所有cookie形成的cookie数组,并进行遍历。请设计一个程序,使用Session技术实现购物车功能。

各类程序设计成品、文档、学习资料 1348

JavaWeb 使用Cookie实现——显示用户上次访问时间(教材学习笔记)

当用户访问一些web应用时,会自动显示该用户上次登陆的时间,使用Cookie技术可以实现这一要求 一、创建Servlet 在eclipse中创建web-chapter05的项目,并在项目下创建一个cn.itcast.chapter05.cookie.example的包,并在包中编写一个LastAccessServlet的Servlet类,该类主要是获取Cookie信息并将当前时间作为Cooki...

来自师范的学渣 1万+

javaweb学习总结 Cookie案例——显示用户上次访问时间

当访问某些web应用可显示用户上次访问时间,利用cookie实现.设置cookie的name为lastAccess,value的值为lastAccessTime。 package cn.edu.bdu.mc; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import ...

寨板p45黑苹果10.12.6 988

Cookie应用之用户上次访问时间、用户浏览记录

一、用户上次访问时间: 1、需求及分析图: 2、功能实现: 1)代码部分:package sram.cookie; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.Ser

一点一滴 4797

通过Cookie记录用户上次访问时间的Java Web实例

在Web应用中,Cookie是客户端与服务器之间交换信息的简单文本文件。虽然它们为我们提供方便,但同时也带来了安全风险。了解常见的安全漏洞和攻击方式对于提高Web应用的安全性至关重要。

weixin_42168902的博客 990

保存会话数据——cookie学习

Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。 javax.servlet.http.Cookie类用于创建一个Cookie,response接口也中定义了一个addCookie方法,它用于在其响应头中增加一个相应的Set-Cookie头字段...

weixin_34221773的博客 166

JavaScript Cookie显示用户上次访问的时间和次数

用cookies记录用户的访问时间与次数,然后再次访问时,在读取。

JavaWeb——实现记录并显示用户上次访问的时间

需求分析: 1. 可以采用Cookie来完成 2. 在服务器中的Servlet判断是否有该用户的cookie 1. 有:不是第一次访问 1. 响应数据:欢迎回来,用户的名字,上次访问时间为yyyy年MM月dd日 HH:mm:ss 2. 写回Cookie:用户名=yyyy年MM月dd日 HH:mm:ss 2. 没有:是第一次访问 1. 响应数据:您好,欢迎您首次访问 2. 写回Cookie:用户名=...

鹿谷門実的博客 6197

Redis+QMT实战:如何用Stream模式实现聚宽策略的毫秒级跟单(附完整代码)

本文详细介绍了如何利用Redis Stream模式构建一个低延迟、高可靠的量化交易信号中继系统,实现从聚宽策略到本地QMT的毫秒级跟单。通过对比传统方案,解析了Redis Stream在消息持久化、消费组和显式确认方面的核心优势,并提供了完整的架构设计思路与核心代码实现,帮助量化开发者解决云端策略信号稳定传递至本地实盘的难题。

weixin_29280657的博客 475

手机相机基础技术解析:从硬件到算法的全面指南

手机相机的成像过程可简化为的链路,其核心硬件包括 镜头、CMOS传感器、ISP(图像信号处理器) 以及配套的软件算法。

weixin_44239603的博客 2447

Cookie案例-记录用户上次访问的时间+商品的浏览记录

使用cookie来记录用户上次访问浏览器的时间 cookie工具类:从cookie数组中获取指定名称的cookie package com.utils; import javax.servlet.http.Cookie; public class MyCookieUtil { public static Cookie getCookieByName(Cookie[] cookies,S...

Tommy5553的博客 1026

产生式系统的完整示例——医疗诊断系统(附python代码)

发烧(Fever)、咳嗽(Cough)、皮疹(Rash)、喉咙痛(SoreThroat)、头痛(Headache)、流涕(RunnyNose)、呼吸困难(ShortnessOfBreath)、白细胞计数高(HighWBC)、接触流感患者(ContactFlu)、接触麻疹患者(ContactMeasles)。(2)若规则库中存在尚未使用过的规则,而且它的前提(前件)可与综合数据库中的已知事实匹配,则转第(3)步;(3)执行当前选中的规则,并对该规则做上标记,把该规则执行后得到的结论送入综合数据库中。

搏博的专栏 1701

cookie-jsp实现记录用户上次访问时间

步骤分析: 1.创建一个serlvet RemServlet 路径:/rem 2.在servlet中: 获取指定cookie 例如:名称为 lastTime request.getCookies() 判断cookie是否为空 若为空:提示信息 第一次访问 若不为空: 获取此cookie的value 展示信息:你上次访问时间是.... 将这次访问时间记录,写会浏览器 代码: ...

Those who achieve great thing do not stick to trifles 3709

告别手动处理:用 Bruker NSMatlabUtilities 工具箱批量分析 AFM 力曲线数据的实战案例

本文介绍了如何使用 Bruker NSMatlabUtilities 工具箱实现 AFM 力曲线数据的批量分析,解决传统手动处理耗时且易出错的问题。通过实战案例展示工具箱的核心功能,包括数据读取、力曲线分析和可视化,帮助科研人员提升数据处理效率和准确性。

weixin_28362173的博客 213

8、对比 LightGBM、XGBoost 和深度学习

本文对比了LightGBM、XGBoost和深度学习模型(特别是TabTransformer)在处理表格数据时的性能差异。从模型复杂度、数据准备、训练时间、准确性和适用场景等方面进行分析,重点探讨了三者在人口普查收入预测任务中的表现。文章详细介绍了XGBoost与LightGBM的核心特性与区别,深入讲解了TabTransformer的架构与实现,并涵盖了分类特征编码、缺失值处理和类别不平衡等关键数据预处理技术,为选择合适的表格数据建模方法提供了实践指导。

julia4scientist的博客 120

利用cookie技术模拟上次登录时间显示

本实验是基于Java web 中的cookie技术,实现我们在网页很常见的用户上次登录时间。此技术算是简单servlet技术之一,实践起来很容易上手,且能较深入的理解servlet技术的原理与使用。此实验只是进行简单的模拟,目的是为了让大家能够了解熟悉并且简单上手servlet技术和cookie技术。

ZHU_6的博客 1502

如何使用 Python 爬虫爬取滴滴打车信息:获取司机和乘客数据

滴滴打车作为中国最大的打车平台之一,提供了丰富的司机和乘客数据,包括司机的车辆信息、乘客的评价、行程数据等。公开的司机和车辆信息(如司机的名字、车辆类型、评价等)可以通过网页直接获取,而乘客的个人信息和具体行程数据通常会受到隐私保护。在滴滴打车的网页中,司机的信息可能以特定的 HTML 标签存在,例如包含司机名称、车辆类型、车辆等级等信息。我们需要分析网页的 HTML 结构,找到这些数据所在的标签。同时,对于涉及到隐私的用户数据(如乘客的行程信息、用户评价等),我们必须特别谨慎,避免侵犯他人的隐私。

2201_76125261的博客 1917

Cookie记录用户上次访问时间

本次Servlet练习是实现Cookie记录用户上次访问时间,如果用户是第一次访问显示首次访问,若不是则记录上次访问时间进行数据回显。有不足的地方多多批评指教。

Fireloli7的博客 1923

Qt C++ 的虚拟演播室系统

**数据流转**:OpenCV 处理的图像格式通常是 `cv::Mat`,而 Qt 3D 渲染需要 `QImage` 或 `QTexture2D`。// 临时用颜色代替。// 前景在背景前面。#### 3.3 主窗口与 Qt 3D 集成 (`mainwindow.h` / `.cpp` / `.ui`)* **更复杂的 3D 场景**:加载 3D 模型(.obj, .gltf 等)作为背景和道具。1. **构建项目**:确保 `.pro` 文件中的 OpenCV 路径配置正确,然后构建项目。

寒寒豆豆软件公司的博客 111

使用 Simulink/Simscape Electrical/Stateflow,构建一个并网逆变器短路故障动态响应与恢复策略仿真模型

本文基于Simulink平台,详细介绍了并网逆变器短路故障的动态响应与恢复策略仿真方法。主要内容包括:1)构建包含热模型的高精度逆变器模型;2)模拟IGBT击穿和桥臂直通两种短路故障;3)设计基于Stateflow的微秒级快速保护逻辑;4)实现放电、去磁、自检、重启的完整恢复流程。仿真结果表明,所提出的保护方案能在200μs内有效限制故障电流,避免器件永久损坏,并通过标准化恢复流程实现系统安全重启。文章还探讨了硬件保护协同、多级保护和预测保护等高级策略,为电力电子系统安全防护提供了实用解决方案。

xiaoheshang_123的博客 107

Java Web显示用户上次访问时间(实例一)

**利用Cookie技术实现显示用户上次访问的功能** import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.C...

yueqingchun的博客 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

使用cookie显示最近访问的时间和商品浏览记录

一、显示最近访问的时间 判断账号是否正确 如果正确,则获取cookie。 但是得到的cookie是一个数组, 我们要从数组里面找到我们想要的对象。 如果找到的对象为空,表明是第一次登录。那么要添加cookie 如果找到的对象不为空, 表明不是第一次登录。 获取上次登录的时间并且更新登录时间 前端页面login.html: <form action="loginServlet" method="post"> 用户名:<input type="text" name="username

qq_45100706的博客 750

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

显示用户上次浏览过的商品

显示用户上次浏览过的商品 显示上次浏览商品的实现过程 具体事例代码: 1、 package com.hbsi.domain; public class Book { private String id; private String name; private String author; private String descript; public

fengdongkun的专栏 1388

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: Servlet—HttpServletRequest
下一篇: Servlet—Session
Wang_AI
博客等级 码龄12年 988粉丝 162原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值