基于MVC设计模式对网上购书系统的设计与实现(6)

2019-06-02 12:38

火龙果?整理 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这一页面中罗列所有卡通书即可

首先本系统提供给用户以精确和模糊查询功能。

本系统在每一个选购图书的页面都会提供一个查询文本框:

action='http://localhost:8080/Thesis/servlet/Main'>

在所有商品中搜索

火龙果?整理 uml.org.cn align='center' name='searchform'>

图9 精确查询图书图

用户只要在文本框中输入自己要要查看的图书全名或关键字就可以查询到。 本功能的实现以《Harry Potter Boxed Set》这一本书做为讲解

用户在文本框中输入Harry Potter Boxed Set这一全名当然可以准确的查到购买此书的网页,同样本系统为了防止用户只知道书名的关键字而不知道全名这一情况给出解决办法:

本文本框也是以form表单的Post方式提交到Main.Servlet组件,所以作为处理用户提交的信息的Main.Servlet中的程序代码必须用doPost方法中。本系统把每一种可能的关键字组合作为一个判断依据进行处理。Harry Potter Boxed Set的所有可能的关键字组合本人以为:

Harry potter和Harry还有就是Potter,只要在该文本框中输入这其中的一种可能组合关键字用户同样可以查询到该《Harry Potter Boxed Set》一书进行进一步的操作。

所以在Main.Servlet中可以做如下判断: if(searchform.equals(\

Potter

Boxed

Set\

||

searchform.equals(\Potter\|| searchform.equals(\|| searchform.equals(\

这样写代码的问题还是存在的:如果用户不小心在输入的内容前加了几个空格或最后加上了几个空格如” Harry Potter ”那么该代码还是不能查询到用户想要的结果,而输入的关键字又是准确的所以这样的查询功能还是很不智能的. 同时该查询中还有一个缺陷,设想用户在查询框中输入并没有严格按照”Harry Potter”这样的大小规范,例如用户在查询框中输入”Harry poTTeR”那么用户还是查询不到想要的结果。

所以针对以上问题,我做了如下处理:

对于大小写规范问题:不管用户提供的查询信息的大小写是怎么样的,我都把所有在文本框中的信息转化成为小写字母然后再做处理,然后在做判断中只要把所


基于MVC设计模式对网上购书系统的设计与实现(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Java基础阶段复习题2(附答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: