您的位置:首页 > 其它

Servlet登陆注册管理系统2.0

2013-08-18 16:31 106 查看
增加了分页功能

Login.java

package com.tsinghua;

import javax.servlet.http.*;
import java.io.*;

public class Login extends HttpServlet{
	//处理get请求
	//req : 用于获得客户端(浏览器)的信息
	//res : 用于向客户端(浏览器)返回信息
	public void doGet(HttpServletRequest req,HttpServletResponse res){
	  try{	
	  	res.setContentType("text/html;charset=gbk");
	    PrintWriter pw = res.getWriter();
	    String error = (String)req.getParameter("info");
	    
		pw.println("<html>");
		pw.println("<body>");  
	    pw.println("<head>登陆界面</head>");
	    if(error!=null){
	    	pw.println("<h1>您输入的用户名或密码错误</h1>");
	    }
		pw.println("<form action=loginCheck  method =post>"); 
		pw.println("用户:<input type=text name =username><br>");
		pw.println("密码:<input type=password  name =password><br>");
		pw.println("<input type=submit value=login>");
		pw.println("</form>");
		pw.println("</body>");
	    pw.println("</html>");
	}catch(Exception e){
		 e.printStackTrace();
	}
  }
}




LoginCheck.java

package  com.tsinghua;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;

public class LoginCheck extends HttpServlet{
	public void doGet(HttpServletRequest req,HttpServletResponse res){
		Connection ct = null;
		Statement sm  = null;
		ResultSet rs = null;
		
		try{
		String u = req.getParameter("username");
		String p = req.getParameter("password");
		
		//连接数据库
		Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		//得到链接 Connection对象
        ct = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=spdb1","sa","admin");
        // 创建statement 
        
        sm = ct.createStatement();
        //得到结果集
        //rs = sm.executeQuery("select top 1 from users where username='"+u+ "' and passwd='" +p+"'");
		/*//if(u.equals("sp")&&p.equals("123")){
		//if(p.equals("123")){
		if(rs.next()){
			// 将验证成功的信息写入session
			//1:得到session
			HttpSession hs = req.getSession(true); 
			//修改session的存在时间
			hs.setMaxInactiveInterval(20);
			hs.setAttribute("pass","OK");
			
			res.sendRedirect("welcome?uname="+u+"&upass="+p);
			
		}*/
		
		rs = sm.executeQuery("select top 1 passwd from users where username = '"+u+"'");
		if(rs.next()){
			//说明用户是存在的
			String dbPasswd = rs.getString(1);
			if(dbPasswd.equals(p)){
				// 将验证成功的信息写入session
				//1:得到session
				HttpSession hs = req.getSession(true); 
				//修改session的存在时间
				hs.setMaxInactiveInterval(20);
				hs.setAttribute("pass","+p+");
				hs.setAttribute("name","+u=");
			
				//res.sendRedirect("welcome?uname="+u+"&upass="+p);
				res.sendRedirect("welcome");
				// 真的合法
			}
			else{
					res.sendRedirect("login");// 里面的内容是写你要跳转servlet的url
			}
		}
		else{
			res.sendRedirect("login");// 里面的内容是写你要跳转servlet的url
		}
		
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try{
				if(rs!=null){
				 rs.close();
				}
		    if(sm!=null){
		        sm.close();
		    }
			if(ct!=null){
			    ct.close();
			}
			
			}catch(Exception e){
				e.printStackTrace();
			}
			
		}
		
	}
	
	public void doPost(HttpServletRequest req,HttpServletResponse res){
		this.doGet(req,res);
	}
}




Welcome.java



//用户欢迎servlet

package  com.tsinghua;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Welcome extends HttpServlet{
		Connection ct = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
	
	
	public void doGet(HttpServletRequest req,HttpServletResponse res){
	    res.setContentType("text/html;charset=gbk");
	
		try{
			 HttpSession hs = req.getSession(true);
	    	 String p = (String)hs.getAttribute("pass");
	    	 if(p == null){
	    		res.sendRedirect("login?info=error");
	    	 }
	    		
	    	//u=new String(u.getBytes("iso-8859-1"),"gb2312");
	    	String u = (String)hs.getAttribute("name");
			PrintWriter pw = res.getWriter();
			pw.println("<img src=imgs/1.GIF><br>");
		
		
			
			//连接数据库
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			//得到链接 Connection对象
       		ct = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=spdb1","sa","admin");
       		// 创建statement 
			ps = ct.prepareStatement("select count(*)from users");
			rs = ps.executeQuery();
		
			int pageSize = 3;    //一页显示几条数据
			int pageNow = 1;	 //希望显示第几页
			int rowCount;       // 一共有多少行(查询出来)
			int pageCount;       //共有几页(计算出来)
			
			//动态的界首pageNow 
			String sPageNow = (String)req.getParameter("pageNow");
			
			if(sPageNow!=null){
					pageNow = Integer.parseInt(sPageNow);
			}
			
			if(rs.next()){
				//首先得到rowCount
				rowCount = rs.getInt(1);
					if(rowCount/pageSize==0)
					{
						pageCount = rowCount/pageSize;
					}
					else
					{
						pageCount = rowCount/pageSize+1;
					}//计算pageCount
					ps = ct.prepareStatement("select top "+pageSize+" * from users where userId not in (select top "+pageSize*(pageNow-1)+" userId from users)");
			}else{
				pageCount = 0;
			}
			
			rs = ps.executeQuery();
			pw.println("<table border = 1>");
			pw.println("<tr><th>id</th><th>name</th><th>password</th><th>email</th><th>grade</th></tr>");
			while(rs.next()){
				pw.println("<tr>");
				pw.println("<td>"+rs.getInt(1)+"</td>");
				pw.println("<td>"+rs.getString(2)+"</td>");
				pw.println("<td>"+rs.getString(3)+"</td>");
				pw.println("<td>"+rs.getString(4)+"</td>");
				pw.println("<td>"+rs.getInt(5)+"</td>");
				pw.println("</tr>");
				}
				
				pw.println("</table>");
				
				//显示超链接
				for(int i=1;i<=pageCount;i++){
					pw.println("<a href=welcome?pageNow="+i+">"+i+"</a>");
				}
			//	pw.println("<br>Welcome!"+u+"! pass="+p);
			pw.println("<br>Welcome!"+u+"!");
				pw.println("<br><a href =login>返回重新登陆>");
		   
		
		}catch(Exception e){
			e.printStackTrace();
		}
	}	
	public void doPost(HttpServletRequest req,HttpServletResponse res){
		this.doGet(req,res);
	}

 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: