javaweb

一.学习内容
1.会话以及会话管理技术
(1)Cookie对象
(2)Session对象
2.实现购物车的例子
(1)创建Book封装图书信息:Book
(2)创建BookDB,模拟数据库,里面保存图书
(3)提供图书的购买页面:ListBookServlet
(4)添加购物车:PurcharseServlet
(5)回显购物车图书信息:CartServlet
3.编写代码
(1)

package demo;

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;



/**
 * Servlet implementation class LastAccessServlet
 */
@WebServlet({"/last" })
public class LastAccessServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public LastAccessServlet() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("test/html;charset=utf-8");
		System.out.println("收到前端请求");
		Cookie[] cookies=request.getCookies();
		String lastTime=null;
		for(int i=0;cookies!=null && i< cookies.length;i++) {
			String name=cookies[i].getName();
			if("lastAccerss".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("LastAccerss",time);
		cookie.setMaxAge(60*60*24*7);
		response.addCookie(cookie);
	}

	/**
	 * @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)

package demo1;

public class Book {
	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;
	}
}

(3)

package demo1;

import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;

public class BookDB {
	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框架"));
		
	}
	//1.得到所有图书
	public static Collection<Book> getAll(){
		return map.values();
	}
	//2.根据map的key,也就是图书的id,得到某本图书
	public static Book getBook(String id){
		return map.get(id);
	}
	

(4)

package demo1;

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

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Servlet implementation class CartServlet
 */
@WebServlet("/Cart")
public class CartServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("test/html;charset=utf-8");
		PrintWriter out =response.getWriter();
		List <Book> cart=null;
		HttpSession session=request.getSession(false);
		boolean cartFlag=true;
		if(session==null) {
			cartFlag=false;
		}else {
			cart=(List<Book>)session.getAttribute("cart");
			if(cart==null) {
				cartFlag=false;	
			}
		}
		if(!cartFlag) {
			out.print("对不起,你的购物车里面没有图书,请去购买");
		}else {
			out.print("购买图书如下:" +"<br/>");
			for(Book b:cart) {
				out.print("购买的图书:" +b.getName()+"<br/>");
			}
		}
	}

	/**
	 * @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);
	}

}5)

```java
package demo1;

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

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class ListBookServlet
 */
@WebServlet("/List")
public class ListBookServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("test/html;charset=utf-8");
		Collection<Book> books=BookDB.getAll();
		PrintWriter out =response.getWriter();
		out.print("以下是本网站售卖的书籍:"+"<br/><br/>");
		for(Book b:books) {
			String name=b.getName();
			String id=b.getId();
			String url="<a href=/demo1/Purchase?id="+id+">点击购买</a>";
			out.print("图书名称: "+name+" "+url+"<br/><br/>");
		}
	}

	/**
	 * @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);
	}

}

(6)

package demo1;


import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

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 javax.servlet.http.HttpSession;


/**
 * Servlet implementation class PurchaseServlet
 */
@WebServlet("/Pur")
public class PurchaseServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("test/html;charset=utf-8");
		String id =request.getParameter("id");
		if(id==null){
			response.sendRedirect("demo/list");
			return;
		}
 Book book=BookDB.getBook(id);
  HttpSession session=request.getSession();
  List<Book> List=(List<Book>) session.getAttribute("cart");
  if(List==null) {
	  List=new ArrayList<Book>();
	  session.setAttribute("cart", "List");;
  }
List.add(book);
Cookie cookie =new Cookie("JSESSIONID",session.getId());
cookie.setMaxAge(60*60*24*7);
cookie.setPath("demo");
response.addCookie(cookie);
response.sendRedirect("demo1/cart");		
		
	}

	/**
	 * @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);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值