• UserManageSys


    JSP部分:

    err.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'login.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    
      </head>
      
      <body bgcolor="pink"> 
      <center>
       <!-- 引入一张图片 -->
       
       	<h1>操作失败!</h1>
       	<a href="mian.jsp">返回主界面</a>
       	<br>
     
       </center>
      </body>
    </html>

    login.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'login.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    
      </head>
      
      <body bgcolor="pink"> 
      <center>
      <%
      
      		//推断是否正常登陆
      		String err=request.getParameter("err");
      		
      		if(err != null)
      		{
      			if(err.equals("1"))
      			{
      				out.println("<font color=yellow size=7>用户没有正常登陆,请登陆!!!</font><br>");
      			}
      		}
      
       %>
       <!-- 引入一张图片 -->
       
    <img src="image/logo1.png"></img>
       	
       	<hr>
       	用户登录 <br>
    <!--   	<form action="loginCl.jsp" method="post">	 -->
    	<form action="LoginClServlet" method="post">
       	用户名: <input type="text" name="username"><br>
       	 密  码: <input type="password" name="passwd"><br>
       	 <input type="submit" value="登录">
       	 <input type="reset" value="重置">
       	 <INPUT type="radio" name="P" value="A">学生
    	<INPUT type="radio" name="P" value="B">老师
       	</form>
       	<hr/>
       
       </center>
      </body>
    </html>
    

    loginCl.jsp这个事实上已经没实用了,仅仅只是是一个纪念的过程而已

    <%@ page language="java" import="java.util.*,java.sql.*,com.xf.model.*" pageEncoding="gb2312"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'loginCl.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    
      </head>
      
      <body>
       <%
       	//接受用户名和,password,完毕对用户名的验证
       	String u=request.getParameter("username");
       	
       	String p=request.getParameter("passwd");
       	
    /*   	
       	//验证,先简单验证一下,不到数据库上验证
       	if(u.equals("xiaofeng") && p.equals("123"))
       	{
       		//合法,跳转到wel.jsp
       		//怎样把loginCl.jsp得到的数据传给下一个页面
       		//1.cookie2.sessio3.response.sendRedirect
       		response.sendRedirect("wel.jsp?user="+u);
       	}
       	else
       	{
       		//不合法的用户
       		response.sendRedirect("login.jsp");
       	}
     */
     /*
     	//通过数据库验证账号password
    	//1、载入驱动 
    	Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    	//2、得到链接
    	Connection ct=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=spdb1","sa","");
    	//3、创建Statement
    	Statement sm=ct.createStatement();
    	//4、查询
    	ResultSet rs=sm.executeQuery("select passwd from users where username='"+u+"'");	
    	//5、依据查到的结果来推断
    	if(rs.next())
    	{
    		if(rs.getString(1).equals(p))
    		{
    			//合法
    			response.sendRedirect("wel.jsp?user="+u);
    		}
    		else
    		{
    			response.sendRedirect("login.jsp?errNo=1");
    		}
    	}
    	else
    	{
    		//账号错误
    		response.sendRedirect("login.jsp?errNo=2");
    	}
      */
      	UserBeanCl ubc=new  UserBeanCl();
      	
      	if(ubc.checkUser(u,p))
      	{
      		response.sendRedirect("wel.jsp?user="+u);
      	}
      	else
      	{
      		response.sendRedirect("login.jsp");
      	}
       
        %>
      </body>
    </html>
    

    main_2.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'mian.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    	
      </head>
      
      <body bgcolor="pink">
      <center>
      <!-- 引入界面!! -->
    	<hr> 选择操作选项<hr>
    	<a href="UserClServlet?pageNow=1&flag=fenyes">查看学习情况</a><br>
    	<a href="addUser.jsp">加入用户</a><br>
    	<hr>
      
      </center>
      </body>
    </html>

    mian.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'mian.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    	
      </head>
     
      <body bgcolor="pink">
      <center>
      <!-- 引入界面!! -->
    
    	<hr> 选择操作选项<hr>
    	<a href="UserClServlet?pageNow=1&flag=fenye">管理用户</a><br>
    	<hr>
       
      </center>
      </body>
    </html>
    

    suc.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'login.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    
      </head>
      
      <body bgcolor="pink"> 
      <center>
       <!-- 引入一张图片 -->
       
    
       <hr>
       	<h1>操作成功!</h1>
       	<a href="mian.jsp">返回主界面</a>
       	<hr>
    
       </center>
      </body>
    </html>

    updv_grade.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'updUser.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    
      </head>
      
     <body bgcolor="pink">
     <%
     	long Sno=Long.parseLong(request.getParameter("Sno"));
      %>
      <center>
      <!-- 引入界面!! -->
    
    	<h1>请输入用户信息</h1>
    	<form action="UserClServlet?flag=updv_grade&Sno=<%=Sno %>" method="post">
    	<table border="1">
    	<tr> <td bgcolor="yellow">课程号</td> <td><input type="text" name="Cno" /></td> </tr>
    	<tr> <td bgcolor="silver">课程名</td> <td><input type="text" name="Cname" /></td> </tr>
    	<tr> <td bgcolor="yellow">任课老师</td> <td><input type="text" name="Tname" /></td> </tr>
    	<tr> <td bgcolor="silver">分数</td> <td><input type="text" name="Grade" /></td> </tr>
    	
    	<tr> <td> <input type="submit" value="改动用户" /> </td> 
    	<td><input type="reset" value="重置"/></td> </tr>
    	
    	</table>
    	
    	</form>
    	
    	<hr>
        
      </center>
      </body>
    </html>
    

    wel.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'updUser.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    
      </head>
      
     <body bgcolor="pink">
     <%
     	long Sno=Long.parseLong(request.getParameter("Sno"));
      %>
      <center>
      <!-- 引入界面!! -->
    
    	<h1>请输入用户信息</h1>
    	<form action="UserClServlet?flag=updv_grade&Sno=<%=Sno %>" method="post">
    	<table border="1">
    	<tr> <td bgcolor="yellow">课程号</td> <td><input type="text" name="Cno" /></td> </tr>
    	<tr> <td bgcolor="silver">课程名</td> <td><input type="text" name="Cname" /></td> </tr>
    	<tr> <td bgcolor="yellow">任课老师</td> <td><input type="text" name="Tname" /></td> </tr>
    	<tr> <td bgcolor="silver">分数</td> <td><input type="text" name="Grade" /></td> </tr>
    	
    	<tr> <td> <input type="submit" value="改动用户" /> </td> 
    	<td><input type="reset" value="重置"/></td> </tr>
    	
    	</table>
    	
    	</form>
    	
    	<hr>
        
      </center>
      </body>
    </html>
    

    wel_2.jsp

    <%@ page language="java" import="java.util.*,java.sql.*,com.xf.model.*" pageEncoding="gb2312"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'wel.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    	<script type="text/javascript">
    	<!--
    		function abc()
    		{
    			return window.confirm("确定要改动?");
    		}
    	-->
    	</script>
      </head>
      
      <body bgcolor="pink">
      <%
      		//假设用户正常登陆,则保存了session的值
      		String u=(String)session.getAttribute("myName");
      		
      		//假设非法登陆,jsp内置对象,response,request,out,session
      		if(u == null)
      		{
      			response.sendRedirect("login.jsp?err=1");
      			
      			return;
      		}
      		
      	
       %>
       
       
      <center> admin: <%=u %><br>
     	 <a href="login.jsp">返回又一次登录</a>  <a href="mian.jsp">返回主界面</a> 
    <hr>
    <h1>用户信息列表</h1>
    <%
    /*
    	//定义四个变量
    	int pageNow=1;	//默认从第一页開始
    
    	int pageSize=3;		//一共的页数
    	int rowCount=0;			//这个从数据库查询
    	int pageCount=0;	//通过rowCount和pageSize求得
    
    	
    	String s_pageNow=request.getParameter("pageNow");
    
    	
    	if(s_pageNow != null)
    	{
    		//从超链接处得到值
    		pageNow=Integer.parseInt(s_pageNow);
    	}
    
    
    	//1.载入驱动
    	Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    	//2.得到链接
    	Connection ct=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=spdb1","sa","");
    	//3.创建statement
    	Statement sm=ct.createStatement();
    	//4.到数据库中查询
    	ResultSet rs=sm.executeQuery("select count(*) from users");
    	//5.对查询结果进行推断
    
    	//这里注意一定要next,不然GG思密达
    	if(rs.next())
    	{
    		rowCount=rs.getInt(1);
    	}
    	
    	//计算pageCount,算法非常多
    	if(rowCount%pageSize == 0)
    	{
    		pageCount=rowCount/pageSize;
    	}
    	else
    	{
    		pageCount=rowCount/pageSize+1;
    	}
    	
    	//查出要显示出来的记录
    	rs=sm.executeQuery("select top "+pageSize+" * from users where userId not in (select top "
    	+pageSize*(pageNow-1)+" userId from users)");
    	
    */
    
    	//调用UserBeanCl的方法(创建一个UserBeanCl的实例然后调用他的方法),完毕分页显示
    //	UserBeanCl ubc=new UserBeanCl();
    //	ArrayList a1=ubc.getUsersByPage(pageNow);
    	//要显示的用户信息从request中取
    	ArrayList a1=(ArrayList)request.getAttribute("result");
    	
    	
    	//显示出来
    	%>
    	<table border="1">
    	<tr bgcolor="pink"><td>学号</td><td>课程号</td><<td>课程名</td><td>任课老师</td><td>分数</td></tr>
    	<%
    		//while(rs.next())
    	//	String [] color={"yellow","pink","yello"};
    		for(int i=0 ; i<a1.size() ; ++i)
    		{
    		//重arraylist中取出UserBean
    		v_gradeBean vb=(v_gradeBean)a1.get(i);
    			%>
    			<tr bgcolor="yellow"><td><%=vb.getSno() %></td><td><%=vb.getCno() %></td><td><%=vb.getCname() %></td>
    			<td><%=vb.getTname() %></td><td><%=vb.getGrade() %></td>
    			<%
    		}	
    	 %>
    	</table>
    	<%
    	
    	//首页
    	out.println("<a href=UserClServlet?flag=fenyes&pageNow="+1+">[首页]</a>");
    	
    	//String s_pageNow=(String)request.getAttribute("pageNow");
    	int pageNow=Integer.parseInt((String)request.getAttribute("pageNow"));
    	//上一页
    	if(pageNow != 1)
    	{
    		out.println("<a href=UserClServlet?flag=fenyes&pageNow="+(pageNow-1)+">[上一页]</a>");
    	}
    	
    	//得到pageCount
    //	int pageCount=ubc.getPageCount();
    	String s_pageCount=(String)request.getAttribute("pageCount");
    	int pageCount=Integer.parseInt(s_pageCount);
    	
    	//显示超链接
    	for(int i=1 ; i<=pageCount ; ++i)
    	{
    		out.println("<a href=UserClServlet?flag=fenyes&pageNow="+i+">["+i+"]</a>");
    	}
    	
    	//下一页
    	if(pageNow != pageCount)
    	{
    		out.println("<a href=UserClServlet?flag=fenyes&pageNow="+(pageNow+1)+">[下一页]</a>");
    	}
    	
    	//尾页
    	out.println("<a href=UserClServlet?flag=fenyes&pageNow="+pageCount+">[尾页]</a>");
    	
    %>
    <br>
    
      </center>  
      </body>
    </html>

    javaBean部分

    ConnDB.java

    /**
     * 功能:得到数据库的链接
     * 时间:2014年6月4日10:47:57
     * 作者:cutter_point
     */
    package com.xf.model;
    
    import java.sql.*;
    
    public class ConnDB
    {
    	private Connection ct=null;
    	
    	public Connection getConn()
    	{
    		try
    		{
    			//1、载入驱动
    			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    			//2、得到链接
    			ct=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=spdb1","sa","");
    		} catch (Exception e)
    		{
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    		return ct;
    	}
    }
    

    Tools.java

    public class Tools
    {
    	//提供一个方法,转换中文乱码
    	public static String getNewString(String input)
    	{
    		String result="";
    		
    		try
    		{
    			result=new String(input.getBytes("iso-8859-1"),"gb2312");
    		} 
    		catch (Exception e)
    		{
    			// TODO: handle exception
    			e.printStackTrace();
    		}
    		
    		return result;
    		
    	}
    }
    

    UserBean.java

    /**
     * 功能:这是一个javabean,相应users表,代表数据
     * 时间:2014年6月4日10:39:33
     * 作者:cutter_point 
     */
    
    package com.xf.model;
    
    public class UserBean
    {
    	private int userId;
    	private String username;
    	private String passwd;
    	private String email;
    	private int grade;
    	public int getUserId()
    	{
    		return userId;
    	}
    	public void setUserId(int userId)
    	{
    		this.userId = userId;
    	}
    	public String getUsername()
    	{
    		return username;
    	}
    	public void setUsername(String username)
    	{
    		this.username = username;
    	}
    	public String getPasswd()
    	{
    		return passwd;
    	}
    	public void setPasswd(String passwd)
    	{
    		this.passwd = passwd;
    	}
    	public String getEmail()
    	{
    		return email;
    	}
    	public void setEmail(String email)
    	{
    		this.email = email;
    	}
    	public int getGrade()
    	{
    		return grade;
    	}
    	public void setGrade(int grade)
    	{
    		this.grade = grade;
    	}
    	
    	
    }
    

    UserBeanCl.java

    /**
     * 功能:这是一个处理类,也叫做bo,主要封装对users表的各种操作
     * 		每个UserBean对象放到ArrayList里面去,更早关闭和数据库链接
     * 时间:2014年6月4日10:43:48
     */
    package com.xf.model;
    
    import java.io.InputStream;
    import java.io.Reader;
    import java.math.BigDecimal;
    import java.net.URL;
    import java.sql.*;
    import java.sql.Date;
    import java.util.*;
    
    import com.xf.model.*;
    
    public class UserBeanCl
    {
    	private Statement sm=null;
    	private ResultSet rs=null;
    	private Connection ct=null;
    	private int pageSize=3;	//每页大小
    	private int rowCount=0;			//行数总计
    	private int pageCount=0;	//通过rowCount和pageSize求得
    	
    	
    	//改动信息
    	/**
    	 * @author xiaofeng(没错,我就是肖锋)
    	 * @param userName:username字,就是账号
    	 * @param passwd:通行password
    	 * @return boolean: 假设true那就加入成功,假设false那就不成功
    	 */
    	public boolean updUser(long Sno, String Cno, String Cname, String Tname, int Grade)
    	{
    		boolean b=false;
    		
    		try
    		{
    			//创建连接,的数据库
    			ct=new ConnDB().getConn();
    			//对要操作的数据库声明
    			sm=ct.createStatement();
    			//运行语句
    			String sql="update v_grade set Cno='"+Cno+"', Cname='"+Cname+"', Tname='"+Tname+"', Grade="+Grade+" where Sno="+Sno+"";
    			int a=sm.executeUpdate(sql);
    			
    			if(a == 1)
    			{
    				//改动成功
    				b=true;
    			}
    			
    		} 
    		catch (Exception e)
    		{
    			// TODO: handle exception
    			e.printStackTrace();
    		}
    		finally
    		{
    			this.close();
    		}
    		
    		return b;
    	}
    	
    	//加入信息
    	
    
    	//删除信息处理
    	/**
    	 * @author xiaofeng(没错,我就是肖锋)
    	 * @param userName:username字,就是账号
    	 * @param passwd:通行password
    	 * @param email:电子邮件
    	 * @param grade:用户等级
    	 * @return boolean: 假设true那就加入成功,假设false那就不成功
    	 */	
    	public boolean delv_gradeBySno(long Sno)
    	{
    		boolean b=false;
    		
    		try
    		{
    			//得到链接
    			ct=new ConnDB().getConn();
    			//声明要运行SQL
    			sm=ct.createStatement();
    			//运行语句,删除语句返回影响的行数
    			int a=sm.executeUpdate("delete from v_grade where Sno='"+Sno+"'");
    			
    			if(a == 1)
    			{
    				//删除成功
    				b=true;
    			}
    		} 
    		catch (Exception e)
    		{
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		finally
    		{
    			this.close();
    		}
    		
    		return b;
    	}
    	
    	public void close()
    	{
    		try
    		{
    			if(rs != null)
    			{
    				rs.close();
    				rs=null;
    			}
    			if(sm != null)
    			{
    				sm.close();
    				sm=null;
    			}
    			if(ct != null)
    			{
    				ct.close();
    				ct=null;
    			}
    		} 
    		catch (Exception e)
    		{
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    	}
    	//得到pageCount,页数总计
    	public int getPageCount()
    	{
    		try
    		{
    			//得到链接
    			ct=new ConnDB().getConn();
    			//声明,创建一个sm
    			sm=ct.createStatement();
    			
    			//4.到数据库中查询
    			ResultSet rs=sm.executeQuery("select count(*) from v_grade");
    			
    			//这里注意一定要next,不然GG思密达
    			if(rs.next())
    			{
    				rowCount=rs.getInt(1);
    			}				
    			
    			//计算pageCount的结果
    			if(rowCount%pageSize == 0)
    			{
    				pageCount=rowCount/pageSize;
    			}
    			else
    			{
    				pageCount=rowCount/pageSize+1;
    			}
    		} 
    		catch (Exception e)
    		{
    			// TODO: handle exception
    			e.printStackTrace();
    		}
    		finally
    		{
    			this.close();
    		}
    		return pageCount;
    	}
    	
    	//得到用户须要显示地信息(分页)
    	public ArrayList getUsersByPage(int pageNow)
    	{
    		ArrayList a1=new ArrayList();
    		
    		try
    		{
    			//得到链接
    			ct=new ConnDB().getConn();
    			//创建statement
    			sm=ct.createStatement();
    			
    			//查询出须要显示地信息,rs用来得到数据查询的结果
    			rs=sm.executeQuery("select top "+pageSize+"* from v_grade where Sno not in ( 	select top "+pageSize*(pageNow-1)+" Sno 	from v_grade )");
    			
    			//吧得到的信息存放到ArrayList上面去
    			while(rs.next())
    			{
    				v_gradeBean vb=new v_gradeBean();
    				
    				vb.setSno(rs.getLong(1));
    				vb.setCno(rs.getString(2));
    				vb.setCname(rs.getString(3));
    				vb.setTname(rs.getString(4));
    				vb.setGrade(rs.getInt(5));
    				
    				//将ub放到arraylist里面去
    				a1.add(vb);
    			}
    			
    		} 
    		catch (Exception e)
    		{
    			e.printStackTrace();
    			// TODO: handle exception
    		}
    		finally
    		{
    			//关闭资源
    			this.close();
    		}
    		
    		return a1;
    	}
    
    	//检查账号password是否正确
    	public boolean checkUser(String u, String p)
    	{
    		boolean b=false;
    		
    		try
    		{
    			System.out.println("???");
    			//到数据库中去验证
    			ct=new ConnDB().getConn();
    			//3、创建statement
    			sm=ct.createStatement();
    			//4、进行查询,把查询第一个结果放到rs中
    			rs=sm.executeQuery("select passwd from users where username='"+u+"'");
    			//依据结果来推断是否是要寻找的数据
    			if(rs.next())
    			{
    				//username存在,验证password
    				if(rs.getString(1).equals(p))
    				{
    					b=true;
    				}
    			}
    			
    		} 
    		catch (Exception e)
    		{
    			e.printStackTrace();
    			// TODO: handle exception
    		}
    		finally
    		{
    			this.close();
    		}
    		
    		return b;
    	}
    }
    

    v_gradeBean.java

    /**
     * 功能:存放v_grade视图的属性
     */
    
    package com.xf.model;
    
    public class v_gradeBean
    {
    	private long Sno;
    	private String Cno;
    	private String Cname;
    	private String Tname;
    	private int Grade;
    	public long getSno()
    	{
    		return Sno;
    	}
    	public void setSno(long sno)
    	{
    		Sno = sno;
    	}
    	public String getCno()
    	{
    		return Cno;
    	}
    	public void setCno(String cno)
    	{
    		Cno = cno;
    	}
    	public String getCname()
    	{
    		return Cname;
    	}
    	public void setCname(String cname)
    	{
    		Cname = cname;
    	}
    	public String getTname()
    	{
    		return Tname;
    	}
    	public void setTname(String tname)
    	{
    		Tname = tname;
    	}
    	public int getGrade()
    	{
    		return Grade;
    	}
    	public void setGrade(int grade)
    	{
    		Grade = grade;
    	}
    	
    	
    }
    

    Servlet处理器部分

    LoginClServlet.java

    /**
     * 功能:这是一个控制器,完毕对用户身份的验证,本身是不会去完毕业务逻辑的
     * 		它主要是去调用model完毕对数据的处理
     * 时间:2014年6月5日12:56:46
     * 作者:cutter_point
     */
    package com.xf.controller;
    
    import com.xf.model.*;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.*;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class LoginClServlet extends HttpServlet
    {
    
    	
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException
    	{
    		this.doPost(request, response);
    	}
    
    
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException
    	{
    		
    		//得到账号password
    		String u=request.getParameter("username");	//账号
    		String s1=request.getParameter("P");		//单选框
    		
    		
    	//	u=new String(u.getBytes("iso-8859-1"),"gb2312");
    		//转化中文乱码
    		u=Tools.getNewString(u);
    		
    		String p=request.getParameter("passwd");	//password
    		
    		System.out.println("账号u="+u+" passwordp="+p);
    		
    		//调用模型对他进行验证
    		UserBeanCl ubc=new UserBeanCl();
    		
    		if(ubc.checkUser(u, p))
    		{
    			System.out.println("这是使用的Servlet完毕验证!!");
    			//合法
    			//跳转
    			//response.sendRedirect("wel.jsp");
    			//在进入wel.jsp之前把数据都准备好
    			//首先显示的是默认的第一页
    			ArrayList al=ubc.getUsersByPage(1);
    			int pageCount=ubc.getPageCount();
    			request.setAttribute("result", al);
    			request.setAttribute("pageCount", pageCount+"");
    			request.setAttribute("pageNow", "1");
    			
    			//存放session
    			request.getSession().setAttribute("myName", u);
    			
    			
    			//可是上面方法效率不高,高效率的是
    			if(s1.equals("B"))
    			{
    				request.getRequestDispatcher("mian.jsp?user="+u).forward(request, response);
    			}
    			else
    			{
    				request.getRequestDispatcher("main_2.jsp?user="+u).forward(request, response);
    			}
    
    		}
    		else
    		{
    			//不合法
    		//	response.sendRedirect("login.jsp");
    			
    			//理由同上
    			request.getRequestDispatcher("login.jsp").forward(request, response);
    			
    		}
    	}
    
    }
    

    UserClServlet.java

    /**
     * 功能:这个控制器将处理用户的分页显示,用户的删除改动查询,加入
     * 时间:2014年6月5日13:47:03
     * 作者:cutter_point
     */
    package com.xf.controller;
    
    import com.xf.model.*;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class UserClServlet extends HttpServlet
    {
    
    	/**
    	 * The doGet method of the servlet. <br>
    	 *
    	 * This method is called when a form has its tag value method equals to get.
    	 * 
    	 * @param request the request send by the client to the server
    	 * @param response the response send by the server to the client
    	 * @throws ServletException if an error occurred
    	 * @throws IOException if an error occurred
    	 */
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException
    	{
    
    		//得到用户希望显示的pageNow,和flag
    		System.out.println("使用UserClServlet!");
    		String s_pageNow=request.getParameter("pageNow");
    		String flag=request.getParameter("flag");
    		//使用UserBeanCl的方法调用得到pageNow
    		if(flag.equals("fenye"))
    		{
    			try
    			{
    				int pageNow=Integer.parseInt(s_pageNow);
    				//调用UserBeanCl
    				UserBeanCl ubc=new UserBeanCl(); 
    				//在进入wel.jsp之前把数据都准备好
    				ArrayList al=ubc.getUsersByPage(pageNow);
    				int pageCount=ubc.getPageCount();
    				request.setAttribute("result", al);
    				request.setAttribute("pageCount", pageCount+"");
    				request.setAttribute("pageNow", pageNow+"");
    			//	request.setAttribute("pageNow", pageNow); 不行必须在后面加引號,不然没法用,由于别人
    				//默认吧pageNow看成string了,结果传过去了,以为是String类型,实际是int类型,结果就出错了
    				
    				System.out.println("分页是使用了UserClServlet!!");
    				
    				//从新跳转回wel.jsp里面去
    				request.getRequestDispatcher("wel.jsp").forward(request, response);
    			} 
    			catch (Exception e)
    			{
    				// TODO: handle exception
    				e.printStackTrace();
    			}
    		}
    		//删除用户信息
    		else if(flag.equals("delUser"))
    		{
    			UserBeanCl ubc=new UserBeanCl();
    			
    			//吧id得到
    			long Sno=Long.parseLong(request.getParameter("Sno"));
    			
    			//调用删除的方法
    			if(ubc.delv_gradeBySno(Sno))
    			{
    				//删除成功
    				request.getRequestDispatcher("suc.jsp").forward(request, response);
    			}
    			else
    			{
    				//删除失败
    				request.getRequestDispatcher("err.jsp").forward(request, response);
    			}
    		}
    		else if(flag.equals("updv_grade"))
    		{
    			long Sno=Long.parseLong(request.getParameter("Sno"));
    			String Cno=request.getParameter("Cno");
    			String Cname=request.getParameter("Cname");
    			String Tname=request.getParameter("Tname");
    			int Grade=Integer.parseInt(request.getParameter("Grade"));
    			
    			UserBeanCl ubc=new UserBeanCl();
    			
    			//一个推断是否改动了的函数
    			if(ubc.updUser(Sno, Cno, Cname, Tname, Grade))
    			{
    				request.getRequestDispatcher("suc.jsp").forward(request, response);
    			}
    			else
    			{
    				//加入失败
    				request.getRequestDispatcher("err.jsp").forward(request, response);
    			}
    		}
    		else if(flag.equals("fenyes"))	//学生登录
    		{
    			try
    			{
    				int pageNow=Integer.parseInt(s_pageNow);
    				//调用UserBeanCl
    				UserBeanCl ubc=new UserBeanCl(); 
    				//在进入wel.jsp之前把数据都准备好
    				ArrayList al=ubc.getUsersByPage(pageNow);
    				int pageCount=ubc.getPageCount();
    				request.setAttribute("result", al);
    				request.setAttribute("pageCount", pageCount+"");
    				request.setAttribute("pageNow", pageNow+"");
    			//	request.setAttribute("pageNow", pageNow); 不行必须在后面加引號,不然没法用,由于别人
    				//默认吧pageNow看成string了,结果传过去了,以为是String类型,实际是int类型,结果就出错了
    				
    				System.out.println("分页是使用了UserClServlet!!");
    				
    				//从新跳转回wel.jsp里面去
    				request.getRequestDispatcher("wel_2.jsp").forward(request, response);
    			} 
    			catch (Exception e)
    			{
    				// TODO: handle exception
    				e.printStackTrace();
    			}
    		}
    		
    	}
    	
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    	throws ServletException, IOException{
    		this.doGet(request, response);
    	}
    	
    }
    

    PS:mvc开发模式下的一个用户管理系统,增删改查这些基本功能都已经实现,没有贴出数据库部分,由于不是必需啊!!大笑偷笑










  • 相关阅读:
    Go组件学习——Web框架Gin
    一次线上接口超时的排查过程
    Go组件学习——手写连接池并没有那么简单
    终于跑通分布式事务框架tcc-transaction的示例项目
    Go语言学习——如何实现一个过滤器
    Go组件学习——database/sql数据库连接池你用对了吗
    我们这一年 | 诗人呀
    NodeMan架构
    NodeMan介绍
    微信小程序录音实现
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4076150.html
Copyright © 2020-2023  润新知