论坛首页 Java企业应用论坛

JSP+Bean+Servlet模式实现最简单登陆界面

浏览 16867 次
精华帖 (2) :: 良好帖 (1) :: 新手帖 (18) :: 隐藏帖 (1)
作者 正文
   发表时间:2010-10-09   最后修改:2010-10-11
Userlogin代码 /*   
    Document   : UserLogin   
    Created on : 2010-10-9, 21:03:15  
    Author     : guzhihao   
    Faction    :一个具体实现注册方法的Bean   */   
package Servlet1;   
import java.sql.*;   
public class UserLogin {   
     public boolean login(User user){   
  
        Connection conn=null;   
        PreparedStatement ps=null;   
           
        try{   
            Class.forName("com.mysql.jdbc.Driver");   
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/cars","root","1232323");   
            String sql=   
                    "insert into user(uname,upass)values(?,?)";   
            ps=conn.prepareStatement(sql);   
            ps.setString(1,user.getUname());   
            ps.setString(2,user.getUpass());   
            int mun=ps.executeUpdate();   
        }catch(Exception e){   
        e.printStackTrace();   
        }finally{   
            try{   
                   
                ps.close();   
                conn.close();   
            }catch(SQLException e){   
                e.printStackTrace();   
            }   
        }   
  
     return true;   
}   
}  


Userservlet代码 
/*   
    Document   : UserServlet   
    Created on : 2010-10-9, 21:03:15  
    Author     : guzhihao   
    Faction    :用于实现后台调用分配的Servlet   
*/   
package Servlet1;   
import java.io.IOException;   
import javax.servlet.ServletException;   
import javax.servlet.http.HttpServlet;   
import javax.servlet.http.HttpServletRequest;   
import javax.servlet.http.HttpServletResponse;   
import javax.servlet.http.HttpSession;   
public class UserServlet extends HttpServlet {   
    private UserLand Land=new UserLand();   
    private UserLogin login=new UserLogin();   
    public void doGet(HttpServletRequest request,HttpServletResponse response)   
                    throws ServletException,IOException{   
    }   
    public void doPost(HttpServletRequest request,HttpServletResponse response)   
            throws ServletException,IOException{   
            request.setCharacterEncoding("gb2312");   
            String submit=request.getParameter("submit");   
  
            if(submit!=null&&submit.equals("登陆")){   
            String uname=request.getParameter("uname");   
            String upass=request.getParameter("upass");   
            User user=new User();   
            user.setUname(uname);   
            user.setUpass(upass);   
            if(Land.login(user)){   
                HttpSession session=request.getSession(true);   
                session.setAttribute("user",user);   
                request.getRequestDispatcher("index.jsp").forward(request,response);   
            }else{   
                HttpSession session=request.getSession(true);   
                session.setAttribute("user",user);   
                request.getRequestDispatcher("index3.jsp").forward(request,response);   
            }   
    }   
           if(submit!=null&&submit.equals("注册")){   
            String uname=request.getParameter("uname");   
            String upass=request.getParameter("upass");   
            User user=new User();   
            user.setUname(uname);   
            user.setUpass(upass);   
            if(Land.login(user)){   
                HttpSession session=request.getSession(true);   
                session.setAttribute("user",user);   
                request.getRequestDispatcher("index1.jsp").forward(request,response);   
            }else if(login.login(user)){   
               HttpSession session=request.getSession(true);   
                session.setAttribute("user",user);   
                request.getRequestDispatcher("index2.jsp").forward(request,response);   
            }   
            }   
    }   
       
}  
Login代码: 
<%--
    Document   : Login
    Created on : 2010-10-9, 21:03:15
    Author     : guzhihao
    Faction    :前台登陆的页面的实现
--%>
<%@page language="java"contentType="text/html;charset=gb2312"%>
<html>
    <head>
        <title>Login.jsp</title>
    </head>
    <body style="text-align: center">
        <form action="UserServlet"method="post">
            <table>
                <tr>
                    <h5>提示:</h5>
                </tr>
                <tr>
                    <h5>如果有已注册请直接登录</h5>
                </tr>
                <tr>
                    <h5>如果没有注册请直接注册</h5>
                </tr>
                <tr>
                    <td>用户名</td>
                        <td><input type="text"name="uname"/></td>

                </tr>
                <tr>
                    <td>密&nbsp;&nbsp;码:</td>
                    <td><input type="text"name="upass"></td>
                </tr>
                <tr>
                    <td>&nbsp;</td>
                    <td>
                        <input type="submit"name="submit"value="登陆"/>&nbsp;
                        <input type="submit"name="submit"value="注册"/>
                    </td>
                </tr>
            </table>

        </form>
        
    </body>
