javaWeb

🐴在前面

算是第一次从头到底的做完项目吧,虽然有视频参考但是其中有很多东西都是一点点试出来的,做一个记录,也算是一种总结?很多部分是为了实现而实现,强拉硬凑,但过程确实不易…
而距离项目完成已经过去了将近4个月,能想到多少就写多少吧
项目名称就是耳熟能详的选课系统,即便如此,身上也是满是bug…

环境

tomcat8.0,jave EE,json

基础配置

通过web.xml对servlet进行映射的配置,

页面

登录

基本就是从输入框获取值,同数据库里表的值进行配对,然后页面通过选择的用户类型跳转到相应的用户界面

/*
  * 登录
  */
public class Loginservlet extends HttpServlet{

	/**
	 * 
	 * 
	 */
	private static final long serialVersionUID = 1L;
	public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException {
		//request.setAttribute("flag", "word");
		doPost(request,response);
	}
	public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException {
		
		try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加载驱动 (先导入sqljdbc4.jar到WEB-INF/lib中?
            //点击project/properties/java build path 点击add jars 导入后 apply and close 
		} catch (ClassNotFoundException e1) {
			// TODO Auto-generated catch block
			System.out.println("驱动错误");
			e1.printStackTrace();
		}
				//链接数据库的url 
				String url = "jdbc:sqlserver://localhost:1433;DatabaseName=javaWeb";//1433 为TCP端口   DatabaseName所需访问数据库名
				//数据库用户
				String user = "server01";
				//数据库密码/在这里输入数据库密码
				String password = "123";
				
				//从前台读取到的用户名,密码,登录类型
				
				
		String user_type = request.getParameter("log_type");
		String user_id = request.getParameter("username"); // 括号中的“username”和前台属性标签中的name值相对应
		// session 传递用户密码和用户名
		HttpSession session = request.getSession();
		session.setAttribute("user_id", user_id);
		session.setAttribute("user_type", user_type);
		// 从前台读取到的密码
		String user_pwd = request.getParameter("password");
		// System.out.println("id "+user_id+"pwd: "+user_pwd);
		// 数据库链接成功时返回的实例
		Connection conn = null;
		// 查询成功时返回的记录集
		ResultSet rs = null;
		String account_type = user_type;// 根据登录类型选择相应的数据库:stu,teacher,manage
		try {
			// 获取链接
			conn = (Connection) DriverManager.getConnection(url, user, password);
			// 准备sql查询
			String sql = "select * from " + account_type + " where id=? and key_word=?";// 问号为待定“参数值”
			// 使用PreparedStatement,可以防止sql注入
			PreparedStatement ps = conn.prepareStatement(sql);
			// 填入“参数”值
			ps.setString(1, user_id);
			ps.setString(2, user_pwd);
			// 执行查询,返回记录集
			rs = ps.executeQuery();

			// 游标遍历 如果查询到用户名和密码,则允许用户登录
			// request.setAttribute("flag", "word");
			if (user_id.equals("") || user_pwd.equals("")) {
				PrintWriter out = response.getWriter();
				out.flush();
				out.println("<script>");
				out.println("alert('输入不能为空');");
				out.println("history.back();");
				out.println("</script>");
				out.close();
			}
			if (rs.next()) {
				// System.out.println("login ok!!");
				// response.sendRedirect("LoginActionServlet");
				if (user_type.length() > 0) {
					sendMsg(user_type, request, response);
				} else if (user_type == null) {
					PrintWriter out = response.getWriter();
					out.flush();
					out.println("<script>");
					out.println("alert('请选择登录类型');");
					out.println("</script>");
					out.close();
				}
				// response.sendRedirect("manage.jsp");
				// request.getRequestDispatcher("manage.jsp").forward(request, response);
			} else {
				PrintWriter out = response.getWriter();

				out.flush();
				out.println("<script>");
				out.println("alert('很遗憾,用户名或密码错误');");
				out.println("history.back();");
				out.println("</script>");
				out.close();
			}
			// 关闭PreparedStatement
			ps.close();
					
				}catch(Exception e){
					e.printStackTrace();
				}finally{
					//最后一定要关闭链接
					if (conn != null){
						try {
							conn.close();
						} catch (SQLException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					}
					if(rs != null){
						try {
							rs.close();
						} catch (SQLException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					}
					
				}
				return;
			}
	private void sendMsg(String user_type,HttpServletRequest request, HttpServletResponse response) throws IOException, Exception {
		
		//request.getRequestDispatcher("Loginservlet").forward(request, response);
		//String selected=request.getParameter("info_select");
		//response.setContentType("application/json;character=utf-8");
		response.setContentType("charset=utf-8");

		//PrintWriter out =response.getWriter();
		PrintWriter out=response.getWriter();
		out.print(user_type);
		out.close();
		
		//request.setAttribute("stuList", list);
	}
	
}

管理员

就选一个对学生用户的管理来

/**
 * Servlet implementation class Systemservlet
 */
@WebServlet("/Systemservlet")
public class Manservlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doPost(request,response);
	}
//
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest req, HttpServletResponse rep) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//req.getRequestDispatcher("manage.jsp").forward(req, rep);  jsp2jsp跳转页面,不能在servlet跳转
		rep.setCharacterEncoding("UTF-8");
		rep.setContentType("application/json;charset=utf-8"  );
		req.setCharacterEncoding("utf-8");
		String method = req.getParameter("method");	
		String type=req.getParameter("type");
		//System.out.print(method);
		
		 if("stu".equals(method)) {
				stu_info(req,rep,type);
		}
    }

    private void stu_info(HttpServletRequest req,HttpServletResponse rep,String type) throws IOException {
		PrintWriter send=rep.getWriter();
		if(type.equals("select")) {
			find_stu(send);
		}
		else if(type.equals("up")) {
		
			 String sql = man_up_stu(req);
			 doing_sql(send,sql);
		}
		else if(type.equals("del")) {
			String sno=req.getParameter("sno");
			System.out.println(sno);
			String sql="delete from Student where Sno="+sno;
			doing_sql(send,sql);
		}
		else if(type.equals("add")) {

			String sql = man_add_stu(req);

			System.out.println(sql);
			doing_sql(send,sql);
		}
		//
	}

学生

老师

注意事项

页面跳转

ajax的使用

Site construction by John Doe usinghexo blog framework.
Home