web课程设计总结——实验中心器材管理系统

前言

  修整了近一周后,我终于有力气写下这篇博客。
  三周的考试 + 个人感情出了一些问题,导致我失眠了一个月,每天晚上躺床上两三个小时才能勉强睡着,中间更是醒来 N 多次,课设周吵了架,导致我再也没有做课设的心力。有些事似乎注定要发生,有些人似乎注定要在你的生活中写下难忘的一笔,然后转身离去,再不相见…
  上了大学后,总不想把自己消极的一面展现给别人看。太多想法与回忆,只能在博客里略提一嘴,聊以慰藉自己吧。希望写了这篇心得后,我能开始新的一年的学习,不会被身边琐事拴住不前。

课设要求

  课设要求是做一个实验室器材管理系统,具体功能可以参考我的功能模块图。惭愧的是,我真的只完成了前端的设计(学习并使用了bootstrap的前端框架)以及servlet封装增删改查操作。具体的逻辑功能,因为时间只有短短两周加之我已经心力交瘁,而并没有完成,算是个遗憾吧。

功能模块图

  先说明一下,这个整体的系统应该还包括使用者(学生)子系统,不然实验管理员子系统就无法按时间检测出是谁使坏了设备(没有相应的对象)。但由于时间原因,就只能做到这样了。
在这里插入图片描述

系统GUI

1. 登录
在这里插入图片描述
2. 超级管理员
在这里插入图片描述
3. 实验室器材管理员
在这里插入图片描述

遇到的问题及解决

1. 点击不同左侧菜单按钮,达到跳转到不同界面而url不变
解决:使用<iframe>标签实现不同不同内部界面共享同一个外部框架(左侧菜单栏)。

2. bootstrap样式或其他css样式复制进项目但不显示(样式失效)
解决:请检查服务器(我的是Apache_Tomcat)webapps文件夹下的项目中,是否包含你所使用的样式。
在这里插入图片描述

3. sevlet重定向页面报错404
解决:检查自己servlet中重定向到的页面路径是否有错,我就是因为这个问题困扰了好久(包括样式丢失的问题——也极有可能是你引入样式的路径出了问题)。关于如何引入绝对路径和相对路径,可参考这篇文章《HTML之绝对路径与相对路径》

4. JavaBean命名不规范导致找不到属性
解决:javabean中每个变量对应setXXX() 和 getXXX() 方法,在set 或 get 后的变量名首字母大写,其他不变,切记!
例如:private int cntNum; 则其对应的方法应该为 getCntNum() 和 setCntNum()。

5. 实现用户登陆后才能访问内部页面,否则跳转到注册的功能
解决:使用session来实现。

代码

  仅给出UserServlet的代码以供参考吧。

package servlet;

import java.io.IOException; 
import java.io.PrintWriter;
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement;
import java.sql.ResultSet; 
import java.sql.SQLException;
import java.sql.Statement; 
import java.util.ArrayList; 
import java.util.List; 
  
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import bean.UserInfo;

@WebServlet(name="userServlet", urlPatterns="/userServlet")
public class UserServlet extends HttpServlet { 
	private static final long serialVersionUID = 1L; 
	private PreparedStatement ps;
	private Connection ct;
	private ResultSet rs;
	private Statement st;
	private String sql;
	private String execNum = "0";
	private String jumpPage = null;
	private final static String url = "jdbc:sqlserver://localhost:1433;databaseName=EquipmentSystem";
	private final static String user = "sa";
	private final static String password = "sa";
	private String prKey;
	private List<UserInfo> userList;
	
