用户登录模块
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();
}
}
}
这个模块的整体思路是:首先进入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();
}
}
}
相关文章推荐
- ImageLoader 安卓异步加载图片开源工具类
- UIView 中的控件事件穿透 Passthrough 的实现
- 来广州传智播客学.Net 培训班给你真正的技术
- 学网页平面设计,真心推荐广州传智播客
- ListView之setEmptyView的问题
- java基础知识5-类的分类和修饰
- sqlserver2000与sqlserver2005驱动与url的区别
- 第十五周上机实践项目——带姓名的成绩单
- Android--从系统Camera和Gallery获取图片优化
- 中国式IT的项目
- 一个例子帮你搞懂C#语言高级特性系列(03) --- 方法扩展
- OpenGL教程
- 关于C#中对象用作属性
- SQL Server JDBC 驱动中sqljdbc.jar和sqljdbc4.jar的区别
- C++实现的无锁队列
- 选择排序
- toString
- 大总账凭证导出至核心
- Android--加载大分辨率图片到内存
- RubyGems 镜像 - 淘宝网