基于struts的网上书店设计毕业论文内容摘要:

字段名 字段描述 数据类型 是否为空 是否主键 name 会员账号 varhar(50) 否 是 password 账号密码 varhar(50) 否 否 realName 会员姓名 varchar(50) 否 否 age 会员年龄 int(4) 否 否 会员邮箱 varchar(50) 否 否 job 会 员职业 varchar(50) 否 否 ( 2)、商品信息表主要用来保存商品信息。 如 表 52所示: 表 52 商品信息表 字段名 字段描述 数据类型 是否为空 是否主键 id 序列号 varchar(50) 否 是 name 图书名 varchar(50) 否 否 id 类别编号 int(4) 否 否 author 作者 varchar(50) 否 否 publisher 出版社 varchar(50) 否 否 pubTime 出版时间 smalldatetime(4) 否 否 price 价格 money 否 否 ( 3)、商品大类信息表主要用来保存商品大类信息。 如 表 53所示: 表 53商品大类信息表 字段名 字段描述 数据类型 是否为空 是否主键 id 类别编号 int(4) 否 是 name 类别名 varchar(50) 否 否 图 38 前台首页 开发环境 在开发网上书店系统时,软件环境如下 : 服务器端: 操作系统: Windows XP WEB服务器: Tomcat Java开发包: JDK 10 数据库: SQL Server 2020 客户端: 浏览器: 谷歌浏览器 分别率: 1024*768 开发工具: MyEclipse 第 4 章 基于 Struts 的网上书店程序设计与实现 程序总体结构 图 41 程序总体结构 存放所有 action 的包 存放所有 dao 的包 存放所有 ActionForm 的包 存放公共类的包 存放所有 jsp 页面 存放所有书籍图片 存放所有网站图片 11 公共类设计 数据库连接类 在本系统中,对数据库连接类的名称为 JDBConnection,在该类属性中设置连接 SQL Server 2020 的驱动、 url地址及声明 connection类的实例,并通过构造方法获取数据库的连接。 具体代码如下: package。 import .*。 public class JDBConnection { private String dbDriver =。 //数据库驱动 private String url=jdbc:microsoft: public Connection connection =null。 public JDBConnection(){ try { (dbDriver).newInstance()。 connection =(url, sa, )。 } catch (Exception ex) { (数据库加载失败 )。 } } } 字符串自动处理类 在本系统中,字符串自动处理 类名称为 CharacterFilter,该类 实现 了 Filter 类中的 doFilter()方法,该方法作用是将表单中的字符串转换成 UTF8,具体代码如下: package。 import。 import。 import。 import。 import。 import。 import。 import。 public class CharacterFilter implements Filter { public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 12 (UTF8)。 (request,response)。 } public void init(FilterConfig filterConfig) throws ServletException { } } 前台首页设计 开发一个网站,好的页面风格和页面框架是非常重要的,特别是对于网上书店更需要有好的页面风格和布局。 在本网上书店的首页设计中,很好展示了书店推出的新品上架、销售排行、最新公告等信息,并提供了查看订单、商品分类查询等业务。 网上书店前台首页运行结果如图 61所示: 13 图 42 网上书店系统前台首页 如上图 61所示的主页面中,用户登录、商城公告、销售排行、网站导航、新品上架、后台登陆入口以及查询书籍信息等模块,并不是仅存在于主页面中,其他功能模块的子页面中也需 要包括这些部分。 因此,可以讲这几个部分分别保存在单独的文件中,这样,在需要放置相应功能时只需要包含这些文件即可,如图 62为前台主页面面的布局: 网站导航 用户登录 书籍查询模块 商城公告 后台管理 新品上架 14 图 43 前台主页面布局 在 jsp页面中包含文件有两种方法:一种是应用 % @include %指令 实现,另一种是应用 jsp:include动作元素实现,本系统使用的是 jsp:include动作元素。 该动作元素 用于向当前的页面中包含其他的文件,这个文件可以是动态文件也可以是静态文件,具体的使用方法: % @ include %指令用来在 JSP 页面中包含另一个文件。 包含的过程是静态的,即在指定文件属性值时,只能是一个包含相对路径的文件名,而不能是一个变量,也不可以在所指定的文件后面添加任何参数。 其语法格式如下: %@ include file=” fileName” % jsp:include动作元素可以指定加载一个静态或动态的文件,但运行结果不同。 如果指定为静态文件,那么这种指定仅仅是把指定的文件内容加到 JSP问价中去,则这个文件不被编译。 如果是动态文件,那么这个文件将会被编译执行。 由于页面中包含查询模块时,只需要将文件内容添加到指定的 JSP文件中即可,所以此处可以使用加载静态文件的方法包含文件。 应用 jsp:include动作元素加载静态文件的语法格式如下: 15 jsp:include page=” {relativeURL|%=expression%}” flush=” true” / 使用 %@ include %指令和 jsp:include动作元素包含文件的区别是:使用 %@ include %指令包含的页面,是在编译阶段将该页面的代码插入到了主页面的代码中,最终包含页面与被包含页面生成了一个文件。 因此,如果被包含页面的内容有改动,需要重新编译该文件。 而是用 jsp:include动作元素包含的页面可以 是 动态改变的,它是在 JSP文件运行过程中被确定的,程序执行的是两个不同的页面,即在主页面中声明的变量,在被包含的页面中是不可见的。 由此可见,当被包 含的 JSP页面中包含动态代码时,为了不合主页面中的代码相冲突,需要使用 jsp:include动作元素包含文件。 用户登录模块 用户登录模块总体框架 用户只有通过登录模块的验证才能进入网站。 当用户在图 61中左侧“用户信息”模块中的“用户名”和“密码”文本框中输入用户名和密码后,单击“登录”按钮,如果验证成功,用户将以会员的身份进入网上书店的首页面,并可在网站中进行购书。 用户登录模块的框架如图 63所示: 否 是 图 44 用户登录模块框架图 用户登录模块的实现 由于本系统采用的是 Struts框架,因此在实现用户登录模块时,需要编写用户对象的 ActionForm类开始 用户登录 是否通过验证 浏览书籍及进行购物 16 和 Action 实现类。 在 Struts框架中, ActionForm类是一个具有 get()和 set()方法的类,用于获取或设置 HTML表单数据。 同时,该类也可以实现验证表单数据的功能。 Action实现类是 Struts中控制器组件的重要组成部分,是用户请求和业务逻辑之间沟通的媒介。 ActionForm类 在用户登录模块中,涉及的数据表是会员信息表,会员信息表保存的似乎会员用户名和密码等信息。 根据这些信息可以得出会员模块的 ActionForm类。 会员模块的 ActionForm类的名称为 MemberForm,创建MenberForm类的具体代码如下: public class MemberForm extends ActionForm { private String name。 //会员账号 private String password。 //账号密码 private String realName。 //会员姓名 private int age。 //会员年龄 private String。 //会员邮箱 private String job。 //会员职业 public String getName() { return name。 } public void setName(String name) { = name。 } public String getPassword() { return password。 } public void setPassword(String password) { = password。 } public String getRealName() { return realName。 } public void setRealName(String realName) { = realName。 } public int getAge() { return age。 } public void setAge(int age) { = age。 } public String getEmail() { return。 } public void setEmail(String ) { =。 17 } public String getJob() { return job。 } public void setJob(String job) { = job。 } } Action实现类 会员功能模块的 Action实现类继承了 Action类,首先需要在该类属性中定义 MemberDao类(该类用于实现与数据库的交互)的对象及 int型变量 action(根据变量不同,对会员执行的操作不同)。 Action实现类的主要方法是 execute(),该方法会被自动执行,这个方法本身没有具体的事务,它是根据通过HttpServletRequest 的 getParameter()方法获取的 action 参数值执行相应方法的。 会员模块的 Action实现类如下所示: public class MemberAction extends Action { public MemberDao dao = null。 private int action。 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { dao = new MemberDao()。 = ((action))。 switch (action) { case 0: { return loadMember(mapping, form, request, response)。 } case 1: { return insertMember(mapping, form, request, response)。 } } return null。 } // 会员登录 p。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。