</html>
 
index代码 
<%--
    Document   : index
    Created on : 2010-10-8, 21:03:15
    Author     : guzhihao
    Faction    :用于实现登陆成功的显示信息的JSP页面
--%>
<%@page language="java"import="Servlet1.*"contentType="text/html;charset=gb2312"%>


<html>
    <head>
       <title>index.jsp</title>
    </head>
    <body style="text-align: center">
        ${sessionScope.user.uname},欢迎您
    </body>
</html> 

User代码 
/*   
    Document   : User   
    Created on : 2010-10-9, 21:03:15  
    Author     : guzhihao  
    Fuction    : save imfomation of user
*/   
package Servlet1;   
  
public class User {   
    //private Integer uid;   
    private String uname;   
    private String upass;   
  
    public String getUname(){   
        return uname;   
    }   
    public void setUname(String uname){   
        this.uname=uname;   
    }   
    public String getUpass(){   
        return upass;   
    }   
    public void setUpass(String upass){   
        this.upass=upass;   
    }   
  
}  

Userland代码 
/*   
    Document   : UserLand   
    Created on : 2010-10-9, 21:03:15  
    Author     : guzhihao   
    Faction    :一个实现登陆具体步骤的bean页面   
*/   
package Servlet1;   
import java.sql.*;   
  
public class UserLand {   
    public boolean login(User user){   
        Connection conn=null;   
        PreparedStatement ps=null;   
        ResultSet rs=null;   
        try{   
            Class.forName("com.mysql.jdbc.Driver");   
            conn=DriverManager.getConnection(   
                    "jdbc:mysql://localhost:3306/cars","root","1232323");   
            String sql="Select uname,upass from user";   
            ps=conn.prepareStatement(sql);   
                       rs=ps.executeQuery();   
            while(rs.next()){   
                if(user.getUname().equals(rs.getString("uname"))&&user.getUpass().equals(rs.getString("upass"))){   
                return true;   
                }   
            }   
            //return false;   
        }catch(Exception e){   
            e.printStackTrace();   
        }finally{   
            try{   
                rs.close();   
                ps.close();   
                conn.close();   
            }catch(SQLException e){   
                e.printStackTrace();   
            }   
        }   
        return false;   
    }   
  
} 

  这里index.JSP只写了一个1,2,3大同小异,这里就不写了。这里用到了MYSQL,实现需要配置好服务器,和web.xml。我的web.xml:

/*Web.xml代码*/ 
<?xml version="1.0" encoding="UTF-8"?>   
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">   
    <servlet>   
        <servlet-name>UserServlet</servlet-name>   
        <servlet-class>Servlet1.UserServlet</servlet-class>   
    </servlet>   
       
    <servlet-mapping>   
        <servlet-name>UserServlet</servlet-name>   
        <url-pattern>/UserServlet/*</url-pattern>   
    </servlet-mapping>   
     
</web-app>  

大致说一下实现的过程,1.了解架构,JSP负责前台页面;bean用来具体实现功能语言:sql语言的完成和算法等;servlet在后台进行调用分配等。

此代码,登陆和注册页面都在一个页面,代码可以看得出,是最基本的登陆页面。

(此贴为JavaWeb新手参见,希望能帮到新手们,因为当初自己也是找了很久没找到比较完善的。具体有5个JSP,一个java,两个Bean,一个Servlet。详情见代码,如果有错误和不当之处请回帖。欢迎您的意见)
   发表时间:2010-10-11  
对新手很有用。
0 请登录后投票
   发表时间:2010-10-11  
排版排版~~~~~~
太JB乱了~~而且有很多重复内容~
0 请登录后投票
   发表时间:2010-10-11  
JE是有代码高亮插件的,谢谢!
0 请登录后投票
   发表时间:2010-10-11  
谢谢LZ了,请排版注名下各个JAVA,BEAN等的作用,新手好学习啊,辛苦了
0 请登录后投票
   发表时间:2010-10-11  
好的,我已重新排版,谢谢楼上的的意见。希望对新手同胞们有帮助。
0 请登录后投票
   发表时间:2010-10-11  
Userlogin类和UserLand类里面使用了import java.sql.*; 可以改善。

Userlogin类和UserLand类里面都用到了连接数据URL,可以共用。
1 请登录后投票
   发表时间:2010-10-11  
和楼上看法一样 java.sql.* 还是少用这种*吧 
1 请登录后投票
   发表时间:2010-10-12  
这种帖子也能上javaeye首页。无语了,并且还有人投精华。日...
0 请登录后投票
   发表时间:2010-10-12  
楼上兄弟过于偏激,帖子不在于深度多高,能帮到人就好了。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics