第4章系统设计
一、技术路线:
开发语言:Java
前端技术:JavaScript、VUE.js(2.X)、css3
数据库:MySQL 5.7
数据库管理工具:Navicat或sqlyog
开发工具:IDEA或Ecplise
二、项目介绍:
https://www.bilibili.com/video/BV1vQ4y1b7wV/
三、运行截图:
第1章系统实现
1.1登录模块的实现
该登录模块利用js进行设计,JavaScript函数CheckSubmit()对输入框是否为空进行验证,使用js的技术结合Mysql 2012数据库的查询语句进行登录信息的验证。首先从文本框中分别获得账号user_name和密码user_pw,使用Sql语句“select * from t_user where user_name=‘”+user_name+“’ and user_pw=‘”+user_pw+“’”将查询结果赋给rs结果集,若rs.next()返回值为空,表示数据库找不到该用户数据,若rs.next()返回值不为空,则显示登录成功,进入主界面。
用户登录流程图如下所示。

图5-1用户登录流程
用户登录流程:用户只有输入正确的用户名和密码才会成功进入系统,用户输入用户名密码后点击登录按钮,系统会进行校验该用户名是否存在,如果用户名与密码不匹配或者用户名不存在,则返回主界面。
系统登录界面如下图所示。

图5-2系统登录界面
登录功能的逻辑代码如下所示。
if(ac.equals("adminlogin"))
{
String username = request.getParameter("username");
String password = request.getParameter("pwd");
String utype = request.getParameter("cx");
String pagerandom = request.getParameter("pagerandom")==null?"":request.getParameter("pagerandom");
String random = (String)request.getSession().getAttribute("random");
if(!pagerandom.equals(random)&&request.getParameter("a")!=null)
{
request.setAttribute("random", "");
go("/login.jsp", request, response);
}
else{
String sql1 = "select * from allusers where username='"+username+"' and pwd='"+password+"' ";
List userlist1 = dao.select(sql1);
if(userlist1.size()==1)
{
request.getSession(). setAttribute("username", userlist1.get(0).get("username"));
request.getSession(). setAttribute("cx", userlist1.get(0).get("cx"));
gor("main.jsp", request, response);
}else{
request.setAttribute("error", "");
go("/login.jsp", request, response);
}
}
}
1.2用户子系统模块的实现
1.2.1用户首页模块
在浏览器的地址栏里输入http://localhost:8080/index.jsp 地址,就可以跳转到非处方药品推荐系统的首页,首页是由4个页面组成的,包括top、left、down和center等页面,这里也是浏览者访问系统的入口,通过@ include引入。
首页载入流程图如下所示。

图5-3首页载入流程
首页载入流程:系统先连接数据库,显示界面参数初始化,读取数据库的数据表,读取html显示模板,对数据按添加时间排序,按照模板设计位置显示数据,刷新显示界面,断开数据库连接。
首页如下图所示。

图5-4首页界面
其中载入首页的主要代码如下。
1.2.2用户注册模块
系统的用户通过自行注册生成,在系统首页点击用户注册菜单,系统跳转到对应的注册页面。点击重置按钮,清空所填数据,点击注册按钮完成注册。
用户注册流程图如下所示。

图5-5用户注册流程
注册个人信息实现流程为:填写个人信息,系统使用JQuery选择器获取在网页中输入的注册信息,再对联系方式、登录密码等信息进行验证,验证通过后用Ajax异步请求方式向服务器发送请求并把数据传送到后台,然后验证用户名是否已存在,如果已存在则注册失败提示“用户名已存在”;如果用户表中没有该用户名则把用户信息加入数据库,把操作状态以json字符串方式返回到前台。Ajax请求成功接收到返回的数据时会触发成功回调函数,然后解析返回的json字符串,系统根据返回信息弹出提示框,注册成功后返回登录页。
用户注册界面如下图所示。

图5-6用户注册界面
用户注册页面的逻辑代码如下。
HashMap ext = new HashMap();
ext.put("issh","否");
new CommDAO().insert(request,response,"yonghuzhuce",ext,true,false,"index.jsp");
%>
1.2.3非处方药查询模块
管理员发布非处方药后,非处方药在系统前台显示,用户浏览非处方药信息,包括药名、图片、主要成分、性状、适应症、用量、不良反应、公司名称,选择相应的非处方药查询,通过id传参,找到该非处方药,在chufangyao_list.jsp提交查询表单,生成查询记录。
非处方药查询流程如下图所示。

图5-15非处方药查询流程
非处方药查询界面如下图所示。

