还是存在一些问题(比如clear函数没效果、乱码,单独测试也没,确实找不到问题),路过的给解决下。。。

第一部分     会话控制

会话跟踪:

  • 使用隐藏表单字段
  • URL重写,实际就是直接把状态信息加到URL
  • 持久Cookie
  • 会话HttpSession

        今天写filter的时候找不到web.xml了,急坏了我,原来是我在创建动态网站项目的时候,输入项目名称后就立刻按finish了,我刚才创建了另一个项目,一步一步next地来,在最后那步可以是否创建web.xml文件,最后把这个web.xml文件拷贝到原来项目的WEB-INF目录下就正常运行了(servlet3.0)。

页面编码问题:

        首先,在 eclipse 中配置 workspace 项下 text file encoding 属性的值来决定此工作区间下所有的 eclipse 项目的文档的编码属性。 Window-->Preferences-->General-->Workspace, 在 workspace 下配置 text file encoding 的属性值是 other, 在 other 中选择 ”utf-8”, 配置完成后,点出 ok 保存。

         其次,windows->Preferences...打开"首选项"对话框,左侧导航树,导航到 general->Content Types,右侧Context Types树,点开Text,选择Java Source File,在下面的Default encoding输入框中输入UTF-8,点Update,则设置Java文件编码为UTF-8。已经搞好的就用批量转码工具。

session的常用方法:

1、 getAttribute():从session中获取以前存储的值
2、 getAttributeNames():返回session中所有属性的名称
3、 setAttribute():将键与值关联起来,存储进session
4、 removeAttribute():删除session中存储的对应键的值
5、 invalidate():删除整个session及其存储的键值
6、 logout():注销当前用户
7、 getId():获取每个session对应的唯一ID
8、 getCreationTime():获取session创建的时间
9、 getLastAccessedTime():获取session最后被访问的时间
10、getMaxInactiveInterval():在用户没有访问的情况下,会话在被自动废弃之前应该保持多长时间
  

第二部分   JS控制

        html页面的所有元素均可以通过document.getElementById得到;document.forms["表单明"]或者document.forms["表单序号"]访问表单元素;document.frames["框架明"].document访问框架。

         值得注意的getElementById这个方法查找的时候,会以传入的参数与第一次name属性值相同的元素查找出来。

 <script type="text/javascript">
  
  function get()
  {
     //也可以直接通过元素的属性Id来直接获取
     var ipv6 = document.getElementById("ip").value;
     alert("ipv6: " + ipv6); //55::66
     
     var ipv4 = document.getElementById("ip").value;
     alert("ipv4: "+ipv4);  //55::66
     
     var ipv44 = document.getElementById("ipv4").value;
     alert(ipv44);       //1.1.1.1
  }
  
  </script>
  
  <body>
    <form action="hehe.jsp" id="one" method="post" name="one1" >
      ipv6 : <input type="text"   name="ip"  value="55::66" /><br>
      ipv4 : <input type="text"   id="ip" name="ipv4" value="1.1.1.1" /><br>
      <input type="button" value = "button" onclick="get()">
      </form>
  </body>

        getElementsByName(name),name这个属性在元素中是可以相同的也就是这个方法取出的是个集合(ID默认是唯一的,所以不实际和)。注意方法名,我老是写错少了“s”,这个方法与getElementById不太一样。

 <script type="text/javascript">
  
  function get()
  {
     //也可以直接通过元素的属性name来直接获取
     var ip = document.getElementsByName("ip");
     var ipv6 = ip[0].value;
     alert("ipv6: " + ipv6); //55::66
     
     var ipv4 = ip[1].value;
     alert("ipv4: "+ipv4);  //1.1.1.1
     
  }
  
  </script>
  
  <body>
    <form action="hehe.jsp" id="one" method="post" name="one1" >
      ipv6 : <input type="text"   id="ipv6" name="ip" value="55::66" /><br>
      ipv4 : <input type="text"   id="ipv4" name="ip" value="1.1.1.1" /><br>
      <input type="button" value = "button" onclick="get()">
      </form>
  </body>

        getElementByTagName(tagname),根据元素来查询,返回的值肯定也是集合啦!可以用来得到表单各个字段的名字。

 <script type="text/javascript">
  
  function get()
  {
     //也可以直接通过元素的属性tagname来直接获取
     var ip = document.getElementsByTagName("input");
     for(var i=0;i<ip.length;i++)
     {
        alert(ip[i].value); //55::66  1.1.1.1  button
     }
  }
  
  </script>
  
  <body>
    <form action="hehe.jsp" id="one" method="post" name="one1" >
      ipv6 : <input type="text"   id="ipv6" name="ip" value="55::66" /><br>
      ipv4 : <input type="text"   id="ipv4" name="ip" value="1.1.1.1" /><br>
      <input type="button" value = "button" onclick="get()">
      </form>
  </body>

 

        servlet处理复选框String[] param = request.getParameterValues("checkbox1")

        表格变色:document.getElementById(row).style.backgroundColor="#FF0000";

