Este artículo comparte con usted los métodos relevantes para usar cookies para mostrar libros recientemente vistos para su referencia. El contenido específico es el siguiente
1. Paquete de Ben
import java.io.serializable; El libro de clase pública implementa serializable {ID de cadena privada; nombre de cadena privada; precio de cadena privada; Auth de cadenas privadas; Publicar en cadena privada; Descripción de la cadena privada; libro público () {} Public Book (ID de cadena, nombre de cadena, precio de cadena, string auth, string publish, string description) {super (); this.id = id; this.name = name; this.price = precio; this.auth = auth; this.publish = publicar; this.description = Descripción; } public String getDescription () {return Descripción; } public void setDescription (String Descripción) {this.description = Descripción; } public String getId () {return id; } public void setid (ID de cadena) {this.id = id; } public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } public String getPrice () {Return Price; } public void setPrice (precio de cadena) {this.price = precio; } public String getAuth () {return auth; } public void setAuth (string auth) {this.auth = auth; } public String getPublish () {return Publish; } public void setPublish (String Publish) {this.publish = publish; }} 2. Paquete DAO
import java.util.linkedhashmap; import java.util.map; import cn.huiyu.ben.book; public class Bookdao {Mapa estático privado <string, book> bookmap = new LinkedHashmap <String, Book> (); private bookdao () {} static {bookmap.put ("1", nuevo libro ("1", "1111", "11.0", "Zqwang", "111 Press", "111111111")); bookmap.put ("2", nuevo libro ("2", "2222", "22.0", "Zqwang", "22222222222"); bookmap.put ("3", nuevo libro ("3", "3333", "33.0", "Zqwang", "33333333333"); } public static map <string, book> getBooks () {return BookMap; } Public Static Book GetBook (ID de cadena) {return bookmap.get (id); }} 3.servlet
public void doget (httpservletRequest solicitud, httpservletResponse respuesta) arroja servletException, ioexception {respuesta.setContentType ("text/html; charset = utf-8"); // 1. Consulte todos los libros en la base de datos para mostrar map <string, book> map = bookdao.getBooks (); para (map.entry <string, book> Entry: map.entryset ()) {book book = entry.getValue (); Response.getWriter (). Write ("<a href = '"+request.getContextPath ()+"/servlet/bookInfoservlet? id ="+book.getID ()+"'>"+book.getName ()+"</a> <br>"); } respuesta.getWriter (). Write ("<hr>"); // 2. Muestre los libros que he leído antes de la cookie [] cs = request.getcookies (); Cookie findc = null; if (cs! = null) {for (cookie c: cs) {if ("último" .equals (c.getName ())) {findc = c; }}} if (findc == null) {Response.getWriter (). Write ("¡No he leído ningún libro!"); } else {Response.getWriter (). Write ("Los libros que ha navegado: <br>"); Cadena [] ids = findc.getValue (). Split (","); for (string id: ids) {book book = bookdao.getbook (id); respuesta.getWriter (). Write (book.getName ()+"<br>"); }}} 4.Servlet
public void doget (httpservletRequest solicitud, httpservletResponse respuesta) arroja servletException, ioexception {respuesta.setContentType ("text/html; charset = utf-8"); // 1. Obtenga que se lea la identificación del libro, consulte la base de datos para encontrar el libro y genere la información detallada del libro String id = request.getParameter ("id"); Libro book = bookdao.getbook (id); if (book == null) {Response.getWriter (). Write ("¡Este libro no se puede encontrar!"); devolver; } else {Response.getWriter (). Write ("<H1> Título:"+book.getName ()+"</h1>"); Response.getWriter (). Write ("<H3> Autor:"+Book.getAuth ()+"</h3>"); Response.getWriter (). Write ("<h3> Precio de venta:"+book.getPrice ()+"</h3>"); Response.getWriter (). Write ("<H3> Publisher:"+book.getPublish ()+"</h3>"); Response.getWriter (). Write ("<H3> Descripción:"+book.getDescription ()+"</h3>"); } // 2. Envíe cookies para guardar el último libro que lea // --- 1-> 1 // 1 --2,1-> 2,1 // 2,1--3,2,1-> 3,2,1 // 3,2,1-> 3,2,1-> 4,3,2-> 4,3,2 // 4,3,2 --3,4,2-> 3,4,2 IDS de cadena = ""; ";"; Cookie [] cs = request.getCookies (); Cookie findc = null; if (cs! = null) {for (cookie c: cs) {if ("último" .equals (c.getName ())) {findc = c; }}} if (findc == null) {// registros de explicación que no han leído el libro antes de ids += book.getID (); } else {// Explicación registros de libros que se han leído en la historia antes, y se debe calcular un nuevo registro en base a la cadena de historial [] Olds = findc.getValue (). Split (","); StringBuffer Buffer = new StringBuffer (); buffer.append (book.getID ()+","); for (int i = 0; i <olds.length && buffer.ToString (). Split (","). Longitud <3; i ++) {String Old = Olds [i]; if (! Old.equals (book.getId ())) {buffer.append (old+","); }} ids = buffer.substring (0, buffer.length ()-1); } Cookie lastc = new Cookie ("Last", IDS); lastc.setmaxage (3600*24*30); lastc.setPath (request.getContextPath ()); Response.AddCookie (Lastc); }Lo anterior se trata de este artículo. Espero que sea útil para todos aprender a usar cookies para mostrar libros recientemente vistos.