还是存在一些问题(比如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. Android应用源码图书馆管理系统带服务端数据库

    本项目是一套基于安卓的图书馆管理系统,包括jsp服务端源码,安卓客户端源码和mysql数据库.代码比较简单,供学习anroid与j2ee交互.例如Sqlite的使用.安卓客户端与jsp的web服务端的 ...

  2. [D3] 11. Basic D3 chart interactivity on(), select(this), classed(class, trueorfalse)

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  3. linux进程间通讯-System V IPC 信号量

    进程间通信的机制--信号量.注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物.有关信号的很多其它内容,能够阅读我的还有一篇文章:Linux进程间通信--使用信号.以下就进入信号量的 ...

  4. End-to-End Tracing of Ajax/Java Applications Using DTrace

    End-to-End Tracing of Ajax/Java Applications Using DTrace         By Amit Hurvitz, July 2007     Aja ...

  5. MegaCli监控RAID磁盘健康信息

    首先有必要先介绍一下有关RAID卡的使用,有关Cache问题也有个人理解:生产系统上的物理机磁盘配置大多都是RAID5,之前会经常性的遇到磁盘IO在某个时间极度的跟不上节奏,稍微写入量,磁盘utils ...

  6. hp惠普服务器监控硬盘

    惠普 hpssacli 工具使用 查看raid卡信息(包括控制器状态.Cache状态.电池状态) # hpssacli ctrl all show status 查看raid详细信息 # hpssac ...

  7. Vmare12(虚拟机)安装Mac OS X Yosemite 10.10

    需要预备的软件如下: OSX10.10的系统镜像,下载好之后将后缀.cdr改成.iso,下载来源如下:    链接:http://pan.baidu.com/s/1sj4ri5R 密码:y86w un ...

  8. Javascript 汉字转拼音

    调用方式: var pinyin = convert("欢迎光临"); alert(pinyin); 新建JS文件:PYConvert.js,内容如下: var PinYin = ...

  9. 第一章 SQL基础

    第一部分:SQL基础1. 为什么学习SQL自人类社会形成之日起,社会的运转就在不断地产生和使用各种信息(文献.档案.资料.数据等):在如今所谓的信息时代,由于计算机和互联网的作用,信息的产生和使用达到 ...

  10. myeclipse10 中修改html,servlet,jsp等的生成模板

    1.进入myeclipse的安装目录 2.用减压软件,(如winrar)打开common\plugins\com.genuitec.eclipse.wizards_9.0.0.me2011080913 ...