数据库:Mysql

  除了_id自动增长,其余全是varchar

注册:register.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'Register.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="stylesheet" href="css/ah.css" />
<script type="text/javascript" src="js/jquery.min.js"></script>
<script>
function chkUname() {
var v = $("input[name='uname']").val();
if (v.trim() == "") {
alert("用户名不能为空");
return false;
}
return true;
} function chkPwd() {
var v = $("input[name='pwd']").val();
if (v.trim() == "") {
alert("密码不能为空");
return false;
}
return true;
} function chkPwd2() {
var pwd1 = $("input[name='pwd']").val();
var pwd2 = $("input[name='pwd2']").val();
if (pwd1 != pwd2) {
alert("两次输入的密码不一致");
return false;
}
return true;
} function chkEmail() {
var v = $("input[name='email']").val();
if (v.trim() == "") {
alert("邮箱不能为空");
return false;
} // 格式匹配
var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
if (!reg.test(v)) {
alert("邮箱的格式不正确");
return false;
}
return true;
}
function check() {
if (chkUname() && chkPwd() && chkPwd2() && chkEmail()) {
return true;
}
return false;
}
</script> </head> <body>
<form action="S003User?approach=register" method="post"
onsubmit="return check();">
<table align="center" border="0" class="padding_top">
<tr>
<td colspan="3" class="title_1">用户注册</td>
</tr>
<tr>
<td>用户名:</td>
<td><input type="text" name="uname" onblur="chkUname()"></td>
<td><span class='must_w'>*</span></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="pwd" onblur="chkPwd()"></td>
<td><span class='must_w'>*</span></td>
</tr>
<tr>
<td>密码确认:</td>
<td><input type="password" name="pwd2" onblur="chkPwd2()"></td>
<td><span class='must_w'>*</span></td>
</tr>
<tr>
<td>邮箱:</td>
<td><input type="text" name="email" onblur="chkEmail()"></td>
<td><span class='must_w'>*</span></td>
</tr>
<tr>
<td>手机:</td>
<td><input type="text" name="tel"></td>
</tr>
<tr>
<td colspan="3" align="center"><input type="submit" value="提交" />
&nbsp;&nbsp;<input type="reset" value="重置" /> <a href="login.jsp">去注册</a>
</td>
</tr>
</table>
</form>
</body>
</html>

登录:login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'login.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="stylesheet" href="css/ah.css" />
<script type="text/javascript" src="js/jquery.min.js"></script> </head> <body>
<!-- <form action="S003User?t=login" method="post"> -->
<form action="S003User?approach=login" method="post"
onsubmit="return check();">
<table align="center" border="0" class="padding_top">
<tr>
<td colspan="3" class="title_1">用户登录</td>
</tr>
<tr>
<td>用户名:</td>
<td><input type="text" name="uname" onblur="chkUname()"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="pwd" onblur="chkPwd()"></td>
</tr>
<tr>
<td colspan="3" align="center"><input type="submit" value="提交" />
&nbsp;&nbsp;<input type="reset" value="重置" /> <a
href="register.jsp">直接登录</a></td>
</tr>
</table>
</form>
</body>
</html>

CSS:ah.css

#tag {
color: red;
background-color: #00FFFF;
border-radius: 3px;
padding: 5px;
} /* 必须输入 */
.must_w {
color: red;
}
/* 上隔离 */
.padding_top {
padding-top: 50px;
} /* 页面标题1 */
.title_1 {
font-family: "微软雅黑";
font-size: larger;
font-weight: bold;
}

Servlet:S003User.java

package org.ah.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 org.ah.bean.UserBean;
import org.ah.dao.UserDao; public class S003User extends HttpServlet {
private static final long serialVersionUID = 1L; public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { int ret = 0;
String uName = request.getParameter("uname");
String uPwd = request.getParameter("pwd");
UserDao dao = new UserDao(); String approach = request.getParameter("approach");
if ("register".equals(approach)) {
// 注册
String eMail = request.getParameter("email");
String tel = request.getParameter("tel");
UserBean u = new UserBean(uName, uPwd, eMail, tel);
ret = dao.register(u);
if (ret > 0) {
response.sendRedirect("login.jsp");
} else {
response.sendRedirect("register.jsp");
}
} else if ("login".equals(approach)) {
// 登录
UserBean u = new UserBean(uName, uPwd, "", "");
ret = dao.login(u);
if (ret > 0) {
response.sendRedirect("ArticleListServlet");
} else {
response.sendRedirect("login.jsp");
}
}
}
}

数据库连接:

package org.ah.dao;

import java.sql.*;

public class BaseDao {

