火龙果?整理 uml.org.cn if(usernameNull != null){ %>
<%=usernameNull%> <% } } %>
效果预览:
图3 未输入密码错误图
图4 用户的用户名或密码未通过验证图
注册系统的原理和登陆为基本相同的,所不同只是在连接数据库后查询用户名如果存在对应的用户名名说明该用户名已经被占用不能再被注册,返回到注册
火龙果?整理 uml.org.cn 页面(http://localhost:8080/Thesis/Register.jsp)给出相应信息。如果不存在就注册成功把相应用户名和密码要插入到数据库中。代码如下: database.stmt.execute(
\('\database.stmt.close();
HttpSession session = request.getSession(true); ShoppingCart myNewShoppingCart = new ShoppingCart(); session.setAttribute(\session.setAttribute(\
request.getRequestDispatcher(\
图5 注册已经存在的用户名错误图
4.3智能化辨认功能的实现
要实现辨认功能必须要有一个唯一的标识,这里用Session技术实现,因为Session有一个生命周期,且在用户登陆状态下服务器端才分配一个唯一的Session给予用户,一旦Session过期用户的权限就跟游客一样不能进行实质的购书活动,必须重新登陆,所以以Session来管理辨认这一功能是最为恰当的。
一个Java servlet具有一个生命周期,这个生命周期定义了一个Servlet如何被载入并被初始化,如何接收请求并作出对请求的响应,如何被从服务中清除。Servlet的生命周期被javax.servlet.Servlet这个接口所定义。
所有的Java Servlet都会直接地或间接地执行javax.servlet.Servlet接口,这样它才能在一个Servlet引擎中运行。Servlet引擎是Web 服务器按照Java Servlet API定制的扩展。Servlet引擎提供网络服务,能够理解MIME请求,并提供一个运行Servlet的容器。
火龙果?整理 uml.org.cn javax.servlet.Servlet接口定义了在Servlet的生命周期中特定时间以及特定顺序被调用的方法。
同样的道理,用户如果操作过时不能进行实质性的购书活动那购物车的存在对于服务器端来说就是一个资源浪费,所以用Session来管理购物车也是最为合适的。下面来介绍用Session管理用户信息的技术实现。
Session有两个对应的属性Attribute,一个是名字name还有一个就是值value。我们可以把自己想要管理的信息取一个唯一的名字name同时把它对应的值value(就是我们想要管理的具体实物)一起写入Session中,语法:session.setAttribute(name, value)
这样我们只要查看我们要管理的实物的name所对应的value就可以了。以用户信息userinfo为例子,具体实现的代码如下:
在用户登陆成功后的Servlet组件中我们需要把用户信息写入Session中,本系统用userinfo作为name,那用户的注册用户名作为具体管理的实物
session.setAttribute(\
这样就实现了写入想要管理用户信息value这个实物和和name的功能在Jsp组件中只要判断Session中userinfo的value的不同显示不同的信息就可以了: <%
if( session.getAttribute(\ %>
!想购买你喜欢的商品请登陆或注册成我们的新用户!!!
<% }else{ %>
color=\,你可以挑选你喜欢的任何商品了!!!
<%
火龙果?整理 uml.org.cn
} %>
图6 未登陆状态图
图7 以Gavin注册用户登陆状态图
4.4查询系统的实现
查询功能应该是每一个网站所需要的功能,对于电子商务网站对于此功能更是不可或缺。本系统中这一功能对于游客也是可以使用的。 首先本系统提供给用户以分类查询功能。
本系统假设了四类的图书:小说,管理,旅游,卡通(每一类假设了四本图书)
本系统为每一类书都写了一个Jsp,每个Jsp把每一类的书全部罗列了出来。所以只要在页面把四类书的标题列出来同时做一个超级连接就可以了。
图8 分类选择图书图
超级连接的实现:
卡通
这样就完成了对于卡通这一类书的超级连接,只要在http://localhost:8080/Thesis/CartoonBooks.jsp这一页面中罗列所有卡通书即可
首先本系统提供给用户以精确和模糊查询功能。
本系统在每一个选购图书的页面都会提供一个查询文本框: