再见西城 发表于 2015-1-18 11:23:28

JAVA网页设计jsp完成购物程序

再说说缺点:首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。js|程序
上面是我用JSP和数据库做的购物车的源程序:
注重:
1、从头计费部分还没有做好,人人本人下手吧!
2、下一版本将用session做。
//shop_cart.jsp
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pagesession="true"%>
<%@pagelanguage="java"import="java.sql.*"%>
<jsp:useBeanid="bka"scope="page"class="shop.bka"/>
<%
Stringproduct_type;
Stringaction;
intproduct_id;
intcurpage;
//商品范例
if(request.getParameter("product_type")==null){
product_type="all";
}else{
product_type=request.getParameter("product_type");
}
//页数和商品范例参数,能够在“持续购物”时前往到前次购物的页面
if(request.getParameter("curpage")==null){
curpage=1;
}else{
curpage=java.lang.Integer.parseInt(request.getParameter("curpage"));
}
//举措
if(request.getParameter("action")==null){
action="view";
}else{
action=request.getParameter("action");
}
//商品编号
if(request.getParameter("product_id")==null){
product_id=0;
}else{
product_id=java.lang.Integer.parseInt(request.getParameter("product_id"));
}
intbbb;
bbb=1;
Integernum=newInteger(bbb);
//商铺编号
session.putValue("shop_id",num);
//主顾username
session.putValue("guest_name","asp2001");
Stringguest_name=(String)session.getValue("guest_name");
Integershop_id=(Integer)session.getValue("shop_id");

java.lang.Stringsql;
java.sql.ResultSetrs;

if(action.compareTo("add")==0){
sql="selectcart_quantityfromshop_cartwherecart_shop_id="+shop_id
+"andcart_guest_id="+guest_name+"andcart_product_id="+product_id;
rs=bka.executeQuery(sql);
if(rs.next()){
intcart_quantity;
cart_quantity=java.lang.Integer.parseInt(rs.getString("cart_quantity"))+1;
sql="updateshop_cartsetcart_quantity="+cart_quantity+"wherecart_shop_id="
+shop_id+"andcart_guest_id="+guest_name+"andcart_product_id="+product_id;
rs=bka.executeQuery(sql);}
else
{
sql="insertintoshop_cart(cart_shop_id,cart_guest_id,cart_product_id,cart_quantity)values("+shop_id+","
+guest_name+","+product_id+",1)";
rs=bka.executeQuery(sql);
}
}
if(action.compareTo("clear")==0){
sql="deletefromshop_cartwherecart_shop_id="+shop_id+"andcart_guest_id="+guest_name+"";
rs=bka.executeQuery(sql);
}
if(action.compareTo("delete")==0){
sql="deletefromshop_cartwherecart_shop_id="+shop_id+"andcart_guest_id="
+guest_name+"andcart_product_id="+product_id;
rs=bka.executeQuery(sql);
}
%>
<divalign="center"><center>
<tableborder="0"cellpadding="0"cellspacing="0"width="610"
height="2">
<tr>
<td><formmethod="POST"
action="shop_cart.jsp?action=update&product_type=<%=product_type%>&curp
age=<%=curpage%>">
<tableborder="0"cellpadding="0"cellspacing="0"width="610"
height="2">
<tr>
<tdwidth="122"height="7"><divalign="center"><center><table
border="1"cellpadding="2"cellspacing="0"width="100%"bordercolorlight="#FFB468"
bordercolordark="#FFFFFF"bgcolor="#FFB468">
<tr>
<tdwidth="100%"><div
align="center"><center><p>购物车</td>
</tr>
</table>
</center></div></td>
<tdwidth="122"height="7"style="border:medium"
align="center"><divalign="center"><center><table
border="1"cellpadding="2"cellspacing="0"width="100%"
bordercolorlight="#FFB468"
bordercolordark="#FFFFFF"bgcolor="#FFB468">
<tr>
<tdwidth="100%"><divalign="center"><center><p><a
href="shop_list.jsp?shop_id=<%=shop_id%>&product_type=<%=product_type%>
&curpage=<%=curpage%>">持续购物</a></td>
</tr>
</table>
</center></div></td>
<tdwidth="122"height="7"style="border:medium"
align="center"><divalign="center"><center><table
border="1"cellpadding="2"cellspacing="0"width="100%"
bordercolorlight="#FFB468"
bordercolordark="#FFFFFF"bgcolor="#FFB468">
<tr>
<tdwidth="100%"><divalign="center"><center><p><a
href="javascript:document.forms.submit()">从头计费</a></td>
</tr>
</table>
</center></div></td>
<tdwidth="122"height="7"style="border:medium"
align="center"><divalign="center"><center><table
border="1"cellpadding="2"cellspacing="0"width="100%"
bordercolorlight="#FFB468"
bordercolordark="#FFFFFF"bgcolor="#FFB468">
<tr>
<tdwidth="100%"><divalign="center"><center><p>
<ahref="shop_cart.jsp?action=clear&product_type=<%=product_type%>&curpage=<%=curpage%>">清空购物车</a></td>
</tr>
</table>
</center></div></td>
<tdwidth="122"height="7"style="border:medium"align="center"><divalign="center"><center><table
border="1"cellpadding="2"cellspacing="0"width="100%"bordercolorlight="#FFB468"
bordercolordark="#FFFFFF"bgcolor="#FFB468">
<tr>
<tdwidth="100%"><divalign="center"><center><p><ahref="shop_order.asp">确认购置</a></td>
</tr>
</table>
</center></div></td>
</tr>
<tralign="center">
<tdwidth="610"height="1"colspan="5"><divalign="center"><center>
<tableborder="1"cellpadding="2"cellspacing="0"width="100%"bgcolor="#FDFEE2"
bordercolorlight="#FFB468"bordercolordark="#FFFFFF"height="40">
<tr>
<tdwidth="20%"height="8"align="left">商品称号</td>
<tdwidth="10%"height="8"align="left">市场价</td>
<tdwidth="10%"height="8"align="left">优惠价</td>
<tdwidth="10%"height="8"align="left">数目</td>
<tdwidth="14%"height="8"align="left">小计</td>
<tdwidth="12%"height="8"align="left">定金比例</td>
<tdwidth="17%"height="8"align="left">定金小计</td>
<tdwidth="17%"height="8"align="left">删除</td>
</tr>
<%
sql="selectshop_product.product_id,shop_product.product_name,shop_product.product_price,
shop_product.product_discount,shop_cart.cart_quantity,shop_product.product_firstfromshop_cart,shop_productwhereshop_cart.cart_shop_id="+shop_id+"andshop_cart.cart_guest_id="+guest_name+"andshop_cart.cart_product_id=shop_product.product_id";
rs=bka.executeQuery(sql);
inttotal;
inttotal_first;
total=0;
total_first=0;
Stringproduct_name;
intproduct_price;
intproduct_discount;
intproduct_first;
intcart_quantity;
if(rs.next()){
while(rs.next()){
product_id=java.lang.Integer.parseInt(rs.getString(1));
product_name=rs.getString(2);
product_price=java.lang.Integer.parseInt(rs.getString(3));
product_discount=java.lang.Integer.parseInt(rs.getString(4));
cart_quantity=java.lang.Integer.parseInt(rs.getString(5));
product_first=java.lang.Integer.parseInt(rs.getString(6));
%>
<tr>
<tdwidth="10%"height="1"align="left"><%=product_name%></td>
<tdwidth="10%"height="1"align="left"><%=product_price%></td>
<tdwidth="10%"height="1"align="left"><%=product_discount%></td>
<tdwidth="10%"height="1"align="left"><inputtype="text"name="<%="t"+product_id%>"size="3"value="<%=cart_quantity%>"></td>
<tdwidth="14%"height="1"align="left"><%=product_discount*cart_quantity%></td>
<tdwidth="12%"height="1"align="left"><%=product_first+"%"%></td>
<tdwidth="17%"height="1"align="left"><%=product_first*product_discount*cart_quantity/100.0%></td>
<tdwidth="17%"height="1"><divalign="center"><center><p><ahref="shop_cart.jsp?action=delete&product_id=<%=product_id%>">delete</a></td>
</tr>
<%
total=total+product_discount*cart_quantity;
total_first=total_first+product_discount*cart_quantity*product_first/100;
}
%>
<tralign="center">
<tdwidth="72%"colspan="6"height="16"><divalign="right"><p>总计</td>
<tdwidth="36%"colspan="2"height="16"><divalign="left"><%=total%></td>
</tr>
<tralign="center">
<tdwidth="72%"colspan="6"height="16"><divalign="right"><p>定金总计</td>
<tdwidth="36%"colspan="2"height="16"><divalign="left"><%=total_first%></td>
</tr>
<tralign="center">
<tdwidth="72%"colspan="6"height="16"><divalign="right"><p>节余</td>
<tdwidth="36%"colspan="2"height="16"><divalign="left"><%=total-total_first%></td>
</tr>
</table>
</center></div>
<%
}else{
%>
<palign="center">购物车为空!</p>
<%
}
%>

