基于SSM期刊论文提交与评阅系统设计与实现(idea-javaweb-javaee-j2ee-springboot)

 

1 概述

 

 系统应该要具备以下功能:

  1. 用户注册,主要完成非系统用户注册成为该系统的用户,注册成功后可以提交论文;
  2. 论文管理,主要是包括论文提交以及管理员对所有新提交的论文进行管理,包括论文初步审核、分配评阅者、评阅论文以及论文最终评阅结果;
  3. 评阅专家管理,主要完成对评阅专家的基本管理,包括增加、修改、删除、查询等基本信息的管理,同时包括对评阅专家登录账号的管理;
  4. 个人信息管理,主要是指个人密码修改,注册用户、管理员、评阅专家都可以对自己的密码进行管理以及评阅专家对个人基本信息的更新;

2 数据库表

 

表3-4 评阅专家信息表

表名

Expert

描述

存放所有论文评阅专家的基本信息,管理员来对其进行管理

字段名

数据类型

长度

是否为空

描述

EX_id

int

 

Notnull

专家编号[主键]

EX _name

varchar

100

Notnull

姓名

Ex_sex

varchar

20

Notnull

性别

EX _title

varchar

100

Notnull

职称

EX _unit

Varchar

100

Notnull

单位

Ex_ads

Varchar

100

 

地址

EX_code

Varchar

100

 

邮编

EX _tel

Varchar

100

Notnull

联系电话

EX _email

Varchar

100

Notnull

电子邮箱

EX _domain1

Varchar

500

Notnull

研究领域一

EX _domain2

Varchar

500

 

研究领域二

EX _domain3

Varchar

500

 

研究领域三

 

表3-5 论文评阅意见表

表名

Comment

描述

存放评阅专家对所评阅的论文发表的评阅意见

字段名

数据类型

长度

是否为空

描述

Com _id

int

 

Notnull

意见编号[主键]

Ar_id

int

 

Notnull

论文编号,外键,引用(Article)[Ar_id]

Ex_id

int

 

Notnull

评阅者编号,外键,引用(Reader)[Reader_id]

Com_note

varchar

1000

 

评阅意见

 

3 关键代码

 

package servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


//利用oreilly.servlet.multipartrequest实现文件上传
import com.oreilly.servlet.MultipartRequest;

import dao.*;
import entity.*;

public class ArticleServlet extends HttpServlet {

