java+jsp用户登录模块

虽然以前写过一段时间的网站,但是大都是随便写写,并且copy,paste,对于提高也不是很大,所以自己就开始一点点的学习,从最基础的开始,并且希望记录下来这个过程,与大家分享,也便于以后的回顾和复习。

此部分的mvc分的不是很清楚,是属于model 1类型的登录模块,稍后将附mvc模式下的登录模块。

首先是页面部分是比较简单的html代码,主要使用form表格,input输入,比较简单,也是入门级别,本身自己觉得也只是入门,所以需要更多的学习。

login.jsp

 <% 
  String num=request.getParameter("num");
  if(num!=null){
  if(num.equals("0"))
  out.println("<script>confirm('输入的密码有误或输入的用户名不存在!,请确认是否继续')</script>");
  
  }
  %>
  <body bgcolor="blue">
  <center>
		   用户登录 <br>
    <hr>
    <form action="LoginC.jsp" method="post">
                 用户名<input type="text" name="username"><br>
                密  码<input type="password" name="password"><br>
       <input type="submit" value="登录">  <input type="reset" value="重置">
    </form>
   </center>
  </body>

java代码主要有数据库的连接和一些JavaBean及处理

ConnDB.java

public class ConnDB {
	private Connection ct=null;
	public Connection getConn(){
		try {
			Class.forName("com.mysql.jdbc.Driver");
			
			try {
				ct=DriverManager.getConnection("jdbc:mysql://localhost:3306/JspTest?user=root&password=123456");
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		
			
		
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}//数据库的连接
		return ct;
	}
	

}
//UserBean.java
public class UserBean {
	private int id;
	private String username;
	private String password;
	private String info;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getInfo() {
		return info;
	}
	public void setInfo(String info) {
		this.info = info;
	}

}
UserBeanCl.java

/**
 * 这是主要对User进行的各种操作
 * @author yu
 *
 */
public class UserBeanCl {
	Connection ct=null;
	Statement st=null;
	ResultSet rs=null;

	private int pageSize=3;//每页显示的记录数
	private int pageCount=0;//页数
	private int rowCount=0;//总记录条数
	
	public void Close(){ //关闭以打开的数据库
		try {
			if(rs!=null){
				rs.close();
				rs=null;
			}
			if(st!=null){
				st.close();
				st=null;
			}
			if(ct!=null){
				ct.close();
				ct=null;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	
	}
	public boolean CheckUser(String u,String p){ //验证用户合法性

		boolean b=false;
		try{
		ct=new ConnDB().getConn();
		Statement st=ct.createStatement();
		
		String  sql="select password from users where username="+u+" ";
		
	    rs=st.executeQuery(sql);
		if(rs.next()){
			if(rs.getString(1).equals(p)){
			 //合法用户
			b=true;
			}
		}
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			this.Close();
		}
         return b;
	}
	public int getPageCount(){
		try {
			
			ct=new ConnDB().getConn();
			 st=ct.createStatement();
			String sql="select count(*) from users  ";
			 rs=st.executeQuery(sql);
			if(rs.next()){
				rowCount=rs.getInt(1);
			}
			if(rowCount%pageSize==0)
				pageCount=rowCount/pageSize;
			else
				pageCount=rowCount/pageSize+1;
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			this.Close();
		}
		return pageCount;	
	}
	public int getRowCount(){
		try {
			
			ct=new ConnDB().getConn();
			 st=ct.createStatement();
			String sql="select count(*) from users  ";
			 rs=st.executeQuery(sql);
			if(rs.next()){
				rowCount=rs.getInt(1);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			this.Close();
		}
		return rowCount;	
	}
	//得到用户信息
	public ArrayList getUserByPage(int pageNow){
		ArrayList al=new ArrayList();
		try {
			ct=new ConnDB().getConn();
			 st=ct.createStatement();
		    String sql_1="select * from users  limit "+pageSize*(pageNow-1)+", "+pageSize+"  ";
			ResultSet rs=st.executeQuery(sql_1);
			while(rs.next()){
				UserBean ub=new UserBean();
				ub.setId(rs.getInt(1));
				ub.setUsername(rs.getString(2));
				ub.setPassword(rs.getString(3));
				ub.setInfo(rs.getString(4));
				al.add(ub);
				
			}
			 
			
		} catch (Exception e) {
		e.printStackTrace();
		}finally{
			this.Close();
		}
		
		return al;
		
	}
}
login.jsp页面的信息通过logincl.jsp进行处理:

  
  <body>
<%//验证用户名和密码是否正确
		String username=request.getParameter("username");
		String pass=request.getParameter("password");
		UserBeanCl us=new UserBeanCl();//通过User验证用户名和密码
		if(us.CheckUser(username, pass)){
			response.sendRedirect("Wel.jsp?u="+username+"");
		}else
			response.sendRedirect("Login.jsp?num=0");
		
		

 %>



 <br>
  </body>
Wel.jsp主要显示数据库中的User信息,其中包括分页技术(比较简单的分页,适合数据较小时使用,大型数据不适合)

  <body>
  <%
  String u=request.getParameter("u");
   %>
    恭喜<%=u %> !登录成功!<br>
    <%
	    int pageNow=1;//希望显示页数	    
	    String pageNow_s=request.getParameter("pageNow");
	    if(pageNow_s!=null)
	    	pageNow=Integer.parseInt(pageNow_s);//获取用户需要显示的页数
	    int pageCount=new UserBeanCl().getPageCount();
	    int rowCount=new UserBeanCl().getRowCount();
	
     %>
    <a href="Login.jsp">返回登录页面</a>
    <hr>
    <h1>用户信息</h1>
    <table border="1">
        <tr><td>用户名</td><td>用户密码</td><td>信息</td></tr>
       <!-- 以下通过arrayList进行读取数据信息,通过pageNow获取分页的信息 -->
    <%
    	UserBeanCl ubc=new UserBeanCl();
    	ArrayList al=ubc.getUserByPage(pageNow);
		
		for(int i=0;i<al.size();i++){
		
		UserBean ub=(UserBean)al.get(i);

     %>

    <tr><td><%=ub.getUsername()  %></td><td><%=ub.getPassword()  %></td><td><%=ub.getInfo()  %></td></tr>
    
 <%} %>
  <%   out.print("当前为第"+pageNow+"页,共"+rowCount+"条记录");%>
    </table>
    <% if(pageNow!=1){
        out.print("<a href='Wel.jsp?pageNow=1&u="+u+"'>首页</a>");
    	out.print("<a href='Wel.jsp?pageNow="+(pageNow-1)+"&u="+u+"'>上一页</a>");
    }%>
    <%
    	for(int i=1;i<=pageCount;i++)
    	out.print("<a href='Wel.jsp?pageNow="+i+"&u="+u+"'>["+i+"]</a>");
    
     %>
      <% if(pageNow!=pageCount){
    	out.print("<a href='Wel.jsp?pageNow="+(pageNow+1)+"&u="+u+"'>下一页</a>");
    	out.print("<a href='Wel.jsp?pageNow="+pageCount+"&u="+u+"'>尾页</a>");
    }%>
    
    
    
  </body>
整体是在看完韩顺平老师的教程后编写,很多东西都是基础,除此之外在学习javaweb时还要有一定的css,javascript,http协议,数据库之类的知识,而java基础更是十分的重要,所以在不断的学习中。持续更新吧,,,

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值