	/** 
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse 
	 *   response) 
	 */
	protected boolean connectDB(){
		
		int flag = 1;	
		try {
    		Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		}catch(Exception e) {
			flag = 0;
    		e.printStackTrace();
		}
		
		try {  
    		ct = DriverManager.getConnection(url, user, password);
    		st = ct.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

		}catch(Exception e) {
			flag = 0;
    		e.printStackTrace();
    		
		}
		return flag == 1 ? true : false;
	}
	protected void closeDB(){
		try {
			ct.close();
			st.close();
			rs.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	protected void insertIntoDB(HttpServletRequest request, HttpServletResponse response) 
	throws ServletException, IOException {
		try {
			ps = ct.prepareStatement("insert into UserInfo values(?,?,?,?,?,?)");
			ps.setString(1, request.getParameter("identify"));
			ps.setString(2, request.getParameter("password"));
			ps.setString(3, request.getParameter("name"));
			ps.setString(4, request.getParameter("teacherid"));
			ps.setString(5, request.getParameter("phonenumber"));
			ps.setString(6, request.getParameter("userrole"));
			
			execNum = Integer.toString(ps.executeUpdate());
			//int t = st.executeUpdate(sql);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			request.setAttribute("javax.servlet.error.exception",e);
			request.setAttribute("javax.servlet.error.request_uri",request.getRequestURI());
			RequestDispatcher rd=request.getRequestDispatcher("CatchException");
			rd.forward(request,response);
		}
	}
	protected void deleteFromDB(HttpServletRequest request, HttpServletResponse response) 
	throws ServletException, IOException {
		try {
			String t = (String)request.getParameter("primary_key");
			
			if(t != null && !t.equals(""))
				sql = sql + "'" + t + "'";
			int re = st.executeUpdate(sql);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			request.setAttribute("javax.servlet.error.exception",e);
			request.setAttribute("javax.servlet.error.request_uri",request.getRequestURI());
			RequestDispatcher rd=request.getRequestDispatcher("CatchException");
			rd.forward(request,response);
		}
	}
	protected void selectFromDB(HttpServletRequest request, HttpServletResponse response, int flag) 
	throws ServletException, IOException, SQLException {
		try {
			String t = (String)request.getParameter("primary_key");
			
			if(1==flag || (t != null && !t.equals("")))
				sql = sql + "'" + t + "'";
			rs = st.executeQuery(sql);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		rs.last();                    
        int totalCount=rs.getRow();   
        int totalPage=0;
        if(totalCount==0){
            totalPage=0;              
        }else{
           totalPage=(int)Math.ceil((double) totalCount/3);
        }
         String pageCurll=request.getParameter("pageCur");
         if(pageCurll==null){           
            pageCurll="1";
        }
        int pageCur=Integer.parseInt(pageCurll);
         if((pageCur-1)*3>totalCount){
            pageCur=pageCur-1;
        }
        int startIndex=(pageCur-1)*3;   
        int perPageSize=3;
        if(flag==1){
        	rs.beforeFirst();
        }
        else{
            ps=ct.prepareStatement("select top "+perPageSize+" * from UserInfo where user_id not in " +
            		"(select top "+startIndex+" user_id from UserInfo)");
            rs=ps.executeQuery();
        }
		while(rs.next()){
			execNum = "1";
			UserInfo uinfo = new UserInfo();
			uinfo.setPassword(rs.getString("password"));
			uinfo.setPhoneNumber(rs.getString("phone_num"));
			uinfo.setSno(rs.getString("sno"));
			uinfo.setUserId(rs.getString("user_id"));
			uinfo.setUserName(rs.getString("user_name"));
			uinfo.setUserRole(rs.getString("user_role"));
			userList.add(uinfo);
		}
		
		request.setAttribute("totalCount",totalCount);
        request.setAttribute("totalPage",totalPage);
        request.setAttribute("pageCur",pageCur);
	}
	protected void updateOnDB(HttpServletRequest request, HttpServletResponse response) 
	throws ServletException, IOException {
		try {
			ps = ct.prepareStatement(sql);
			ps.setString(1, request.getParameter("password"));
			ps.setString(2, request.getParameter("name"));
			ps.setString(3, request.getParameter("teacherid"));
			ps.setString(4, request.getParameter("phonenumber"));
			ps.setString(5, request.getParameter("userrole"));	
			ps.setString(6, request.getParameter("identify"));
			int t = ps.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			request.setAttribute("javax.servlet.error.exception",e);
			request.setAttribute("javax.servlet.error.request_uri",request.getRequestURI());
			RequestDispatcher rd=request.getRequestDispatcher("CatchException");
			rd.forward(request,response);
		}
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
	throws ServletException, IOException {
		connectDB();
		String t1 = request.getParameter("sql[0]"), t2 = request.getParameter("sql[1]");
		sql = (t1!=null) ? t1 : t2;
		if(sql == null) 
			sql = "select * from UserInfo";
		int flag = (t1!=null) ? 1 : 0;
		userList = new ArrayList<UserInfo>();
		//PrintWriter pw = response.getWriter();		
		String temp [] = sql.split(" ");
		
		if(temp[0].equals("select")){
			this.jumpPage = "/SuperAdmin/superAdminSelect.jsp";
			try {
				selectFromDB(request, response, flag);
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}

		}
		else if(temp[0].equals("insert")){
			//pw.write("insert!");
			this.jumpPage = "/SuperAdmin/superAdminInsert.jsp";
			insertIntoDB(request, response);
		}
		else if(temp[0].equals("delete")){
			this.jumpPage = "/SuperAdmin/superAdminSelect.jsp";
			deleteFromDB(request, response);
		}
		else if(temp[0].equals("update")){
			this.jumpPage = "/SuperAdmin/superAdminUpdate.jsp";
			updateOnDB(request, response);
		}
		closeDB();
		if(execNum!=null && !execNum.equals("0"))
			request.setAttribute("execNum", execNum);
		request.setAttribute("UserInfo", userList);
		RequestDispatcher dis = request.getRequestDispatcher(jumpPage);
		dis.forward(request, response);
	} 
  
	/** 
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse 
	 *   response) 
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException { 	 
		doGet(request, response); 
	}
  
}
发布了189 篇原创文章 · 获赞 107 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/cprimesplus/article/details/103994407