    private static final String DRIVER = "com.mysql.jdbc.Driver";
private static final String URL = "jdbc:mysql://localhost:3306/ahrecommend";
public Connection conn;
public PreparedStatement ps;
public ResultSet rs; public void getConn() {
try {
Class.forName(DRIVER);
conn = (Connection) DriverManager
.getConnection(URL, "root", "root");
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} public void closeConn() { try {
if (conn != null) {
conn.close();
conn = null;
}
if (ps != null) {
ps.close();
ps = null;
}
if (rs != null) {
rs.close();
rs = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
package org.ah.dao;

import java.sql.ResultSet;
import java.sql.SQLException; import org.ah.bean.UserBean; public class UserDao extends BaseDao {
public int register(UserBean u) {
int ret = 0; super.getConn();
try {
StringBuffer sb = new StringBuffer();
sb.append(" INSERT INTO");
sb.append(" usermst");
sb.append(" VALUES");
sb.append(" (");
sb.append(" 0,");// 自增
sb.append(" ?,");
sb.append(" ?,");
sb.append(" ?,");
sb.append(" ?");
sb.append(" )");
String strSQL = sb.toString();
ps = conn.prepareStatement(strSQL);
ps.setString(1, u.getuName());
ps.setString(2, u.getuPwd());
ps.setString(3, u.geteMail());
ps.setString(4, u.getTel());
ret = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
super.closeConn();
}
return ret;
} public int login(UserBean u) {
int ret = 0;
super.getConn();
try {
StringBuffer sb = new StringBuffer();
sb.append(" SELECT");
sb.append(" uName");
sb.append(" FROM");
sb.append(" usermst");
sb.append(" WHERE");
sb.append(" uName = ?");
sb.append(" AND");
sb.append(" uPwd = ?");
String strSQL = sb.toString();
ps = conn.prepareStatement(strSQL);
ps.setString(1, u.getuName());
ps.setString(2, u.getuPwd());
super.rs = ps.executeQuery();
if (rs.next()) {
// 查询到(一条)数据
ret = 1;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
super.closeConn();
}
return ret;
}
}

JSP:注册&登录的更多相关文章

  1. JSP注册登录页教程

    转载请标明原文地址:http://www.cnblogs.com/zhangyukof/p/6785258.html  一.准备工作 已搭建好的SSH框架工程一个,如果没有,请参考我的上一篇文章< ...

  2. 我的第一个jsp程序-实现注册登录留言功能

    1,注册功能,包括两个页面 zhuce.jsp注册页面 <%@ page language="java" contentType="text/html; chars ...

  3. JavaWeb笔记——注册登录系统项目思路

    功能:   > 注册   > 登录 --------------------------------- JSP:   * login.jsp  --> 登录表单   * regist ...

  4. 注册登录系统项目思路 -- javaweb

    功能:   > 注册   > 登录   ---------------------------------   JSP:   * login.jsp  --> 登录表单   * re ...

  5. JavaWeb_利用Servlet处理注册登录请求

    利用Servlet处理注册登录请求 程序结构 <%@page import="com.Gary.model.User"%> <%@ page language=& ...

  6. java使用face++简单实现人脸识别注册登录

    java使用face++简单实现人脸识别注册登录 前言 人脸识别,好高大上!!! 理解之后很简单. 支付宝使用的就是face++, 至于face++账号信息,apikey…..,本文不做讲述,网上很多 ...

  7. 基于javaweb人脸识别注册登录系统

    ---恢复内容开始--- 现在是2019年,人脸识别技术已经相当成熟了,百度自2017年发布人脸识别技术,已经被广泛应用,不管从现在的iphoneX掀起的面部解锁到手机应用端的各种人脸认证,这一技术已 ...

  8. 一步步开发自己的博客 .NET版(3、注册登录功能)

    前言 这次开发的博客主要功能或特点:    第一:可以兼容各终端,特别是手机端.    第二:到时会用到大量html5,炫啊.    第三:导入博客园的精华文章,并做分类.(不要封我)    第四:做 ...

  9. Android开发案例 - 注册登录

    本文只涉及UI方面的内容, 如果您是希望了解非UI方面的访客, 请跳过此文. 在微博, 微信等App的注册登录过程中有这样的交互场景(如下图): 打开登录界面 在登录界面中, 点击注册, 跳转到注册界 ...

随机推荐

  1. Python time & datetime模块

    time 模块 时间分为三种格式: 时间戳:表示1970年1月1日之后的秒 结构化时间:元组包含了:年.日.星期等... 格式化字符串:格式可以自定义 时间戳: import time time_st ...

  2. touch-action 解决移动端300ms延迟问题

    CSS3 新属性, touch-action: manipulation; 可以有效的解决移动端300ms延迟的问题 移动端300ms延迟问题一直都是h5APP的痛点, 有很多库或者方法都可以解决, ...

  3. react:路由登陆后才能访问的控制

    react-router 通过创建一个 需要认证的路由 来限制登陆后才能访问. 官方例子:https://reacttraining.com/react-router/web/example/auth ...

  4. tomcat中catalina是什么

    catalina 就是Tomcat服务器使用的 Apache实现的servlet容器的 名字. Tomcat的核心分为3个部分: (1)Web容器---处理静态页面: (2)catalina --- ...

  5. 基于redis的乐观锁实践

    redis真是一个分布式应用场景下的好东西,对于我们的应用设计,功劳大大的! 今天要研究的是基于redis的事务机制以及watch指令(CAS)实现乐观锁的过程. 所谓乐观锁,就是利用版本号比较机制, ...

  6. ASP.NET中使用JSON方便实现前台与后台的数据交换

    ASP.NET中使用JSON方便实现前台与后台的数据交换 发表于2014/9/13 6:47:08  8652人阅读 分类: ASP.NET Jquery extjs 一.前台向后台请求数据 在页面加 ...

  7. Thinkphp 关联模型

    1.定义关联模型 2.使用关联模型 D('BlogRelation')->relation(true)->add($data);

  8. ALGO-125_蓝桥杯_算法训练_王、后传说(DFS)

    问题描述 地球人都知道,在国际象棋中,后如同太阳,光芒四射,威风八面,它能控制横.坚.斜线位置. 看过清宫戏的中国人都知道,后宫乃步步惊心的险恶之地.各皇后都有自己的势力范围,但也总能找到相安无事的办 ...

  9. java中对HashMap遍历的方式

    第一种是利用HashMap的entrySet()方法: Map<String,String> map = new HashMap<String,String>(); Itera ...

  10. C++11--编译器生成的函数

    using namespace std; class Dog {}; /* C++ 03 * 1 默认构造函数(只有当用户没有声明任何构造函数) * 2 拷贝构造(只有当用户没有声明5,6),扩展到C ...