图5-17非处方药查询界面
非处方药查询的主要逻辑代码:
HashMap ext = new HashMap();
if(request.getParameter("f")!=null){
ext.put("issh","否");
new CommDAO().insert(request,response,"shujujilu",ext,true,false,"");
}
%>
1.2.4反馈发布模块
用户提交反馈信息,包括姓名、性别、年龄、过敏症、病症、回复、反馈人,选择相应的反馈发布,通过id传参,找到该反馈,在fankui_add.jsp提交反馈表单,生成发布记录。
反馈发布流程如下图所示。

图5-15反馈发布流程
反馈发布界面如下图所示。

图5-17反馈发布界面
反馈发布的主要逻辑代码:
HashMap ext = new HashMap();
if(request.getParameter("f")!=null){
ext.put("issh","否");
new CommDAO().insert(request,response,"shujujilu",ext,true,false,"");
}
%>
1.3管理员子系统模块的实现
1.3.1管理员主页模块
经过用户登录后,页面跳转至首页,main.jsp,首页是由2个页面组成的,包括top、left和center等页面,通过@ include引入,系统首页主要介绍系统的基本信息,包括当前用户、当前日期、当前访问浏览器的版本、服务器的端口数、当前用户的权限、当前电脑的ip、当前电脑的操作系统名称、本系统的开发日期、系统作者、指导教师、开发日期等。其中left部分是系统菜单,本系统菜单包括1级菜单和2级菜单,使用jquery实现1级菜单展开为2级菜单。
主界面如下图所示。

图5-1主界面
1.3.2系统用户管理模块
管理员对系统用户的管理,在yhzhgl.jsp实现管理员用户的管理,包括录入、删除、修改,修改密码通过SESSION获取用户名,然后输入新密码,提交到mod.jsp中,使用sql命令更新密码。
管理员用户管理的界面如下图所示。

图5-2管理员用户管理界面
普通用户管理界面如下图所示。

图5-3普通用户管理界面
登录密码修改界面如下图所示。

图5-4登录密码修改界面
登录密码修改的逻辑代码如下。
if(ac.equals("adminlogin"))
{
String username = request.getParameter("username");
String password = request.getParameter("pwd");
String utype = request.getParameter("cx");
String pagerandom = request.getParameter("pagerandom")==null?"":request.getParameter("pagerandom");
String random = (String)request.getSession().getAttribute("random");
if(!pagerandom.equals(random)&&request.getParameter("a")!=null)
{
request.setAttribute("random", "");
go("/login.jsp", request, response);
}
else{
String sql1 = "select * from allusers where username='"+username+"' and pwd='"+password+"' ";
List userlist1 = dao.select(sql1);
if(userlist1.size()==1)
{
request.getSession(). setAttribute("username", userlist1.get(0).get("username"));
request.getSession(). setAttribute("cx", userlist1.get(0).get("cx"));
gor("main.jsp", request, response);
}else{
request.setAttribute("error", "");
go("/login.jsp", request, response);
}
}
}
1.3.3非处方药管理模块
管理员在feichufangyao_add.jsp发布非处方药,跳转至非处方药添加表单,提交非处方药信息,包括药名、图片、主要成分、性状、适应症、用量、不良反应、公司名称等,非处方药提交后,数据库的非处方药信息表刷新数据,系统将非处方药信息展示出来。
非处方药管理的流程如所示。

图5-7非处方药管理流程
非处方药添加的界面如所示。

图5-8非处方药添加界面
非处方药管理的界面如所示。

图5-9非处方药管理界面
非处方药信息添加的逻辑代码如下。
HashMap ext = new HashMap();
if(request.getParameter("f")!=null){
ext.put("issh","否");
new CommDAO().insert(request,response,"shujujilu",ext,true,false,"");
}
%>
1.3.4疾病管理模块
疾病管理包括新增疾病、删除疾病、修改疾病、查询疾病等,以疾病新增为例,在视图层请求疾病信息新增,反馈后,调用业务逻辑层,通过业务逻辑层的接口调用底层的数据逻辑层完成数据库联动操作。
疾病管理的流程如所示。

图5-10疾病管理流程
疾病添加的界面如所示。

图5-11疾病添加界面
疾病管理的界面如所示。

图5-9疾病管理界面
疾病信息添加的逻辑代码如下。
HashMap ext = new HashMap();
if(request.getParameter("f")!=null){
ext.put("issh","否");
new CommDAO().insert(request,response,"shujujilu",ext,true,false,"");
}
%>
本文详细描述了一款基于Java的系统设计,涉及前端技术(JavaScript和VUE.js)、数据库(MySQL5.7)以及用户登录、注册、管理员管理和非处方药查询等功能的实现过程,展示了关键模块的逻辑代码和界面设计。
620

被折叠的 条评论
为什么被折叠?



