显示用户上次浏览过的商品
来源:互联网 发布:papership mac 破解 编辑:程序博客网 时间:2024/05/24 15:36
显示用户上次浏览过的商品
显示上次浏览商品的实现过程
具体事例代码:
1、
package com.hbsi.domain;
public class Book {
private String id;
private String name;
private String author;
private String descript;
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 getDescript() {
return descript;
}
public void setDescript(String descript) {
this.descript = descript;
}
}
2、
package com.hbsi.util;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class DBManager {
/**
* @param args
*/
static String driver;
static String url;
static String username;
static String password;
static{
InputStream in=DBManager.class.getClassLoader().getResourceAsStream("db.properties");
Properties pro=new Properties();
try {
pro.load(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
driver = pro.getProperty("driver");
url = pro.getProperty("url");
username = pro.getProperty("username");
password = pro.getProperty("password");
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConnection(){
Connection con=null;
try {
con=DriverManager.getConnection(url,username,password);
System.out.println("chenggongle");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
public static void closeDB(Connection con,Statement st,ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(st!=null){
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(con!=null){
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
getConnection();
}
}
3、
package com.hbsi.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.hbsi.domain.Book;
import com.hbsi.util.DBManager;
public class BookDao {
public List<Book> getAll() {
Connection conn = null;
PreparedStatement pt = null;
ResultSet rs = null;
try {
conn = DBManager.getConnection();
String sql = "select * from book";
pt = conn.prepareStatement(sql);
rs = pt.executeQuery();
List<Book> list = new ArrayList<Book>();
while (rs.next()) {
Book b = new Book();
b.setId(rs.getString("id"));
b.setName(rs.getString("name"));
b.setAuthor(rs.getString("author"));
b.setDescript(rs.getString("descript"));
list.add(b);
}
return list;
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
DBManager.closeDB(conn, pt, rs);
}
}
public Book getBook(String id) {
Connection conn = null;
PreparedStatement pt = null;
ResultSet rs = null;
try {
conn = DBManager.getConnection();
String sql = "select * from book where id=?";
pt = conn.prepareStatement(sql);
pt.setString(1, id);
rs = pt.executeQuery();
//Book b = null;
if(rs.next()){
Book b = new Book();
b.setId(rs.getString("id"));
b.setName(rs.getString("name"));
b.setAuthor(rs.getString("author"));
b.setDescript(rs.getString("descript"));
return b;
}
return null;
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
DBManager.closeDB(conn, pt, rs);
}
}
public static void main(String [] args){
BookDao db = new BookDao();
Book b = db.getBook("2");
System.out.println(b.getName());
}
}
4、
package com.hbsi.servlet;
import java.io.IOException;
import java.io.PrintWriter;
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;
import com.hbsi.dao.BookDao;
import com.hbsi.domain.Book;
public class CookieDemo1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//显示所有书名
out.print("本网站的商品有:<br/>");
BookDao bd = new BookDao();
List<Book> list = bd.getAll();
for(Book book:list){
//System.out.println(book.getId());
//out.print("<a href='/BookHistory/servlet/CookieDemo2'?id="+book.getId()+">"+book.getName()+"</a><br/>");
out.print("<a href='/BookHistory/servlet/CookieDemo2?id="+book.getId()+"' target='_blank'>"+book.getName()+"</a><br/>");
}
//显示浏览过的书名 bookhistory=1,2,3
out.print("你浏览过的商品:<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(",");
for(String id:ids){
Book book = bd.getBook(id);
out.print(book.getName()+"<br/>");
}
}
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
package com.hbsi.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.LinkedList;
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 com.hbsi.dao.BookDao;
import com.hbsi.domain.Book;
public class CookieDemo2 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//显示书的详细信息,根据id获取
String id = request.getParameter("id");
System.out.println(id);
BookDao bd = new BookDao();
Book book = bd.getBook(id);
System.out.println(book);
out.print("书号:"+book.getId()+"<br/>");
out.print("书名:"+book.getName()+"<br/>");
out.print("作者:"+book.getAuthor()+"<br/>");
out.print("描述:"+book.getDescript()+"<br/>");
//将书号写入cookie
//bookhistory=null 1 1
//bookhistory=2,3,1 1 1,2,3
//bookhistory=2,3,5 1 1,2,3
//bookhistory=2,3 1 1,2,3
String cookieValue = buildCookValue(id,request);
Cookie cookie = new Cookie("bookhistory",cookieValue);
cookie.setMaxAge(30*24*3600);
cookie.setPath("/BookHistory");
response.addCookie(cookie);
}
public String buildCookValue(String id,HttpServletRequest request){
String bookhistory=null;
Cookie[] cookies = request.getCookies();
for(int i=0;cookies!=null && i<cookies.length;i++){
if(cookies[i].getName().equals("bookhistory")){
bookhistory = cookies[i].getValue();
}
}
if(bookhistory == null){
return id;
}
LinkedList<String> list = new LinkedList(Arrays.asList(bookhistory.split(",")));
if(list.contains(id)){
list.remove(id);
list.addFirst(id);
}else{
//bookhistory=2,3,5 1 1,2,3
//bookhistory=2,3 1 1,2,3
if(list.size()>=3){
list.removeLast();
list.addFirst(id);
}else{
list.addFirst(id);
}
}
StringBuffer sb = new StringBuffer();
for(String bid: list){
sb.append(bid+",");
}
return sb.deleteCharAt(sb.length()-1).toString();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
- 显示用户上次浏览过的商品
- Cookie的应用:显示用户上次浏览过的商品
- cookie案例之显示用户上次浏览过的商品
- 显示浏览过的商品
- 显示上次浏览过的商品信息
- cookie应用 显示上次浏览商品的实现过程
- 利用cookie显示浏览过的商品
- 显示浏览过的商品--Servlet代码
- Servlet—Cookie(显示用户上次访问时间、显示商品浏览历史)
- 利用Cookie,实现动态显示用户曾经浏览过的商品
- “浏览过该商品的用户还浏览了”的商品推荐
- cookie之用户浏览过的商品(Dm)
- 记录浏览过的商品
- 记录浏览过的商品
- “购买过该商品的用户还浏览了”的商品推荐功能实现
- 利用cookie显示上次浏览的时间
- 最近浏览过的商品JS代码
- 实现查看近期浏览过的商品
- 何必伤情的伤感QQ心情日志发布:爱情,至少我挽留过
- YUV格式详解
- 如何使进程运行在后台
- Android viewStub
- POJ3258-River Hopscotch
- 显示用户上次浏览过的商品
- 解析:Program received signal: “EXC_BAD_ACCESS"
- GNU/Linux 常用命令与工具备忘
- 解决VC6.0用opencv无法打开avi文件的方法
- 研究Launcher源代码的资源
- Android 万能Get请求Json方法
- POJ 2594 Treasure Exploration
- TP4056大电流1A使用注意事项
- JavaScript绘图库 Raphael