基于javaweb的CT图像管理系统(servlet+jsp)

news2025/3/1 14:26:21

系统简介


    本项目采用eclipse工具开发,jsp+servlet+jquery技术编写,数据库采用的是mysql,navicat开发工具。

三个角色:管理员,普通用户,医生


模块简介


管理员:

1、登录

2、用户管理

3、医生管理

4、病例信息管理

5、医生分配管理

6、ct图像管理

7、公告管理

8、个人信息管理

9、数据统计管理

用户:

1、登录,注册

2、个人信息管理

3、病例管理

4、查看ct图像

5、查看公告

医生:

1、登录

2、个人信息管理

3、病例查看

4、更新ct图像



项目简介
难度等级:✩✩✩
用户类型:3角色(管理员,用户,医生)
设计模式:MVC
项目架构:B/S架构
开发语言:Java语言
前端技术:HTML、CSS、JS、JQuery等
后端技术:JSP、servlet框架
运行环境:Windows7或10、JDK1.8
运行工具:本系统采用eclipse开发,支持idea运行。
数  据  库:MySQL5.5/5.7/8.0版本
运行服务器:Tomcat7.0/8.0/8.5/9.0等版本
是否基于Maven环境:否
是否采用框架:是
数据库表数量:6张表
JSP页面数量:20多张
是否有分页:有分页

视频展示

javawebCT图像管理系统_哔哩哔哩_bilibili本项目采用eclipse工具开发(idea也可运行),jsp+servlet+jquery技术编写,数据库采用的是mysql,navicat开发工具。系统一共分为3个角色分别是:用户,管理员,医生有需要加 微信 hhh1148720753 或者 QQ1148720753(非开源,非开源,非开源,重要事情说三遍), 视频播放量 1、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 0、转发人数 0, 视频作者 码盗666, 作者简介 java码农一枚,相关视频:Ideogram正式发布 永久免费,可生成完美字体和创意图像,【2023年8月份最强chatGPT4.0】免费使用教程,javaweb网上图书销售管理系统,无偿分享最强ai工具包,解压既用,无需注册,数字人合成,ai绘画,语音合成,三合一软件包分享,免费使用ChatGPT-4,免费体验GPT-4,甚至可用千款插件,javaweb家庭财务管理系统,【MySQL教程】只要面试就会问的mysql夺命连环22问,1天吃透别人半个月刷的mysql面试内容,比自学强十倍|练完直接面试上岗!!,MySQL面试28问 | 一口气看完面试必问的mysql面试题详解,ChatGPT4.0国内免费网站,没有限制,打开直接使用icon-default.png?t=N7T8https://www.bilibili.com/video/BV1Xk4y1A7dp/

获取地址

xystgl · master · 码盗_java_bishe / java系统 · GitCodeGitCode——开源代码托管平台,独立第三方开源社区,Git/Github/Gitlabicon-default.png?t=N7T8https://gitcode.net/qq_43485489/javaweb/-/blob/master/xystgl

图片展示

部分代码展示

登录

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>登录</title>
    <link rel="icon" href="<%=path%>/resource/static/favicon.ico">
    <link rel="stylesheet" href="<%=path%>/resource/static/bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" href="<%=path%>/resource/static/admin/css/login.css">
    <script src="<%=path%>/resource/static/js/vue.min.js"></script>
    <script src="<%=path%>/resource/static/js/jquery-3.3.1.min.js"></script>
    <script src="<%=path%>/resource/static/bootstrap/js/bootstrap.bundle.js"></script>
</head>
<body style="background-color:#007BFF">
<div class="login" style="height:430px;">
    <form id="saveForm">
        <h2>CT图像管理系统</h2>
        <div class="form-group">
            <label>用户名</label>
            <input type="text" v-model="username" name="username" id="username" class="form-control form-control-lg">
        </div>
        <div class="form-group">
            <label>密码</label>
            <input type="password" v-model="password" name ="password" id="password" class="form-control form-control-lg" id="pwd">
        </div>
        <div class="form-group form-check">
           <input type="radio" class="form-check-input" name="type" value="1" id="exampleCheck2" checked>
            <label class="form-check-label" for="exampleCheck2">管理员</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
           <input type="radio" class="form-check-input" name="type" value="2" id="exampleCheck1" >
            <label class="form-check-label" for="exampleCheck1">用户</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
             <input type="radio" class="form-check-input" name="type" value="3" id="exampleCheck1" >
            <label class="form-check-label" for="exampleCheck1">医生</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            
        </div> 
        <button type="button" :disabled="loading" @click="login" id="login" class="btn btn-primary btn-lg  btn-block">
            <span v-show="loading" class="spinner-grow spinner-grow-sm" role="status" aria-hidden="true"></span>
            立即登录
        </button>
        <a type="button" href="LoginServlet?action=toRegister" class="btn btn-info  btn-lg  btn-block">
            <span v-show="loading" class="spinner-grow spinner-grow-sm" role="status" aria-hidden="true"></span>
            去注册
        </a>
       
    </form>
</div>

<script>
	    $("#login").click(function(){
	    	var username = $("#username").val();
	    	var password = $("#password").val();
	    	if(username == null || username == ""){
	    		alert("请填写用户名");
	    		return false;
	    	}if(password == null || password == ""){
	    		alert("请填写密码");
	    		return false;
	    	}
			//执行添加的操作ajax
			$.ajax({
				cache:true,
				type:"post",
				url:"LoginServlet?action=login",
				data:$("#saveForm").serialize(),
				async:false,
				success:function(e){//takeout
					if(e == 'ok'){
						alert("登录成功");
						 window.parent.location.href="LoginServlet?action=toMain";
					}else{
						alert("登录失败,账号或密码错误");
					}
				}
			})
		});
		   
</script>

</body>
</html>

 

/**
	 * 登录
	 * 
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 */
	public void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 处理登录
		// 清空登录记录
		request.getSession().invalidate();
		// 进行登录操作
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String type = request.getParameter("type");
		if (type != null && type.equals("1")) {
			Admin admin1 = UserService.selectAdmin(username, password);
			if (admin1 != null) {
				response.getWriter().print("ok");
				request.getSession().setAttribute("admin", admin1);
				request.getSession().setAttribute("flag", 1);
			} else {
				response.getWriter().print("error");
			}
		} else if (type != null && type.equals("2")) {
			User User1 = UserService.selectUser(username, password);
			if (User1 != null) {
				response.getWriter().print("ok");
				request.getSession().setAttribute("user", User1);
				request.getSession().setAttribute("flag", 2);
			} else {
				response.getWriter().print("error");
			}
		}else if (type != null && type.equals("3")) {
			Doctor data = DoctorService.selectDoctor(username, password);
			if (data != null) {
				response.getWriter().print("ok");
				request.getSession().setAttribute("doctor", data);
				request.getSession().setAttribute("flag", 3);
			} else {
				response.getWriter().print("error");
			}
		} else {
			response.getWriter().print("error");
		}

	}

注册

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>登录</title>
    <link rel="icon" href="<%=path%>/resource/static/favicon.ico">
    <link rel="stylesheet" href="<%=path%>/resource/static/bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" href="<%=path%>/resource/static/admin/css/login.css">
    <script src="<%=path%>/resource/static/js/vue.min.js"></script>
    <script src="<%=path%>/resource/static/js/jquery-3.3.1.min.js"></script>
    <script src="<%=path%>/resource/static/bootstrap/js/bootstrap.bundle.js"></script>
</head>
<body>
<div class="login" style="height:660px;margin-top:-300px">
    <form id="saveForm" enctype="multipart/form-data">
        <h2>注册</h2>
        <div class="form-group">
            <label>姓名</label>
            <input type="text" name="realname" id="realname" class="form-control form-control-lg">
        </div>
        <div class="form-group">
            <label>密码</label>
            <input type="password"  name ="pwd" id="pwd" class="form-control form-control-lg" id="pwd">
        </div>
         <div class="form-group">
            <label>手机号</label>
            <input type="text" name="phone" id="phone" class="form-control form-control-lg">
        </div>
        
        	<div class="form-group">
				<label>性别</label> <select name="sex" class="form-control">
				<option value="男">男</option>
				<option value="女">女</option>
			</select> 
			</div>
										
        	<div class="form-group">
			   <label>头像</label>
			  <input type="file" name="img" id="img" >
		    </div>
        <button type="button" :disabled="loading" @click="login" id="login" class="btn btn-primary btn-lg  btn-block">
            <span v-show="loading" class="spinner-grow spinner-grow-sm" role="status" aria-hidden="true"></span>
            立即注册
        </button>
         <a  href="LoginServlet?action=toLogin" class="btn btn-info btn-lg  btn-block">
            <span v-show="loading" class="spinner-grow spinner-grow-sm" role="status" aria-hidden="true"></span>
            返回登录
        </a>
    </form>
</div>