	public ArticleServlet() {
		super();
	}
	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request,response);	
	
	}
 
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//获取操作名
		String oper=request.getParameter("oper");
		
		if(oper!=null){
			
			if(oper.equals("add")){           //添加论文
				add(request,response);
	              }
			if(oper.equals("check")){          //论文初审
				check(request,response);
			 }
			if(oper.equals("ar_expert_add")){          //论文分配论文
				ar_expert_add(request,response);
			 }
			if(oper.equals("add_result")){          //给出论文最后的评阅结果
				add_result(request,response);
			 }
			}
	}
	
	//为论文添加专家
	private void ar_expert_add(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException{
		
		//取得session中的Ar_id
		HttpSession session=request.getSession();
		String arid=(String)session.getAttribute("ar_id");
		int ar_id=Integer.parseInt(arid);
		System.out.println("ar_expert_add de servlet de id is  "+ar_id);
		
		//现在获得页面上checkbox选中了的Ex_id
		
		//String arid=request.getAttribute("selected_ex");
		
		String[] eids = request.getParameterValues("selected_ex");
		 
		ArticleDAO dao=new ArticleDAO();
		  article a=new article();
		
		 comment obj=new comment();
		 boolean result=false;
		 boolean resutl2=false;
		 System.out.println(eids.length);
//		 for(String eid1:eids) {
//			 System.out.println("edid zhangll is  "+eid1);
//		 }
		for(String eid : eids){
			System.out.println("获得的checkbox的值是   "+eid);
			int ex_id=Integer.parseInt(eid);
			String note="";
			String state="评阅中...";
			//comment中
			obj.setAr_id(ar_id);
			obj.setEx_id(ex_id);
			obj.setCom_note(note);
			//article中
			a.setAr_id(ar_id);
			a.setAr_state(state);
			a.setAr_result("");
			
		    result=dao.article_ex_add(obj);       //插入数据到comment
		    resutl2=dao.update(a);               //更改article的状态		 
		}
		
		if(result&&resutl2){ 
			 response.sendRedirect("article_expert_add_ok.jsp");
			 System.out.println("专家分配------成功");
		 }else{
			 response.sendRedirect("MyJsptest.jsp");
			 System.out.println("专家分配------失败");
		 }	
	}
	
			
			//上传论文
  private void add(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException{
			
			ArticleDAO dao=new ArticleDAO();		
			//获取上传文件的名称
			//开始写上传的代码
			//1.查找文件上传的位置		
			//获取当前项目的发布,路径
		//String savepath = request.getRealPath("/WebRoot");
			//这个是获取项目的路径,上传的文件跟着项目走
			String savepath=request.getSession().getServletContext().getRealPath("/web/file");
			
			//这个是本地的存储路径
			//String savepath = "e:/";
			
			System.out.println("存储路径是"+savepath);
			
			//2.设置文件上传的大小限制。10M
			int maxsize = 10*1024*1024;
			MultipartRequest muti=null;
			
			try{
			//3.创建对象,利用构造函数将文件上传
			 muti = new MultipartRequest(request,savepath,maxsize,"gbk");
			 System.out.println("上传文件太大--2");
				//4.获取上传的图片名==同时把名称写入数据库,uploadfile是文件上传按钮的名称name
				String fileName = muti.getFilesystemName("uploadfile");
				
				//文件上传成功!
				System.out.println("文件上传成功!---->:"+fileName);		
			
				//文件的名称,存入数据库article表中
				String name=fileName;
				
				//获取传值
				String Title=muti.getParameter("title");
				String Abstract=muti.getParameter("abstract");
				String key=muti.getParameter("key");
						
				
				//获得论文提交者的ID----user_id
				UserDAO udao=new UserDAO();
				HttpSession session=request.getSession();
				String user_name=(String)session.getAttribute("loginName");
				String user_pwd=(String) session.getAttribute("password");		
				int User_id=udao.getuser_id(user_name, user_pwd);
				System.out.println("获得的用户id是:"+User_id);
				
				
				//获取系统时间
				String time=dao.getSystemTime();
				//初始状态为0---表示提交成功,等待评阅
				String state="等待初审";
				// 初审结果为空
				String result="";
				

				String writer1_name=muti.getParameter("writer1_name");
				String writer1_unit=muti.getParameter("writer1_unit");
				String writer1_email=muti.getParameter("writer1_email");
				String writer1_code=muti.getParameter("writer1_code");
				String writer1_adr=muti.getParameter("writer1_adr");
			
				String writer2_name=muti.getParameter("writer2_name");
				String writer2_unit=muti.getParameter("writer2_unit");
				String writer2_email=muti.getParameter("writer2_email");
				String writer2_code=muti.getParameter("writer2_code");
				String writer2_adr=muti.getParameter("writer2_adr");
				
				String writer3_name=muti.getParameter("name3");
				String writer3_unit=muti.getParameter("unit3");
				String writer3_email=muti.getParameter("email3");
				String writer3_code=muti.getParameter("code3");
				String writer3_adr=muti.getParameter("adr3");
				
				String writer4_name=muti.getParameter("name4");
				String writer4_unit=muti.getParameter("unit4");
				String writer4_email=muti.getParameter("email4");
				String writer4_code=muti.getParameter("code4");
				String writer4_adr=muti.getParameter("adr4");
				
				String writer5_name=muti.getParameter("name5");
				String writer5_unit=muti.getParameter("unit5");
				String writer5_email=muti.getParameter("email5");
				String writer5_code=muti.getParameter("code5");
				String writer5_adr=muti.getParameter("adr5");
				
				System.out.println(writer1_name+" "+writer1_unit+" "+writer1_email+ " "+writer1_code+" "+writer1_adr);
				System.out.println(writer2_name+" "+writer2_unit+" "+writer2_email+ " "+writer2_code+" "+writer2_adr);
				System.out.println(writer3_name+" "+writer3_unit+" "+writer3_email+ " "+writer3_code+" "+writer3_adr);
				System.out.println(writer4_name+" "+writer4_unit+" "+writer4_email+ " "+writer4_code+" "+writer4_adr);
				//数据库操作类
				//数据库操作类
				//数据库操作类
				//数据库操作类
				
				article obj=new article();
				obj.setAr_title(Title);
				obj.setAr_abstract(Abstract);
				obj.setAr_key(key);
				obj.setAr_name(name);
				obj.setUser_id(User_id);
				obj.setAr_time(time);
				obj.setAr_state(state);
				obj.setAr_result(result);
				obj.setWriter1_name(writer1_name);
				obj.setWriter1_unit(writer1_unit);
				obj.setWriter1_email(writer1_email);
				obj.setWriter1_code(writer1_code);
				obj.setWriter1_adr(writer1_adr);
				
				obj.setWriter2_name(writer2_name);
				obj.setWriter2_unit(writer2_unit);
				obj.setWriter2_email(writer2_email);
				obj.setWriter2_code(writer2_code);
				obj.setWriter2_adr(writer2_adr);
				
				obj.setWriter3_name(writer3_name);
				obj.setWriter3_unit(writer3_unit);
				obj.setWriter3_email(writer3_email);
				obj.setWriter3_code(writer3_code);
				obj.setWriter3_adr(writer3_adr);
				
				obj.setWriter4_name(writer4_name);
				obj.setWriter4_unit(writer4_unit);
				obj.setWriter4_email(writer4_email);
				obj.setWriter4_code(writer4_code);
				obj.setWriter4_adr(writer4_adr);
				
				obj.setWriter5_name(writer5_name);
				obj.setWriter5_unit(writer5_unit);
				obj.setWriter5_email(writer5_email);
				obj.setWriter5_code(writer5_code);
				obj.setWriter5_adr(writer5_adr);
										
				boolean Result=dao.add(obj);
				if(Result){
					response.sendRedirect("article_add_ok.jsp");
					System.out.println("论文提交成功!");
				}else{
					System.out.println("论文提交失败!");
					response.sendRedirect("MyJsptest.jsp");
				}	
			}
			catch(Exception e){
				//e.printStackTrace();
				//上传文件太大,超过设定值
				System.out.println("上传文件太大");
				//弹出消息框提示注册成功
		        StringBuffer sb = new StringBuffer();
		        sb.append("<script>");
		        sb.append("alert(\"上传文件太大!!!\")");
		        sb.append("</script>");
				request.setAttribute("sb",sb);
				request.getRequestDispatcher("article_add.jsp").forward(request, response);		
				
			}
			
	}
		
		//论文初审
		private void check(HttpServletRequest request, HttpServletResponse response)
		throws ServletException, IOException{
			
			
			System.out.println("------------进入初审的servlet");
			
			//获取页面上的初审意见---1.分配评阅者 2.拒绝		
			
			String result=request.getParameter("result");
			String ar_id=request.getParameter("aarrid");    //页面上传过来的id
			
			System.out.println("获得的result是"+result+"     id 是"+ar_id);		
			if(result.equals("拒绝(不符合要求)")){
				
				//如果不符合要求----写result字段...现在注意,更改state要和添加note一起修改数据库,保证数据的完整性
				
				System.out.println("------------进入初审的if");
				int id=Integer.parseInt(ar_id);
				
	                	System.out.println("论文--初审意见--提交成功!");
	    				//response.sendRedirect("article_check_note.jsp");
	    				//把id保存在session中
	    				//获取session对象
	    				HttpSession session=request.getSession();
	    				
	    				//session设置当前活动用户名
	    				session.setAttribute("ar_id",id);
	    				//request.setAttribute("ar_id",ar_id);
	    				//内部跳转,如果要将数据显示在页面上,必修采用内部跳转
	    				//外部跳转,浏览器地址栏发送改变,外部跳转其实完成的就是二次请求,request中值,全部丢失
	    				request.getRequestDispatcher("article_check_note.jsp").forward(request, response);		
	    				return;
	             
			}
			else{
				System.out.println("------------进入初审的else");
				
				//内部跳转====用request传递论文的id
				System.out.println(ar_id);
				//把id保存在session中
				//获取session对象
				HttpSession session=request.getSession();
				
				//session设置当前活动用户名
				session.setAttribute("ar_id",ar_id);
				//request.setAttribute("ar_id",ar_id);
				//内部跳转,如果要将数据显示在页面上,必修采用内部跳转
				//外部跳转,浏览器地址栏发送改变,外部跳转其实完成的就是二次请求,request中值,全部丢失
				request.getRequestDispatcher("article_expert_add.jsp").forward(request, response);
				System.out.println("---进入专家分配页面");
			}
		}
	
		
		//给出论文最后评阅结果
		private void add_result(HttpServletRequest request, HttpServletResponse response)
		throws ServletException, IOException{
			
			
			System.out.println("------------进入给出最后评阅结果的servlet");
			
			//获取页面上的初审意见---1.录用2.修改后录用3.拒绝
			ArticleDAO dao=new ArticleDAO();
					
			String result=request.getParameter("result");
			String ar_id=request.getParameter("a_id");    //页面上传过来的id
			
			System.out.println("获得的result是"+result+"     id 是"+ar_id);		
			int id=Integer.parseInt(ar_id);
			
			article obj=new article();
			obj.setAr_id(id);
			obj.setAr_result(result);
			obj.setAr_state("评阅完成");
			//更新state和result
			boolean result2=dao.update(obj);
			if(result2){
				System.out.println("评阅成功");
				response.sendRedirect("article_result_add_ok.jsp");
			}
			else{
				System.out.println("评阅失败");
				response.sendRedirect("MyJsptest.jsp");
			}
			
		  


		}
		
		
		//上传论文
		  private void addtest(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException{
					
					ArticleDAO dao=new ArticleDAO();		
					//获取上传文件的名称
					//开始写上传的代码
					//1.查找文件上传的位置		
					//获取当前项目的发布,路径
				//String savepath = request.getRealPath("/WebRoot");
					//这个是获取项目的路径,上传的文件跟着项目走
					String savepath=request.getSession().getServletContext().getRealPath("/web/file");
					
					//这个是本地的存储路径
					//String savepath = "e:/";
					
					System.out.println("存储路径是"+savepath);
					
					//2.设置文件上传的大小限制。10M
					int maxsize = 10*1024*1024;
					
					//3.创建对象,利用构造函数将文件上传
					MultipartRequest muti = new MultipartRequest(request,savepath,maxsize,"gbk");
					
					//4.获取上传的图片名==同时把名称写入数据库,uploadfile是文件上传按钮的名称name
					String fileName = muti.getFilesystemName("uploadfile");
					
					//文件上传成功!
					System.out.println("文件上传成功!---->:"+fileName);		
				
					//文件的名称,存入数据库article表中
					String name=fileName;
					
					//获取传值
					String Title=muti.getParameter("title");
					String Abstract=muti.getParameter("abstract");
					String key=muti.getParameter("key");
							
					
					//获得论文提交者的ID----user_id
					UserDAO udao=new UserDAO();
					HttpSession session=request.getSession();
					String user_name=(String)session.getAttribute("loginName");
					String user_pwd=(String) session.getAttribute("password");		
					int User_id=udao.getuser_id(user_name, user_pwd);
					System.out.println("获得的用户id是:"+User_id);
					
					
					//获取系统时间
					String time=dao.getSystemTime();
					//初始状态为0---表示提交成功,等待评阅
					String state="等待初审";
					// 初审结果为空
					String result="";
					

					String writer1_name=muti.getParameter("writer1_name");
					String writer1_unit=muti.getParameter("writer1_unit");
					String writer1_email=muti.getParameter("writer1_email");
					String writer1_code=muti.getParameter("writer1_code");
					String writer1_adr=muti.getParameter("writer1_adr");
				
					String writer2_name=muti.getParameter("writer2_name");
					String writer2_unit=muti.getParameter("writer2_unit");
					String writer2_email=muti.getParameter("writer2_email");
					String writer2_code=muti.getParameter("writer2_code");
					String writer2_adr=muti.getParameter("writer2_adr");
					
					String writer3_name=muti.getParameter("name3");
					String writer3_unit=muti.getParameter("unit3");
					String writer3_email=muti.getParameter("email3");
					String writer3_code=muti.getParameter("code3");
					String writer3_adr=muti.getParameter("adr3");
					
					String writer4_name=muti.getParameter("name4");
					String writer4_unit=muti.getParameter("unit4");
					String writer4_email=muti.getParameter("email4");
					String writer4_code=muti.getParameter("code4");
					String writer4_adr=muti.getParameter("adr4");
					
					String writer5_name=muti.getParameter("name5");
					String writer5_unit=muti.getParameter("unit5");
					String writer5_email=muti.getParameter("email5");
					String writer5_code=muti.getParameter("code5");
					String writer5_adr=muti.getParameter("adr5");
					
					System.out.println(writer1_name+" "+writer1_unit+" "+writer1_email+ " "+writer1_code+" "+writer1_adr);
					System.out.println(writer2_name+" "+writer2_unit+" "+writer2_email+ " "+writer2_code+" "+writer2_adr);
					System.out.println(writer3_name+" "+writer3_unit+" "+writer3_email+ " "+writer3_code+" "+writer3_adr);
					System.out.println(writer4_name+" "+writer4_unit+" "+writer4_email+ " "+writer4_code+" "+writer4_adr);
					//数据库操作类
					//数据库操作类
					//数据库操作类
					//数据库操作类
					
					article obj=new article();
					obj.setAr_title(Title);
					obj.setAr_abstract(Abstract);
					obj.setAr_key(key);
					obj.setAr_name(name);
					obj.setUser_id(User_id);
					obj.setAr_time(time);
					obj.setAr_state(state);
					obj.setAr_result(result);
					obj.setWriter1_name(writer1_name);
					obj.setWriter1_unit(writer1_unit);
					obj.setWriter1_email(writer1_email);
					obj.setWriter1_code(writer1_code);
					obj.setWriter1_adr(writer1_adr);
					
					obj.setWriter2_name(writer2_name);
					obj.setWriter2_unit(writer2_unit);
					obj.setWriter2_email(writer2_email);
					obj.setWriter2_code(writer2_code);
					obj.setWriter2_adr(writer2_adr);
					
					obj.setWriter3_name(writer3_name);
					obj.setWriter3_unit(writer3_unit);
					obj.setWriter3_email(writer3_email);
					obj.setWriter3_code(writer3_code);
					obj.setWriter3_adr(writer3_adr);
					
					obj.setWriter4_name(writer4_name);
					obj.setWriter4_unit(writer4_unit);
					obj.setWriter4_email(writer4_email);
					obj.setWriter4_code(writer4_code);
					obj.setWriter4_adr(writer4_adr);
					
					obj.setWriter5_name(writer5_name);
					obj.setWriter5_unit(writer5_unit);
					obj.setWriter5_email(writer5_email);
					obj.setWriter5_code(writer5_code);
					obj.setWriter5_adr(writer5_adr);
											
					boolean Result=dao.add(obj);
					if(Result){
						response.sendRedirect("article_add_ok.jsp");
						System.out.println("论文提交成功!");
					}else{
						System.out.println("论文提交失败!");
						response.sendRedirect("MyJsptest.jsp");
					}	
			}

}

4 效果演示

 

idea或eclipse开发,mysql数据库

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机程序设计开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值