用户登录模块

今天终于把用户登录模块给完成了。(其实早就写完了,只是错误比较多啊!)第一次学着以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" οnsubmit="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();
    }
   }
}

 

 

转载于:https://www.cnblogs.com/adafox51/archive/2012/03/11/2390525.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值