您的位置:首页 > 其它

用户登录模块

2013-12-06 17:44 239 查看
今天终于把用户登录模块给完成了。(其实早就写完了,只是错误比较多啊!)第一次学着以mvc的模式来写代码。首先创建了database跟servlet两个包,还有就是在WebRoot/WEB-INF下面新建了一个jsp文件夹用来装jsp文件。

这个模块的整体思路是:首先进入login.jsp页面,输入用户名、密码以及验证码。通过表单的action将信息提供给check.java。check.java先对验证码进行校验,错误则重定向到relogin.jsp 。再对数据库进行查找,如果用户名、密码输入正确则重定向到right.jsp页面 ,不正确则重定向到error.jsp页面。relogin.jsp 跟error.jsp中直接包含login.jsp。

 

下面是login.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@ page import="java.sql.*,javax.swing.*" errorPage=""%>

<html>

 <script type="text/javascript">

 function Check() {

  if (form.Username.value == "") {

  alert("请输入用户名!!!");

  form.Username.focus();

  return false;

  }

  if(form.Password.value == ""){

  alert("请输入密码!!!");

  form.Password.focus();

  return false;

  }

 }

</script>

 <head>

  <title>用户登录</title>

 </head>

 <body>

  <form name="form" onsubmit="return Check()" action="/mine1/servlet/check"

   method="get">

   <table width=265 align="center" border=0>

    <tbody>

     <tr align="center" valign="middle">

      <td colspan="2">

       <strong>登录</strong>

      </td>

     </tr>

     <tr>

      <td height="54" align="center">

       用户名:

      </td>

      <td width="181" height="54">

       <input id=Username name=Username>

      </td>

     </tr>

     <tr>

      <td height="54" align="center">

       密码:

      </td>

      <td width="181" height="54">

       <input id=Password name=Password>

      </td>

     </tr>

     <tr>

      <td align="center">

       认证码:

      </td>

      <td>

       <img alt="看不清,换一张" src="Image.jsp" border="1">

      </td>

     </tr>

     <tr>

      <td height="54" align="center">

       认证码:

      </td>

      <td width="181" height="54">

       <input type="text" name="rand" maxlength="4" value="">

      </td>

     </tr>

     <tr>

      <td colspan="2" align="center">

       <input type="submit" value="登录">

       <input type="submit" value="重置">

      </td>

     </tr>

    </tbody>

   </table>

  </form>

 </body>

</html>

 

然后是check.java:

package servlet;

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;

import database.jdbcBean;

public class check extends HttpServlet {

 /**

  *

  */

 private static final long serialVersionUID = 1L;

 public void doGet(HttpServletRequest request, HttpServletResponse response)

   throws ServletException, IOException {

  response.setCharacterEncoding("UTF-8");

  response.setContentType("text/html;charset=UTF-8");

  HttpSession session = request.getSession();

  String Username = request.getParameter("Username");

  String Password = request.getParameter("Password");

  String input = request.getParameter("rand");

  // 如果用户名跟密码都不为空

  if (Username != null && Password != null) {

   session.setAttribute("username", Username);

   session.setAttribute("password", Password);

   session.setAttribute("input", input);

   // 检验验证码是否输入正确

   if (input.equals(session.getAttribute("rand"))) {

    // 从数据库中读取校验,看用户名跟密码是否正确

    jdbcBean db = new jdbcBean();

    String SqlString = "select * from UserInfo where username='"

      + Username + "'and password='" + Password + "'";

    try {

     //用户名、密码正确,跳转到right.jsp页面

     if (db.executeQuery(SqlString).next()) {

      response.sendRedirect("/mine1/right.jsp");

     }else {

    response.sendRedirect("/mine1/error.jsp");

   }

    } catch (Exception e) {

     // TODO Auto-generated catch block

     e.printStackTrace();

    }

   }

  }

 }

 public void doPost(HttpServletRequest request, HttpServletResponse response)

   throws ServletException, IOException {

  doGet(request, response);

 }

}

对于数据库的操作部分,额,是好心的网友发给我的

package database;

import java.sql.*;

public class jdbcBean {

 

 private String userName="sa";

 private String password="sa";

 //private String dbname;

 

 private String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";

 private Connection ct;

 private PreparedStatement ps;

 

   public jdbcBean()

   {

    try {

     Class.forName(driver);

     

    } catch (Exception e) {

     // TODO Auto-generated catch block

     e.printStackTrace();

    }

   }

   

   /*public  void setDbname(String dbname)

   {

    this.dbname=dbname;

   }*/

   public ResultSet executeQuery(String sql)

   { String url="jdbc:sqlserver://localhost:1433;DataBaseName=UserInfo";

    ResultSet rs=null;

    try {

     ct=DriverManager.getConnection(url,userName,password);

     ps=ct.prepareStatement(sql);

     rs=ps.executeQuery();

    } catch (SQLException e) {

     // TODO Auto-generated catch block

     e.printStackTrace();

    }

    return rs;

   }

   

   public int executeUpdate(String sql)

   { 

    String url="jdbc:sqlserver://localhost:1433;DatabaseName=UserInfo";

     int result=0;

        try {

         ct=DriverManager.getConnection(url,userName,password);

      ps=ct.prepareStatement(sql);

      result=ps.executeUpdate();

     } catch (SQLException e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

     }

     return result;

   }

   public void close()

   {

    try {

     ps.close();

     ct.close();

    } catch (SQLException e) {

     // TODO Auto-generated catch block

     e.printStackTrace();

    }

   }

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