基于javaweb+mysql的jsp+servlet医院挂号管理系统(java+jsp+javascript+servlet+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的JSP+Servlet医院挂号管理系统(java+jsp+javascript+servlet+mysql)
项目介绍
本项目分为前后台,有管理员、患者、医生三种角色;
管理员角色包含以下功能: 管理员登录,医生用户管理,修改密码,科室类别信息管理,医生信息管理,添加医生信息,查询医生信息,注册用户管理,黑名单管理,预约信息管理,查询预约信息,医生预约查询,预约信息统计,科室汇总统计等功能。 患者角色包含以下功能: 查看首页,患者登录,修改密码,修改个人资料,查看预约信息,查看医生信息,查看科室分类,医生查询,预约医生等功能。 医生角色包含以下功能: 医生登录,修改登录密码,修改个人信息,预约信息管理,查询预约信息等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否maven项目:否;
技术栈
JSP+CSS+JavaScript+servlet+mysql
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中util/DBO.java配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/jsp_yiyuanguahaosys登录
return m_files;
}
public SmartRequest getRequest()
{
return m_formRequest;
}
public void downloadFile(String s) throws ServletException,IOException,SmartUploadException
{
downloadFile(s,null,null);
}
public void downloadFile(String s,String s1) throws ServletException,IOException,SmartUploadException,SmartUploadException
{
downloadFile(s,s1,null);
}
public void downloadFile(String s,String s1,String s2) throws ServletException,IOException,SmartUploadException
{
downloadFile(s,s1,s2,65000);
}
public void downloadFile(String s,String s1,String s2,int i) throws ServletException,IOException,SmartUploadException
{
if(s == null)
{
throw new IllegalArgumentException("File '" + s + "' not found (1040).");
}
if(s.equals(""))
{
throw new IllegalArgumentException("File '" + s + "' not found (1040).");
}
if(!isVirtual(s) && m_denyPhysicalPath)
{
throw new SecurityException("Physical path is denied (1035).");
}
if(isVirtual(s))
{
s = m_application.getRealPath(s);
}
java.io.File file = new java.io.File(s);
FileInputStream fileinputstream = new FileInputStream(file);
long l = file.length();
//boolean flag = false;
int k = 0;
{
throw new IllegalArgumentException("There is no specified destination file (1140).");
}
if(s.equals(""))
{
throw new IllegalArgumentException("There is no specified destination file (1140).");
}
if(s.lastIndexOf("\\") >= 0)
{
s1 = s.substring(0,s.lastIndexOf("\\"));
s2 = s.substring(s.lastIndexOf("\\") + 1);
}
if(s.lastIndexOf("/") >= 0)
{
s1 = s.substring(0,s.lastIndexOf("/"));
s2 = s.substring(s.lastIndexOf("/") + 1);
}
s1 = s1.length() != 0 ? s1 : "/";
java.io.File file = new java.io.File(s1);
if(file.exists())
{
flag = true;
}
if(i == 0)
{
if(isVirtual(s1))
{
s1 = m_application.getRealPath(s1);
if(s1.endsWith(s3))
{
s1 = s1 + s2;
}
else
{
s1 = s1 + s3 + s2;
}
return s1;
}
if(flag)
{
if(m_denyPhysicalPath)
{
throw new IllegalArgumentException("Physical path is denied (1125).");
}
else
{
return s;
}
}
else
{
throw new IllegalArgumentException("This path does not exist (1135).");
}
}
public class AdminAction extends HttpServlet {
/**
* Constructor of the object.
*/
public AdminAction() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
public void uploadInFile(String s) throws IOException,SmartUploadException
{
//boolean flag = false;
int i = 0;
int j = 0;
if(s == null)
{
throw new IllegalArgumentException("There is no specified destination file (1025).");
}
if(s.length() == 0)
{
throw new IllegalArgumentException("There is no specified destination file (1025).");
}
if(!isVirtual(s) && m_denyPhysicalPath)
{
throw new SecurityException("Physical path is denied (1035).");
}
i = m_request.getContentLength();
m_binArray = new byte[i];
int k;
for(;j < i;j += k)
{
try
{
k = m_request.getInputStream().read(m_binArray,j,i - j);
}
catch(Exception exception)
{
throw new SmartUploadException("Unable to upload.");
}
}
if(isVirtual(s))
{
s = m_application.getRealPath(s);
}
try
{
java.io.File file = new java.io.File(s);
FileOutputStream fileoutputstream = new FileOutputStream(file);
fileoutputstream.write(m_binArray);
fileoutputstream.close();
}
catch(Exception exception1)
{
throw new SmartUploadException("The Form cannot be saved in the specified file (1030).");
}
fileoutputstream.close();
}
catch(Exception exception)
{
throw new SmartUploadException("Unable to save file from the DataBase (1020).");
}
}
private String getDataFieldValue(String s,String s1)
{
String s2 = ""; // = new String();
String s3 = ""; // = new String();
int i = 0;
//boolean flag = false;
//boolean flag1 = false;
//boolean flag2 = false;
s2 = s1 + "=" + '"';
i = s.indexOf(s2);
if(i > 0)
{
int j = i + s2.length();
int k = j;
s2 = "\"";
int l = s.indexOf(s2,j);
if(k > 0 && l > 0)
{
s3 = s.substring(k,l);
}
}
return s3;
}
private String getFileExt(String s)
{
String s1; // = new String();
int i = 0;
int j = 0;
if(s == null)
{
return null;
}
i = s.lastIndexOf('.') + 1;
j = s.length();
s1 = s.substring(i,j);
if(s.lastIndexOf('.') > 0)
{
return s1;
String address = Filter.escapeHTMLTags(request.getParameter("address").trim());
String lastip = request.getRemoteAddr();
int off = 1;
ComBean cb=new ComBean();
String str=cb.getString("select id from pmember where address='"+address+"'");
if(str==null){
int flag = memberBean.personReg(username, password, type, realname, sex, bir,sheng,city, telphone, email, question, answer, lastip, off,address);
if(flag == Constant.SUCCESS){
List siteList = new SystemBean().getSiteInfo();
String sitename = siteList.get(0).toString();
request.setAttribute("message", "注册成功!恭喜您成为"+sitename+"的注册会员!");
request.getRequestDispatcher("login.jsp").forward(request, response);
}
else{
request.setAttribute("message", "系统维护中,请稍后再试!");
request.getRequestDispatcher("personreg.jsp").forward(request, response);
}
}
else{
request.setAttribute("message", "该身份证已经被注册!");
request.getRequestDispatcher("personreg.jsp").forward(request, response);
}
}
else if(method.equals("UPREGINFO")){//个人会员修改资料
String member=(String)session.getAttribute("member");
String type=(String)session.getAttribute("type");
if(member==null||type==null){
response.sendRedirect("error.jsp");
}
else{
String realname = Filter.escapeHTMLTags(request.getParameter("realname").trim());
String sex = Filter.escapeHTMLTags(request.getParameter("sex").trim());
String sheng = Filter.escapeHTMLTags(request.getParameter("sheng").trim());
String city = Filter.escapeHTMLTags(request.getParameter("city").trim());
String bir = Filter.escapeHTMLTags(request.getParameter("bir").trim());
String telphone = Filter.escapeHTMLTags(request.getParameter("telphone").trim());
String email = Filter.escapeHTMLTags(request.getParameter("email").trim());
String question = Filter.escapeHTMLTags(request.getParameter("question").trim());
request.getRequestDispatcher("error.jsp").forward(request, response);
}
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occure
*/
public void init() throws ServletException {
// Put your code here
}
}
package com.action;
/**
* 管理员登陆 增加 修改 删除 删除登陆日志
*/
public class AdminAction extends HttpServlet {
/**
* Constructor of the object.
*/
public AdminAction() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
request.getRequestDispatcher("error.jsp").forward(request, response);
}
}catch(Exception e){
e.printStackTrace();
request.getRequestDispatcher("error.jsp").forward(request, response);
}
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occure
*/
public void init() throws ServletException {
// Put your code here
}
}
package com.action;
/**
*
* 网站后台管理注册会员 查询 冻结 删除会员
*/
public class MemberManageAction extends HttpServlet {
/**
* Constructor of the object.
}
public void setForcePhysicalPath(boolean flag)
{
//m_forcePhysicalPath = flag;
}
public void setContentDisposition(String s)
{
m_contentDisposition = s;
}
public void setTotalMaxFileSize(long l)
{
m_totalMaxFileSize = l;
}
public void setMaxFileSize(long l)
{
m_maxFileSize = l;
}
protected String getPhysicalPath(String s,int i) throws IOException
{
String s1 = ""; //new String();
String s2 = ""; //new String();
String s3 = ""; //new String();
boolean flag = false;
s3 = System.getProperty("file.separator");
if(s == null)
{
throw new IllegalArgumentException("There is no specified destination file (1140).");
}
if(s.equals(""))
{
throw new IllegalArgumentException("There is no specified destination file (1140).");
}
if(s.lastIndexOf("\\") >= 0)
{
s1 = s.substring(0,s.lastIndexOf("\\"));
s2 = s.substring(s.lastIndexOf("\\") + 1);
}
if(s.lastIndexOf("/") >= 0)
{
s1 = s.substring(0,s.lastIndexOf("/"));
s2 = s.substring(s.lastIndexOf("/") + 1);
}
package com.action;
/**
* 管理员登陆 增加 修改 删除 删除登陆日志
*/
public class AdminAction extends HttpServlet {
/**
* Constructor of the object.
*/
public AdminAction() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
if(m_binArray[i] == (byte)m_boundary.charAt(j))
{
if(j == k - 1)
{
m_endData = ((i - k) + 1) - 3;
break;
}
i++;
j++;
}
else
{
i++;
j = 0;
}
}
m_currentIndex = m_endData + k + 3;
}
private String getDataHeader()
{
//boolean flag = false;
int i = m_currentIndex;
int j = 0;
for(boolean flag1 = false;!flag1;)
{
if(m_binArray[m_currentIndex] == 13 && m_binArray[m_currentIndex + 2] == 13)
{
flag1 = true;
j = m_currentIndex - 1;
m_currentIndex = m_currentIndex + 2;
}
else
{
m_currentIndex++;
}
}
String s = new String(m_binArray,i,(j - i) + 1);
return s;
}
private String getFileName(String s)
{
//String s1 = ""; // = new String();
if(flag == Constant.SUCCESS){
request.setAttribute("message", "操作成功!");
request.getRequestDispatcher("admin/ys/fenlei.jsp").forward(request, response);
}
else {
request.setAttribute("message", "操作失败!");
request.getRequestDispatcher("admin/ys/fenlei.jsp").forward(request, response);
}
}
else if(method.equals("delmember")){ //删除注册用户
//hm xm dh zz zj sj sjzj lx bz
String id = request.getParameter("id");
int flag = cBean.comUp("delete from member where id='"+id+"'");
if(flag == Constant.SUCCESS){
request.setAttribute("message", "操作成功!");
request.getRequestDispatcher("admin/member/person.jsp").forward(request, response);
}
else {
request.setAttribute("message", "操作失败!");
request.getRequestDispatcher("admin/member/person.jsp").forward(request, response);
}
}
else if(method.equals("addpb")){ //增加排班信息
String ys = request.getParameter("ys");
String ks = request.getParameter("ks");
String sj = request.getParameter("sj");
String xx = request.getParameter("xx");
String str=cBean.getString("select id from pb where ys='"+ys+"' and xx='"+xx+"'");
if(str==null){
int flag = cBean.comUp("insert into pb(ys,ks,sj,xx) values('"+ys+"','"+ks+"','"+sj+"','"+xx+"')");
if(flag == Constant.SUCCESS){
request.setAttribute("message", "操作成功!");
request.getRequestDispatcher("admin/pb/index.jsp").forward(request, response);
}
else {
request.setAttribute("message", "操作失败!");
request.getRequestDispatcher("admin/pb/index.jsp").forward(request, response);
}
}
else{
request.setAttribute("message", "时间冲突!");
request.getRequestDispatcher("admin/pb/index.jsp").forward(request, response);
}
}
else if(method.equals("uppb")){ //修改排班信息
SmartUpload mySmartUpload = new SmartUpload();//init
int count = 0;
try{
mySmartUpload.initialize(config,request,response);
mySmartUpload.upload();
method = mySmartUpload.getRequest().getParameter("method").trim();
if(method.equals("addys")){//增加
//String xm = ""; String ks=""; String pic=""; String fy=""; String zc=""; String nl=""; String content="";String sj="";
String xm = mySmartUpload.getRequest().getParameter("xm");
String ks = mySmartUpload.getRequest().getParameter("ks");
String fy = mySmartUpload.getRequest().getParameter("fy");
String zc = mySmartUpload.getRequest().getParameter("zc");
String nl = mySmartUpload.getRequest().getParameter("nl");
String content = mySmartUpload.getRequest().getParameter("content1");
String bh = mySmartUpload.getRequest().getParameter("bh");
String sj = mySmartUpload.getRequest().getParameter("sj");
SmartFile file = mySmartUpload.getFiles().getFile(0);
String fileExt=file.getFileExt();
String path="/upload_file/sale";
count = mySmartUpload.save(path);
String str=cb.getString("select id from ys where bh='"+bh+"'");
if(str==null){
String sql="insert into ys(xm,ks,pic,fy,zc,nl,content,sj,bh) " +
"values('"+xm+"','"+ks+"','"+path+"/"+file.getFileName()+"','"+fy+"','"+zc+"','"+nl+"','"+content+"', '"+sj+"','"+bh+"')";
int flag =cb.comUp(sql);
if(flag == Constant.SUCCESS){
request.setAttribute("message", "操作成功!");
request.getRequestDispatcher(sysdir+"/ys/index.jsp").forward(request, response);
}
else{
request.setAttribute("message", "系统维护中,请稍后再试!");
request.getRequestDispatcher(sysdir+"/ys/index.jsp").forward(request, response);
}
}
else{
request.setAttribute("message", "编号重复!");
request.getRequestDispatcher(sysdir+"/ys/index.jsp").forward(request, response);
}
}
//update
String ysid = request.getParameter("ysid");
String sj = request.getParameter("sj");
String xs = request.getParameter("xs");
String lxr = request.getParameter("lxr");
String lxfs = request.getParameter("lxfs");
String xm=cBean.getString("select xm from ys where id='"+ysid+"'");
String ks=cBean.getString("select ks from ys where id='"+ysid+"'");
String fy=cBean.getString("select fy from ys where id='"+ysid+"'");
String ysbh=cBean.getString("select bh from ys where id='"+ysid+"'");
long bh=System.currentTimeMillis();
int flag = cBean.comUp("insert into gh(ysid,xm,ks,sj,lxr,lxfs,tjsj,member,bh,fy,xs,ysbh) " +
"values('"+ysid+"','"+xm+"','"+ks+"','"+sj+"','"+lxr+"','"+lxfs+"','"+date2+"','"+member+"','"+bh+"','"+fy+"','"+xs+"','"+ysbh+"')");
if(flag == Constant.SUCCESS){
request.setAttribute("message", "操作成功,请在用户中心查看预约编号!");
request.getRequestDispatcher("ys.jsp").forward(request, response);
}
else {
request.setAttribute("message", "操作失败!");
request.getRequestDispatcher("ys.jsp").forward(request, response);
}
}
else if(method.equals("delgh")){ //删除预约
String id = request.getParameter("id");
int flag = cBean.comUp("delete from gh where id='"+id+"'");
if(flag == Constant.SUCCESS){
request.setAttribute("message", "操作成功!");
request.getRequestDispatcher("member/gh/index.jsp").forward(request, response);
}
else {
request.setAttribute("message", "操作失败!");
request.getRequestDispatcher("member/gh/index.jsp").forward(request, response);
}
}
else if(method.equals("delgh2")){ //删除预约
String id = request.getParameter("id");
int flag = cBean.comUp("delete from gh where id='"+id+"'");
int flag = cBean.comUp("delete from pb where id='"+id+"'");
if(flag == Constant.SUCCESS){
request.setAttribute("message", "操作成功!");
request.getRequestDispatcher("admin/pb/index.jsp").forward(request, response);
}
else {
request.setAttribute("message", "操作失败!");
request.getRequestDispatcher("admin/pb/index.jsp").forward(request, response);
}
}
else if(method.equals("delys")){ //删除 医生
//hm xm dh zz zj sj sjzj lx bz
String id = request.getParameter("id");
int flag = cBean.comUp("delete from ys where id='"+id+"'");
if(flag == Constant.SUCCESS){
request.setAttribute("message", "操作成功!");
request.getRequestDispatcher("admin/ys/index.jsp").forward(request, response);
}
else {
request.setAttribute("message", "操作失败!");
request.getRequestDispatcher("admin/ys/index.jsp").forward(request, response);
}
}
//预约
else if(method.equals("gh")){ //加入预约
String member=(String)session.getAttribute("member");
String ysid = request.getParameter("ysid");
String sj = request.getParameter("sj");
String xs = request.getParameter("xs");
String lxr = request.getParameter("lxr");
String lxfs = request.getParameter("lxfs");
String xm=cBean.getString("select xm from ys where id='"+ysid+"'");
String ks=cBean.getString("select ks from ys where id='"+ysid+"'");
String fy=cBean.getString("select fy from ys where id='"+ysid+"'");
String ysbh=cBean.getString("select bh from ys where id='"+ysid+"'");
long bh=System.currentTimeMillis();
int flag = cBean.comUp("insert into gh(ysid,xm,ks,sj,lxr,lxfs,tjsj,member,bh,fy,xs,ysbh) " +
"values('"+ysid+"','"+xm+"','"+ks+"','"+sj+"','"+lxr+"','"+lxfs+"','"+date2+"','"+member+"','"+bh+"','"+fy+"','"+xs+"','"+ysbh+"')");
if(flag == Constant.SUCCESS){
request.setAttribute("message", "操作成功,请在用户中心查看预约编号!");
request.getRequestDispatcher("ys.jsp").forward(request, response);
}
else {
request.setAttribute("message", "操作失败!");
request.getRequestDispatcher("ys.jsp").forward(request, response);
}
}
}
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occure
*/
public void init() throws ServletException {
// Put your code here
}
}
package com.action;
/**
* 会员注册、修改资料等
*
*/
public class MemberAction extends HttpServlet {
/**
* Constructor of the object.
*/
public MemberAction() {
super();
}
/**
//预约
else if(method.equals("gh")){ //加入预约
String member=(String)session.getAttribute("member");
String ysid = request.getParameter("ysid");
String sj = request.getParameter("sj");
String xs = request.getParameter("xs");
String lxr = request.getParameter("lxr");
String lxfs = request.getParameter("lxfs");
String xm=cBean.getString("select xm from ys where id='"+ysid+"'");
String ks=cBean.getString("select ks from ys where id='"+ysid+"'");
String fy=cBean.getString("select fy from ys where id='"+ysid+"'");
String ysbh=cBean.getString("select bh from ys where id='"+ysid+"'");
long bh=System.currentTimeMillis();
int flag = cBean.comUp("insert into gh(ysid,xm,ks,sj,lxr,lxfs,tjsj,member,bh,fy,xs,ysbh) " +
"values('"+ysid+"','"+xm+"','"+ks+"','"+sj+"','"+lxr+"','"+lxfs+"','"+date2+"','"+member+"','"+bh+"','"+fy+"','"+xs+"','"+ysbh+"')");
if(flag == Constant.SUCCESS){
request.setAttribute("message", "操作成功,请在用户中心查看预约编号!");
request.getRequestDispatcher("ys.jsp").forward(request, response);
}
else {
request.setAttribute("message", "操作失败!");
request.getRequestDispatcher("ys.jsp").forward(request, response);
}
}
else if(method.equals("delgh")){ //删除预约
String id = request.getParameter("id");
int flag = cBean.comUp("delete from gh where id='"+id+"'");
if(flag == Constant.SUCCESS){
request.setAttribute("message", "操作成功!");
request.getRequestDispatcher("member/gh/index.jsp").forward(request, response);
}
else {
request.setAttribute("message", "操作失败!");
request.getRequestDispatcher("member/gh/index.jsp").forward(request, response);
}
}
else if(method.equals("delgh2")){ //删除预约
String id = request.getParameter("id");
int flag = cBean.comUp("delete from gh where id='"+id+"'");
if(flag == Constant.SUCCESS){
request.setAttribute("message", "操作成功!");
request.getRequestDispatcher("admin/gh/index.jsp").forward(request, response);
}
else {
request.setAttribute("message", "操作失败!");
request.getRequestDispatcher("admin/gh/index.jsp").forward(request, response);
}
}
else if(method.equals("delgh3")){ //删除预约
session.setAttribute("user", username);session.setAttribute("sf", sf);
request.getRequestDispatcher("admin/index.jsp").forward(request, response);
}
else{
request.setAttribute("message", "登录信息错误!");
request.getRequestDispatcher("admin/login.jsp").forward(request, response);
}
}
}
else if(method.equals("editpwd")){//admin edit password
String username2 = (String)session.getAttribute("user");
if(username2 == null){
request.getRequestDispatcher("error.jsp").forward(request, response);
}
else{
String oldpwd = MD5.MD5(request.getParameter("oldpwd").trim());
String newpwd = MD5.MD5(request.getParameter("newpwd").trim());
String username = (String)session.getAttribute("user");
int flag = loginbean.editPassword(username, oldpwd, newpwd);
switch (flag){
case Constant.SUCCESS:
request.setAttribute("message", "密码修改成功!");
request.getRequestDispatcher(sysdir+"/system/editpwd.jsp").forward(request, response);
break;
case Constant.PASSWORD_ERROR:
request.setAttribute("message", "原始密码错误,请确认权限!");
request.getRequestDispatcher(sysdir+"/system/editpwd.jsp").forward(request, response);
break;
case Constant.SYSTEM_ERROR:
request.setAttribute("message", "系统维护中,请稍后再试!");
request.getRequestDispatcher(sysdir+"/system/editpwd.jsp").forward(request, response);
break;
}
}
}
else if(method.equals("exit")){//admin exit
session.removeAttribute("user");
session.removeAttribute("sf");
System.gc();
request.getRequestDispatcher("index.jsp").forward(request, response);