摘要
进入二十一世纪以来,计算机技术蓬勃发展,人们的生活发生了许多变化。很多时候人们不需要亲力亲为的做一些事情,通过网络即可完成以往需要花费很多时间的操作,这可以提升人们的生活质量。计算机技术对人们生活的改变不仅仅包含衣食住行等方面,它在各种领域都对现代生活作出了贡献。
在计算机技术快速发展之前,大学生们如果想进行文件或者试卷的打印是非常麻烦的,学生们需要前往学校校内或者校外的打印中心进行打印的操作,但这种进行打印的方式首先效率很低,因为一个打印社里面的电脑和打印机是有限的,大学生们很有可能需要进行很长时间的排队才能进行打印,因为在打印室里有的同学打印的张数比较多,所以提高打印的效率是很重要的,这样一方面可以保证学生们的体验,另一方面也可以帮助打印社的管理人员更好地进行打印社日常工作的维护。
本系统使用JSP语言和MySQL数据库开发,使用的开发框架为SSM框架。本系统的开发可以为各位大学生及打印社的商户提供打印信息查询、资料信息查询、订单管理等多种功能,让人们不需要再出门就可以进行打印资料信息的查看,在极大地满足用户们进行在线打印的需求的同时,还开发了操作视频及新闻信息的显示,让大学生用户名可以更好地学会使用本系统。
关键词:网上打印;SSM;JSP;MYSQL
系统功能实现
首页展示
资料信息浏览
新闻公告浏览
个人后台界面
个人打印管理
开发工具技术介绍
本系统的开发框架为B/S架构,与传统的C/S架构相比,它不需要繁琐的安装,并且运行时只需要打开浏览器即可,对电脑的硬件要求和对操作者的要求较低。以往的很多系统使用的都是C/S架构,C/S架构虽然在某些方面表现非常好,但是逐渐被B/S架构取代了,因为C/S架构必须进行安装或者升级之后才可以使用,而B/S架构只需要电脑有浏览器即可使用,所以本系统采用了B/S架构。
本系统的后台语言使用的是JSP,JSP是一种动态编程语言,可以对数据进行增删改查等操作。在JSP、ASP、PHP等动态语言出现之前,很多网站就只能用静态的HTML语言宣传自己的网站,但这种网站不具备数据的存储操作功能,因为无法连接数据库,本系统使用的JSP语言可以与HTML语言有效的结合起来,不仅可以将各类素材展现在页面上,还可以将数据保存在数据库中。
选择JSP技术开发主要因为其有以下几个优点:
(1)首先就是因为JSP的结构清晰、易于理解,而且JSP是面向对象的编程语言,可以使用封装、继承和多态等技术,可以使用类和对象的思想解决很多问题,可以极大的提高编码效率。
(2)选择JSP的第二个原因就是它在浏览器中的响应速度较快,可以提高本系统运行的速度。
(3)选择JSP作为本系统开发技术的第三个原因就是它具备较为稳定的连接数据库的方法,可以使数据稳定地进行存储和更新。
本系统用来进行数据存储的数据库是MYSQL数据库,基本的使用与其他数据库相似。都可以使用表进行数据的存储。除此之外还可以使用存储过程、事务、触发器等对象。以下是MYSQL的几个优点:
(1)首先就是因为MYSQL较为小巧、易于安装和维护,而且MYSQL是完全开源并且免费的,非常适合计算机专业的学生作为学习工具使用,虽然MYSQL小巧但它的查询速度、执行效率都是非常快的。
(2)选择MYSQL的第二个原因就是它具有稳定的查询和存储机制,可以避免因为数据库的原因导致系统的数据出错。
(3)选择MYSQL作为本系统数据库的第三个原因就是它具备较为稳定的与程序进行连接的优点,可以使数据稳定地在系统内进行存储和更新。
需求分析
系统的可行性分析主要目的是在系统立项开始前对系统所做的一系列的评估,综合各项评估决定是否对该项目进行立项。一般来说一个系统的可行性分析主要分为技术可行性、操作可行性及经济可行性等。
一个系统的经济可行性主要是指网站去除成本后还是否可以盈利,该系统为计算机专业大学生的毕业设计,主要目的是为了使用大学四年所学的知识开发出一个有价值的系统,证明自己可以达到毕业的要求。该项目几乎没有任何成本,因为所有的设备及开发软件都为电脑上已安装的免费版本,该项目为非商业项目,所以从经济可行性上分析,本系统是可行的。
系统的技术可行性主要是在开发开始前对本系统所使用的开发环境、开发技术等进行分析,对所有可能遇到的问题进行预估等。本系统的开发环境为自己的个人电脑,所有使用的工具都是平时学习时用过的,所用的开发技术大多数都是大学期间学习过的,如果遇到没有涉及的领域可以通过在CSDN、博客园等技术论坛寻找答案,也可以咨询指导老师。所以从技术层面分析,本系统是可行的。
系统的操作可行性也可以被称为运行可行性,主要对系统运行或操作进行分析。在当前这个电脑走入寻常百姓家的时代,不管是成年人还是小朋友都多多少少对电脑操作略知一二,本系统只要有简单的电脑常识就可以熟练使用,所以说从系统的操作方面是可行的。
部分代码
package com.controller;
import java.io.File;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.io.PrintWriter;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import com.entity.Allusers;
//import com.chengxusheji.po.News;
import com.server.AllusersServer;
import com.util.PageBean;
import net.sf.json.JSONObject;
@Controller
public class AllusersController {
@Resource
private AllusersServer allusersService;
//
@RequestMapping("showAllusers.do")
public String showAllusers(int id,ModelMap map,HttpSession session){
/* Map<String,Object> bmap=new HashMap<String,Object>();
bmap.put("uid", id);*/
// map.put("blist", allusersService.getAll(bmap));
map.put("allusers", allusersService.getById(id));
return "read";
}
@RequestMapping("addAllusers.do")
public String addAllusers(HttpServletRequest request,Allusers allusers,HttpSession session){
Timestamp time=new Timestamp(System.currentTimeMillis());
//Users u=(Users)session.getAttribute("user");
/*if(u==null||u.equals("")){
return "redirect:showIndex.do";
}else{*/
//bbs.setUid(u.getId());
/*bbs.setPubtime(time.toString());
bbs.setIsdel("1");*/
allusers.setAddtime(time.toString().substring(0, 19));
allusersService.add(allusers);
return "redirect:allusersList.do";
/*}*/
}
// 处理编辑
@RequestMapping("doUpdateAllusers.do")
public String doUpdateAllusers(int id,ModelMap map,Allusers allusers){
allusers=allusersService.getById(id);
map.put("allusers", allusers);
return "allusers_updt";
}
//
@RequestMapping("updateAllusers.do")
public String updateAllusers(int id,ModelMap map,Allusers allusers){
allusersService.update(allusers);
return "redirect:allusersList.do";
}
// 所有List
// @RequestMapping("allusersList.do")
// public String allusersList(ModelMap map,HttpSession session){
// map.put("list", allusersService.getAll(null));
// map.put("clist", allusersService.getAll(null));
// return "allusers";
// }
// 分页查询
@RequestMapping("allusersList.do")
public String goodList(@RequestParam(value="page",required=false)String page,
ModelMap map,HttpSession session,Allusers allusers, String username, String pwd, String cx){
/*if(session.getAttribute("user")==null){
return "login";
}*/
if(page==null||page.equals("")){
page="1";
}
PageBean pageBean=new PageBean(Integer.parseInt(page), 15);
Map<String, Object> pmap=new HashMap<String,Object>();
pmap.put("pageno", pageBean.getStart());
pmap.put("pageSize", 15);
Map<String, Object> bmap=new HashMap<String, Object>();
Map<String,Object> cmap=new HashMap<String,Object>();
/*pmap.put("uid", ((Users)session.getAttribute("user")).getId());
bmap.put("uid", ((Users)session.getAttribute("user")).getId());*/
if(username==null||username.equals("")){pmap.put("username", null);cmap.put("username", null);}else{pmap.put("username", username);cmap.put("username", username);}
if(pwd==null||pwd.equals("")){pmap.put("pwd", null);cmap.put("pwd", null);}else{pmap.put("pwd", pwd);cmap.put("pwd", pwd);}
if(cx==null||cx.equals("")){pmap.put("cx", null);cmap.put("cx", null);}else{pmap.put("cx", cx);cmap.put("cx", cx);}
int total=allusersService.getCount(bmap);
pageBean.setTotal(total);
List<Allusers> list=allusersService.getByPage(pmap);
map.put("page", pageBean);
map.put("list", list);
session.setAttribute("p", 1);
return "allusers_list";
}
// 分页模糊查询
@RequestMapping("vagueAllusersList.do")
public String vagueAllusersList(@RequestParam(value="page",required=false)String page,
ModelMap map,HttpSession session){
if(page==null||page.equals("")){
page="1";
}
PageBean pageBean=new PageBean(Integer.parseInt(page),PageBean.PAGESIZE);
Map<String, Object> pmap=new HashMap<String,Object>();
pmap.put("pageno", pageBean.getStart());
pmap.put("pageSize", pageBean.getPageSize());
Map<String, Object> bmap=new HashMap<String, Object>();
/*pmap.put("uid", ((Users)session.getAttribute("user")).getId());
bmap.put("uid", ((Users)session.getAttribute("user")).getId());*/
int total=allusersService.getCount(bmap);
pageBean.setTotal(total);
List<Allusers> list=allusersService.getByPage(pmap);
map.put("page", pageBean);
map.put("list", list);
session.setAttribute("p", 2);
return "queryallusers";
}
@RequestMapping("deleteAllusers.do")
public String deleteAllusers(int id){
allusersService.delete(id);
return "redirect:allusersList.do";
}
@RequestMapping("quchongAllusers.do")
public void quchongAllusers(Allusers allusers,HttpServletResponse response){
Map<String,Object> map=new HashMap<String,Object>();
map.put("username", allusers.getUsername());
System.out.println("username==="+allusers.getUsername());
System.out.println("username222==="+allusersService.quchongAllusers(map));
JSONObject obj=new JSONObject();
if(allusersService.quchongAllusers(map)!=null){
obj.put("info", "ng");
}else{
obj.put("info", "username可以用!");
}
response.setContentType("text/html;charset=utf-8");
PrintWriter out=null;
try {
out=response.getWriter();
out.print(obj);
out.flush();
} catch (IOException e) {
e.printStackTrace();
}finally{
out.close();
}
}
@RequestMapping("Alluserslogin.do")
public String checkAllusersLogin(Allusers allusers, HttpSession session) {
Map<String,Object> u=new HashMap<String,Object>();
System.out.println("name===" + allusers.getUsername());
u.put("username",allusers.getUsername());
//u.put("utype", "用户");
//Md5.MD5HexEncode(user.getPassword())
u.put("pwd",allusers.getPwd());
allusers = allusersService.allusersLogin(u);
if (allusers != null) {
session.setAttribute("username", allusers);
System.out.println("username=" + allusers);
session.removeAttribute("suc");
return "redirect:index.do";
} else {
System.out.println("usernafwfwwme=");
session.setAttribute("suc", "登录失败!用户名或密码错误!");
return "login";
}
}
}
总结
使用的是JSP+MYSQL的开发模式,在结合了自己的生活经验以及对他人进行的调查问卷之后最终完成了系统的开发,并且所有的功能都可以正常使用。
发现在以下几个方面还有待提升点:
1、某些模块的代码结构冗余,代码执行效率差,经过思考发现可以使用面向对象思想中的继承和多态进行改进。
2、数据库的设计较为单一,并且书写SQL查询语句时只用了连接查询和相关子查询等,这会造成查询较多数据时查询速度慢的问题。改进的方法就是使用存储过程和视图来替代复杂的查询语句。
3、用户支付未与支付宝和微信真正进行连接,这方面的知识自己比较欠缺,但经过了解后发现只要在支付宝和微信的官网下载相关的接口与自己系统进行连接就有可能实现真正的在线支付。