<script>
	    $("#login").click(function(){
	    	var realname = $("#realname").val();
	    	var pwd = $("#pwd").val();
	    	var phone = $("#phone").val();
	    	if(realname == null || realname == ""){
	    		alert("请填写姓名");
	    		return false;
	    	}
	    	if(pwd == null || pwd == ""){
	    		alert("请填写密码");
	    		return false;
	    	}
	    	if(phone == null || phone == ""){
	    		alert("请填写手机号");
	    		return false;
	    	}
			//执行添加的操作ajax
			$.ajax({
				cache:true,
				type:"post",
				url : "UserServlet?action=addUser",
				data : new FormData($('#saveForm')[0]),
				processData: false,
				contentType: false,
				async:false,
				success:function(e){//takeout
					if (e == "yes") {
						alert("注册成功!");
						window.location.href = "LoginServlet?action=toLogin";
					} else if (e == "isExist") {
						alert("注册失败,手机号重复");
					}else{
						alert("注册失败");
					}
				}
			})
		});
		   
</script>

</body>
</html>

系统总结


系统使用eclipse开发的(也可idea运行)
相关技术:jsp,servlet,JavaScript,ajax,jquery,mvc结构,jdbc连接池C3p0,mysql,bootstrap。

我的开发工具:eclipse2020,mysql5.7,navicat数据库管理工具,Jdk1.8,tomcat8.5,google浏览器。

非开源!!!!!!
项目截图中的数据,很多是用来测试的,需求自行添加合适的数据图片
喜欢的朋友的点赞加关注,感兴趣的同学可以研究!!!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/998672.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

科技部副部长:以负责任的态度推动大模型发展,加强国际交流合作

源自&#xff1a;澎湃新闻 ChatGPT大模型技术拉开了迈向通用人工智能的序幕&#xff0c;通用人工智能将引发经济、社会、文化等领域的变革&#xff0c;有望推进人类社会迈向智能增强的时代。 要坚持开源协作&#xff0c;加强大模型技术持续创新&#xff0c;协同解决透明性、稳…

SEO优化的优势(让你的网站脱颖而出)

随着互联网技术的快速发展&#xff0c;现如今每个企业或个人都拥有自己的网站。然而&#xff0c;要想在竞争激烈的网络世界中脱颖而出并吸引更多的用户&#xff0c;SEO优化就显得尤为重要。在本文中&#xff0c;我们将详细介绍SEO优化所带来的优势。 一&#xff1a;提高网站排名…

电子电路学习笔记之NCV84120DR2G——车规级单通道高压侧驱动器

关于车规级芯片&#xff1a; 关于车规级芯片&#xff08;Automotive Grade Chip&#xff09;&#xff0c;车规级芯片是专门用于汽车行业的芯片&#xff0c;具有高可靠性、高稳定性和低功耗等特点&#xff0c;以满足汽车电子系统的严格要求。这些芯片通常用于车载电子控制单元&…

数据库深分页介绍及优化方案 | 京东云技术团队

在前端页面显示&#xff0c;为了避免一次性展示全量数据&#xff0c;通过上下翻页或指定页码的方式查看部分数据&#xff0c;就像翻书一样&#xff0c;这就利用了MySQL的分页查询。 一、MySQL的深分页 查询偏移量过大的分页会导致数据库获取数据性能低下&#xff0c;以如下SQ…

vue设置全局变量:让你的数据无处不在!

前言 在 vue 开发中&#xff0c;如何设置全局变量是一个关键问题。本文将介绍多种方法&#xff0c;帮助大家轻松实现全局变量的共享&#xff0c;提升 vue 项目的开发效率。让我们一起来探索这些方法&#xff0c;为你的 vue 项目带来更好的开发体验。 方法一&#xff1a;使用 Vu…

Simulink搭建C语言仿真模型*

Simulink搭建C语言仿真模型 1、 在library库中查找S-Function Builder模块&#xff0c;拖入到空白区&#xff1b; 2、 该模块即为C语言代码模块&#xff0c;双击该模块&#xff0c;在Initialization栏&#xff0c;设置sample mode为离散采样&#xff0c;采样时间间隔Sample ti…

fastjson(反序列化)漏洞复现

fastjson 1. 漏洞描述 ​ FastJson是Alibaba的一款开源Json解析库&#xff0c;可用于将Java对象转换为其Json表示形式&#xff0c;也可以用于将Json字符串转换为等效的Java对象。近几年来FastJson漏洞层出不穷。RCE漏洞的源头&#xff1a;17年FastJson爆出的1.2.24反序列化漏…

软件测试报告加盖和不加盖CMA/CNAS标识的区别有哪些?

一、CNAS是什么&#xff1f; “CNAS”是China National Accreditation Service for Conformity Assessment&#xff08;ZG合格评定国家认可委员会&#xff09;的英文缩写。zg合格评定国家认可委员会的规定&#xff0c;由国家认证认可监督管理委员会批准设立并授权的国家认可机…