数据库操纵部分
程序用到两个表:
1shop_cart表
cart_idint购物车编号主动编号
cart_shop_idnvarchar商铺编号
cart_product_idnvarchar商品编号
cart_quantityint商品数目
一时寄存购物车数据
2shop_product表
product_idint商品编号主动编号
shop_idnvarchar商铺编号
product_namenvarchar商品称号
product_bbnvarchar商品先容
product_priceint市场价
product_discountint优惠价
product_imgimg图片
product_statusnvarchar形态
product_firstint定金比例
product_typenvanchar商品范例
寄存商品材料
利用bka.java制成的javabean:bka.class能够供应对数据库的操纵。
别的,需在把持面板的体系DSN中注册bka.dsn,
从而可以使JSP经由过程JDBC-ODBC来挪用sql数据库。
在页面中挪用javabean,基础上可接纳以下体例:

<%@pagelanguage="java"import="java.sql.*"%>
<jsp:useBeanid="RegisterBean"scope="page"class="shop.bka"/>
<%
Stringsql="select*fromxxx";
ResultSetrs=RegisterBean.executeQuery(sql);
if(rs.next()){
rs.close();
RegisterBean.closeStmt();
session.putValue("register_message","duplicatenamefound!");
}
%>
注重应在利用后将rs封闭。

以下是bka.java的源程序。注重在利用前需用javac加以编译成为class文件即javabean.
--shop/bka.java--

packageshop;
importjava.sql.*;
publicclassbka{
StringsDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
StringsConnStr="jdbc:odbc:bka";
Connectionconn=null;
ResultSetrs=null;
publicbka(){
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundExceptione){
System.err.println("bka():"+e.getMessage());
}
}
publicResultSetexecuteQuery(Stringsql){
rs=null;
try{
conn=DriverManager.getConnection(sConnStr,"xxx","yyy");
Statementstmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLExceptionex){
System.err.println("aq.executeQuery:"+ex.getMessage());
}
returnrs;
}
}


专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。

小妖女 发表于 2015-1-19 06:28:03

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?

蒙在股里 发表于 2015-1-23 17:39:30

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?

小魔女 发表于 2015-1-31 18:34:40

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

分手快乐 发表于 2015-1-31 22:05:26

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

飘灵儿 发表于 2015-2-3 12:56:44

是一种语言,用以产生「小应用程序(Applet(s))

第二个灵魂 发表于 2015-2-9 01:38:20

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

愤怒的大鸟 发表于 2015-2-26 17:16:13

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

若相依 发表于 2015-3-8 16:12:40

所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。

乐观 发表于 2015-3-10 03:14:38

是一种将安全性(Security)列为第一优先考虑的语言

莫相离 发表于 2015-3-17 04:10:58

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

变相怪杰 发表于 2015-3-23 18:30:48

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
页: [1]
查看完整版本: JAVA网页设计jsp完成购物程序