第三部分  代码设计

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FilterChar implements Filter {

	//�ýӿھ����������init��destroy��doFilter
	private String config;

	public void destroy() {
		this.config = null;
	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		HttpServletRequest req;
		req = (HttpServletRequest) request;

		HttpServletResponse res;
		res = (HttpServletResponse) response;

		req.setCharacterEncoding(config);
		res.setCharacterEncoding(config);

		chain.doFilter(req, res);

	}

	public void init(FilterConfig config) throws ServletException {
		this.config = config.getInitParameter("encode");
	}
}
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;

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


public class FruitBuy extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		super.doGet(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		super.doPost(req, resp);
	}

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse res)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		HttpSession session = req.getSession(true);
		HashMap cart = (HashMap)session.getAttribute("cart");
		if(null==cart) {
			cart = new HashMap();
			//Ĭ����object
			cart.put("J2SE","0");
			cart.put("J2EE","0");
			cart.put("J2ME","0");
			session.setAttribute("cart", cart);
		}
		PrintWriter out = res.getWriter();
		res.setContentType("text/html; charset=UTF-8");
		req.setCharacterEncoding("UTF-8");
		int j2se = Integer.parseInt(req.getParameter("book1amount"));
		int j2ee = Integer.parseInt(req.getParameter("book2amount"));
		int j2me = Integer.parseInt(req.getParameter("book3amount"));

		//object����ֱ��תΪint����
		int oldJ2se = (int)cart.get("J2SE");
		int oldJ2ee = (int)cart.get("J2EE");
		int oldJ2me = (int)cart.get("J2ME");

		cart.put("J2SE", oldJ2se);
		cart.put("J2EE", oldJ2ee);
		cart.put("J2ME", oldJ2me);

		out.println("����������"+cart.get("J2SE")+cart.get("J2EE")+cart.get("J2ME"));
		out.println("<hr>");
		out.println("�ص����"+"<a href=\"res.encodeRedirectURL(\"buy.jsp\") />");
	}
}

<%@ page language="java" contentType="text/html; Charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>ÍøÉÏÊéµê是</title>
	<script type="text/javascript" language="JavaScript">
		function clear1() {
			document.forms["fruitform"].book1amount.value="";
		}
		function clear2() {
			document.forms["fruitform"].book2amount.value="";
		}
		function clear3() {
			document.forms["fruitform"].book3amount.value="";
		}
		function changecolor( row) {
		//C大写
			document.getElementById(row).style.backgroundColor="#FF0000";
		}
		function resetcolor( row) {
		//C大写
			document.getElementById(row).style.backgroundColor="#FFFFFF";
		}
		//ÒòΪajax²»»á£¬È¨µ±Á·Ï°js
		function show1() {
			document.forms["fruitform"].book1amount.value =document.getElementById(book1amount).value;
			window.alert("Äú¹ºÂòÁË:" + document.forms["fruitform"].book1amount.value+"±¾");
		}
		function show2() {
			document.forms["fruitform"].book2amount.value =document.getElementById(book2amount).value;
			window.alert("Äú¹ºÂòÁË:" + document.forms["fruitform"].book2amount.value+"±¾");
		}function show3() {
			document.forms["fruitform"].book3amount.value =document.getElementById(book3amount).value;
			window.alert("Äú¹ºÂòÁË:" + document.forms["fruitform"].book3amount.value+"±¾");
		}
	</script>
</head>
<body>
<form action="FruitBuy" name="fruitform" method="get">
	<hr align="center" size="1">
	<table >
		<!-- ±ØÐë·ÅÔÚtableÄÚ²¿ -->
		<caption>»¶Ó­À´µ½ÎÒµÄÍøÉÏÊéµê</caption>
		<tr id="row">
			<th>ÖÖÀà</th><th>µ¥¼Û</th><th>ÊýÁ¿</th>
		</tr>
		<tr id="row1"  onMousemove="changecolor('row1')" onMouseout="resetcolor('row1')">
			<td>J2SE¾«±à</td><td>22.0</td>
			<td><input type="text" name="book1amount"  id="book1amount" value="ÇëÊäÈ빺ÂòÊýÁ¿" onFocus="clear()" onBlur="show1()"></td>
		</tr>
		<tr id="row2"  onMousemove="changecolor('row2')"  onMouseout="resetcolor('row2')">
			<td>J2EE¾«±à</td><td>36.0</td>
			<td><input type="text" name="book2amount"  id="book2amount" value="ÇëÊäÈ빺ÂòÊýÁ¿" onFocus="clear()" onBlur="show2()"></td>
		</tr>
		<tr id="row3" onMousemove="changecolor('row3')"  onMouseout="resetcolor('row3')">
			<td>J2ME¾«±à</td><td>22.0</td>
			<td><input type="text" name="book3amount"  id="book3amount" value="ÇëÊäÈ빺ÂòÊýÁ¿" onFocus="clear()" onBlur="show3()"></td>
		</tr>
	</table>
	<hr align="center" size="1">
	<input type="submit" value="·ÅÈ빺Îï³µ">
</form>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>WEB</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <filter>
    <filter-name>FilterChar</filter-name>
    <filter-class>FilterChar</filter-class>
    <init-param>
      <param-name>encode</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>FilterChar</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

 
 

Java简单购物车设计的更多相关文章

  1. java简单框架设计

    设计框架包可以作为一个工具给大家用,需要有完全不同设计思路给出来,不同于我们去做一个web服务.网站. 或者一个业务微服务,需要从原来使用视角转换成一个构建者视角. 框架或者工具,更多是框架来管理或者 ...

  2. Java面向对象课程设计——购物车

    Java面向对象课程设计——购物车 小组成员:余景胜.刘格铭.陈国雄.达瓦次仁 一.前期调查 流程 客人(Buyer)先在商城(Mall)中浏览商品(Commidity),将浏览的商品加入购物车(Sh ...

  3. java:Session(概述,三层架构实例(实现接口封装JDBC),Session实现简单购物车实例)

    1.Session概述: Session:在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web 页之间跳转时,存 ...

  4. Java异常处理和设计【转】

    Java异常处理和设计 在程序设计中,进行异常处理是非常关键和重要的一部分.一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度.试想一下,如果一个项目从头到尾没有考虑过异常 ...

  5. Java DB loadBalance 设计

    Java DB loadBalance 设计 */--> pre.src {background-color: #292b2e; color: #b2b2b2;} pre.src {backgr ...

  6. Java语言课程设计——博客作业教学数据分析系统(201521123107 张翔)

    #Java语言课程设计--博客作业教学数据分析系统(个人博客) 1.团队课程设计博客链接 [博客作业教学数据分析系统(From:网络五条狗)](http://www.cnblogs.com/fanta ...

  7. 201521123118《java程序与设计》第4周作业总结

    1.本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点 1.2 使用常规方法总结其他上课内容. 为了不必要写重复的代码,可以运用继承,用关键字extends来定义一个类,被继承的类叫做父类,继 ...

  8. Python实例---简单购物车Demo

    简单购物车Demo # version: python3.2.5 # author: 'FTL1012' # time: 2017/12/7 09:16 product_list = ( ['Java ...

  9. 利用JAVA反射机制设计通用的DAO

    利用JAVA反射机制设计一个通用的DAO 反射机制 反射机制指的是程序在运行时能够获取自身的信息.在java中,只要给定类的名字,    那么就可以通过反射机制来获得类的所有信息. 反射机制创建类对象 ...

随机推荐

  1. TCP keepalive

      2. TCP keepalive overview In order to understand what TCP keepalive (which we will just call keepa ...

  2. LabVIEW中的UDP通信

    UDP(user datagram protoco1)提供向接收端发送信息的最简便的协议,与TCP不同,UDP不是面向连接的可靠数据流传输协议,而是面向操作的不可靠数据流传输协议.UDP在数据传输之前 ...

  3. 使用map端连接结合分布式缓存机制实现Join算法

    前面我们介绍了MapReduce中的Join算法,我们提到了可以通过map端连接或reduce端连接实现join算法,在文章中,我们只给出了reduce端连接的例子,下面我们说说使用map端连接结合分 ...

  4. [置顶] String StringBuffer StringBuilder的区别剖析

    这是一道很常见的面试题目,至少我遇到过String/StringBuffer/StringBuilder的区别:String是不可变的对象(final)类型,每一次对String对象的更改均是生成一个 ...

  5. [Eclipse]The type XXX cannot be resolved. It is indirectly referenced from required .class files

    在Eclipse中遇到The type XXX cannot be resolved. It is indirectly referenced from required .class files错误 ...

  6. ASP.Net IE10+ SCRIPT:XXX_doPostBack 未定义

    问题描述 GridView中分页控件,点击分页无反应,Linkbutton点击无反应,打开Web控制台,发现如下错误:SCRIPTXXX:_doPostBack 未定义:查询后得知,是由于.NET F ...

  7. Android eclipse - aapt.exe has stopped working.

    今天在修改Android的布局文件的时候,发现每保存一次,就提示: aapt.exe has stopped working(appt.exe已停止工作).很是郁闷,当时Android控制台已经提示错 ...

  8. 利用case when 减少表扫描次数

    数据库环境:SQL SERVER 2008R2 有网友希望有人帮他优化一下他的SQL,SQL语句如下: WITH T AS ( SELECT B.O_Money MON,B.O_States STAT ...

  9. java常用正则表达式

    1.邮编 public static final String POSTAL_CODE = "^\\d{6}$"; 2. email(支持中文域名邮箱) 正则表达式  public ...

  10. python文件操作汇总

    1.创建文件 f = open(filename,'w+')