在群晖上安装Nextcloud-AIO详解

本文是应网友 刘源 的要求折腾的&#xff1b; 什么是 Nextcloud AIO &#xff1f; Nextcloud AIO 就是 Nextcloud All-in-One &#xff0c;顾名思义就是一个 Nextcloud 的 All-in-One 版本&#xff0c;这是一个基于 Docker 的项目&#xff0c;它允许仅安装一个容器&#xff0c;…

苹果铃声怎么设置?3招教你设置个性化铃声!

苹果手机因其颜值、性能与生态吸引了一大批粉丝用户。在拿到新手机后&#xff0c;大家第一时间就是给手机设置好听的铃声。那么&#xff0c;苹果铃声怎么设置呢&#xff1f;手机铃声能设置成自己喜欢的歌曲吗&#xff1f;当然可以了&#xff01;本文将给大家介绍3种轻松设置苹果…

文件上传16.17关

二次渲染-Pass-16 直接看源码&#xff1a; 我们还是按照13&#xff0c;14&#xff0c;15的思路进行上传&#xff1a;发现没有info信息了。 二次渲染的时候把码的信息给干掉了。怎么办呢&#xff1f; 把原图和他修改过的图片进行比较&#xff0c;看看哪个部分没有被修改。将p…

轻松整理文件,让你的电脑更有条理!尝试按名称归类方法

文件管理是我们日常计算机使用中经常面临的一项任务。有时候&#xff0c;我们可能需要对电脑中大量的文件进行分类整理&#xff0c;而手动一个个处理无疑是繁琐且耗时的。为了提高效率&#xff0c;许多文件批量高手软件应运而生。 文件批量高手软件是一种能够按文件名称批量归…

常见气体摩尔体积

参考链接 固体和气体的摩尔体积 - 百度文库 (baidu.com) 特此记录 anlog 2023年8月7日

三维模型3DTILE格式轻量化压缩主要技术方法浅析

三维模型3DTILE格式轻量化压缩主要技术方法浅析 三维模型3DTILE格式轻量化压缩主要技术方法浅析 随着三维地理空间数据的应用日益广泛&#xff0c;为了更快速地传输和存储这些大规模数据&#xff0c;3DTile格式的轻量化压缩显得尤为重要。本文将浅析关于三维模型3DTile格式轻量…

快人一步进入智能新纪元,《新程序员006》来了!

文 | 王启隆 曾浩辰 出品 | 《新程序员》编辑部 亲爱的 CSDN 以及《新程序员》的读者朋友们&#xff0c;金秋将至&#xff0c;《新程序员006&#xff1a;人工智能新十年》也正式与大家见面&#xff01;现在点击下方封面&#xff0c;即可订阅&#xff0c;立即阅读电子书。精美…

蓝皮书首发!车载毫米波雷达赛道进入「大变革周期」,技术/产品/市场并行升级

随着整车智能化进入普及周期&#xff0c;汽车制造商对传感器的需求正在激增&#xff0c;尤其是在辅助驾驶领域&#xff0c;不管是入门级L2&#xff0c;还是高阶NOA&#xff0c;毫米波雷达的单车搭载数量也在发生变化。 高工智能汽车研究院监测数据显示&#xff0c;2022年中国市…

java: 错误: 无效的源发行版:17 【解决】

文章目录 异常信息原因重新创建一个低版本springboot 异常信息 java: 错误: 无效的源发行版&#xff1a;17原因 windows 10本地 jdk8 pom.xml: springboot 3.1.3 versionjdk17 springboot版本的问题 springboot3.0 需要jdk17支持&#xff0c;如果没有安装jdk17 只需把sprin…

超级好用的css属性——clip-path

目录 基本概念 circle()函数 ellipse()函数 polygon()函数 path()函数 总结 clip-path是CSS3中的一个属性&#xff0c;用于在元素上创建一个裁剪区域&#xff0c;以显示元素的一部分。它允许您选择性地显示元素的某个部分&#xff0c;而隐藏其他部分。clip-path属性可以用…

4个维度讲透ChatGPT技术原理,揭开ChatGPT神秘技术黑盒!(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

要闻 |上海市测绘院一行领导莅临大势智慧考察交流

9月8日&#xff0c;上海市测绘院首席专家、博士后科研工作站站长顾建祥等一行莅临武汉大势智慧科技有限公司&#xff08;后简称“大势智慧”&#xff09;考察工作。大势智慧CEO黄先锋博士、CTO张帆博士等人陪同调研&#xff0c;并就新型基础测绘与实景三维上海建设展开座谈。 上…