javaweb

1.Cookie对象:

cookie是一种会话技术,它用于将会话过程中的数据保存到用户的浏览器中,从而使浏览器和服务器可以更好的地进行数据交互;

创建Serlet:

创建一个chapter05项目,创建一个自己喜欢的包,在该包中编写一个为LastAccessSerclet的Servlet类,实现获取Cookiie信息并将当前时间Cookie值发送给客户端;

代码如下:

package chapter05.access;
 
import java.io.IOException;
import java.util.Date;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import jdk.javadoc.doclet.Reporter;
 
/**
 * Servlet implementation class LastAccessServlet
 */
@WebServlet("/LastAccessServlet")
public class LastAccessServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LastAccessServlet() {
        // TODO Auto-generated constructor stub
    }
 
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setContentType("text/html;charset=utf-8");
		Cookie[ ] cookies=request.getCookies();
		String lastTime=null;
		for (int i = 0; cookies != null&&i<cookies.length; i++) {
			String name = cookies[i].getName();
			if ("lastaccess".equals(name)) {
				lastTime=cookies[i].getValue();
			}
		}
		if (lastTime==null) {
			response.getWriter().print("您是第一次访问本网站!");
		}else {
			response.getWriter().print("您上次访问的时间是:"+lastTime);
		}
		String time = String.format("%tF%<tT", new Date());
		Cookie cookie=new Cookie("lastaccess", time);
		Cookie cookie1 =new Cookie("dashuju","2004");
		response.addCookie(cookie);
		response.addCookie(cookie1);
	}
 
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
 
}

实现结果:
在这里插入图片描述

第二次访问会刷新时间:

在这里插入图片描述

2.Session对象:

Cookie技术可以将用户的信息保存在各自的浏览器中,并且可以在多次请求下实现数据的共享,但是,如果传递的信息比较多,使用Cookie技术显然会增大服务器程序处理的难度,这时,可以使用Session技术;

实现购物车:

创建book类:

package chpter05.session;
 
import java.io.Serializable;
 
public class Book implements Serializable{
	private static final long serialVersionUID = 1L;
	private  String id;
	private  String name;
	public  Book() {
	}
	public  Book(String id,String name) {
		this.id=id;
		this.name=name;
	}
	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;
	}
 
}

创建数据库模拟类:

package chpter05.session;
 
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
 
 
public class BookBD {
private static  Map<String,Book> map = new LinkedHashMap<String,Book>();
	static {
		map.put("1", new Book("1","javaweb开发"));
		map.put("2", new Book("2","jdbc开发"));
		map.put("3", new Book("3","java基础"));
		map.put("4", new Book("4","struts框架"));
		map.put("5", new Book("5","hibernate开发"));
	}
	public static Collection<Book> getAll() {
		return map.values();
	}
	public static Book  getBook(String id) {
		return map.get(id);
	}
}

创建Servlet:

1.创建一个名为ListBookServlet的类,用于操作单击 “购买” 链接,就可以把书加进购物车;
在这里插入图片描述

实现效果:
在这里插入图片描述

创建一个名为PurchaseServlet的servlet类:

在这里插入图片描述

此代码的作用是用来保存到Session对象中;

创建一个名称为CartServlet的Servlet类,显示用户义卖图书列表:
在这里插入图片描述

代码实现效果:

在这里插入图片描述

实现用户登录:
1.创建封装用户信息类:
在这里插入图片描述

2.创建indexServlet类显示网站首页,如果用户没有登陆,那么首页界面提示用户登录,否则,显示用户已经登录信息,判断用户是否真的登录:

在这里插入图片描述

3.LoginServlet,用于显示用户登录后的界面:

在这里插入图片描述

4.创建LogouServlet类会将用户信息移除,并转跳到首页:
在这里插入图片描述

5.创建名称login.html的创业面,页面包含表单信息:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值