1.将商品添加到购物车
点击加入购物车提交到servlet,在servlet将购物的商品存入到session
创建一个map集合,key是商品的名称,value是数量
代码:
public class CartServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //接收商品名称 String name = new String(request.getParameter("name").getBytes("iso-8859-1"), "utf-8"); //创建map集合用于保存购物信息 Map<String, Integer> map = (Map<String, Integer>) request.getSession().getAttribute("cart"); //如果没有这个map就创建一个 if(map == null) { map = new LinkedHashMap<String, Integer>(); } //判断购物车中是否已经买了该物品 if(map.containsKey(name)) { Integer count = map.get(name); count++; map.put(name, count); }else { map.put(name, 1); } //保存到session域中 request.getSession().setAttribute("cart", map); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
2.session
session的创建:服务器第一次调用getSession()创建session
三种情况销毁session:
1.session过期,默认过期时间为30分钟
2.非正常关闭服务器,如果正常关闭session序列化到硬盘
3.手动调用session.invalidate
session的作用范围:多次请求,一次会话
3.jsp
java服务器端的页面
执行jsp:jsp翻译成servlet,编译这个servlet的类,生成class文件,得到执行
4.jsp的脚本
<%! %>:翻译成servlet中的成员内容,定义变量,方法,类
<% %>:翻译成servlet中service方法内部的内容,定义类,变量
<%= %>:翻译成servlet中service方法中out.print();
jsp的注释:<%--jsp的注释--%>
5.jsp中的三个指令
language:jsp脚本中使用的语言
contentType:设置浏览器打开这个jsp的时候采用的默认的字符集编码
pageEncoding:设置文件保存到本地硬盘,以及生成servlet后,servlet保存到硬盘上的编码
import:在jsp中引入类对象,但是import可以出现多次
extends:设置jsp翻译成servlet后继承的类,默认值:org.apache.jasper.runtime.HttpJspBase,这个值要想修改,这个类必须是HttpServlet的子类
autoFlush:设置jsp的缓存自动刷出,true:自动刷出
buffer:设置jsp的缓冲区的大小,默认8kb
* 设置全局的错误友好页面:
* 在web.xml中设置:
<error-page> <error-code>404</error-code> <location>/404.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/500.jsp</location> </error-page>
7.jsp的内置对象
* request HttpServletRequest getParameter(),setAttribute(String name,Object value);
* response HttpServletResponse setHeader(String name,String value);getOutputStream();getWriter();
* session HttpSession setAttribute();getAttribute();
* application ServletContext setAttribute();getAttribute();
* page Object toString();wait();
* pageContext PageContext setAttribute();getAttribute();
* config ServletConfig getServletName();getServletContext();
* out JspWriter write(),print();
* exception Throwable getMessage(),getCause(); 设置isErrorPage=”true”
page内置对象 :真实对象是Object,就是JSP翻译成Servlet后的类的引用.
8.jsp的四个域中存取数据
JSP的四个域范围:
* PageScope :当前页面中有效. pageContext PageContext
* RequestScope :一次请求范围. request HttpServletRequest
* SessionScope :一次会话范围. session HttpSession
* ApplicationScope :应用范围 application ServletContext
9.jsp的动作标签
<jsp:forward /> :用于页面的转发.
<jsp:include /> :用于页面的包含.(动态包含)
<jsp:param /> :用于带有路径的标签下,传递参数.
<jsp:useBean /> :用于在JSP中使用JavaBean.
<jsp:setProperty /> :用于在JSP中向JavaBean设置属性的.
<jsp:getProperty /> :用于在JSP中获得JavaBean的属性.