JSP:注册&登录
数据库: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="提交" />
<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="提交" />
<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:注册&登录的更多相关文章
- JSP注册登录页教程
转载请标明原文地址:http://www.cnblogs.com/zhangyukof/p/6785258.html 一.准备工作 已搭建好的SSH框架工程一个,如果没有,请参考我的上一篇文章< ...
- 我的第一个jsp程序-实现注册登录留言功能
1,注册功能,包括两个页面 zhuce.jsp注册页面 <%@ page language="java" contentType="text/html; chars ...
- JavaWeb笔记——注册登录系统项目思路
功能: > 注册 > 登录 --------------------------------- JSP: * login.jsp --> 登录表单 * regist ...
- 注册登录系统项目思路 -- javaweb
功能: > 注册 > 登录 --------------------------------- JSP: * login.jsp --> 登录表单 * re ...
- JavaWeb_利用Servlet处理注册登录请求
利用Servlet处理注册登录请求 程序结构 <%@page import="com.Gary.model.User"%> <%@ page language=& ...
- java使用face++简单实现人脸识别注册登录
java使用face++简单实现人脸识别注册登录 前言 人脸识别,好高大上!!! 理解之后很简单. 支付宝使用的就是face++, 至于face++账号信息,apikey…..,本文不做讲述,网上很多 ...
- 基于javaweb人脸识别注册登录系统
---恢复内容开始--- 现在是2019年,人脸识别技术已经相当成熟了,百度自2017年发布人脸识别技术,已经被广泛应用,不管从现在的iphoneX掀起的面部解锁到手机应用端的各种人脸认证,这一技术已 ...
- 一步步开发自己的博客 .NET版(3、注册登录功能)
前言 这次开发的博客主要功能或特点: 第一:可以兼容各终端,特别是手机端. 第二:到时会用到大量html5,炫啊. 第三:导入博客园的精华文章,并做分类.(不要封我) 第四:做 ...
- Android开发案例 - 注册登录
本文只涉及UI方面的内容, 如果您是希望了解非UI方面的访客, 请跳过此文. 在微博, 微信等App的注册登录过程中有这样的交互场景(如下图): 打开登录界面 在登录界面中, 点击注册, 跳转到注册界 ...
随机推荐
- Debug outlook add-in (office.js) 小技巧
这几天在使用office.js 做outlook add-in的时候出现了一个问题: 不知道运行时去调试. 这里给大家介绍两个调试add-in 的方法. office365 其他软件 add-ins ...
- Flume 高可用配置案例+load balance负载均衡+ 案例:日志的采集及汇总
高可用配置案例 (一).failover故障转移 在完成单点的Flume NG搭建后,下面我们搭建一个高可用的Flume NG集群,架构图如下所示: (1)节点分配 Flume的Agent和Colle ...
- GTX的生成(包括COMMON)
GTX的生成(包括COMMON) 1.每一个GTX Quad需要一个GTX common,同时GTX common只包含有QPLL,不包含CPLL. 2.kintex-7设备只支持GTX 3.参考时钟 ...
- mycat配置安装测试
https://www.jianshu.com/p/26513f428ecf #下载安装#java jdk mkdir /usr/local/java/tar -zxvf jdk-7u80-linux ...
- Python标示符和关键字
标示符 什么是标示符,看下图: 标识符就是开发人员在程序中自定义的一些符号和名称. 标示符是自己定义的,如变量名 .函数名等. 标示符的规则 标示符由字母.下划线和数字组成,且数字不能开头 pytho ...
- php访问SQLserver时加载的dll
php_sqlsrv_55_ts.dll 线程t安全sphp_sqlsrv_55_nts.dll 非n线程t安全s
- 黄聪:PHP数据库连接失败--could not find driver 解决办法
数据库连接失败could not find driver在调试一个PHP程序时,报了这个错误, could not find driver 经过一番查找,结合自己的思考和实践,终于找到了问题所在. 原 ...
- “无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)”的方法
另外的ubuntu 问题 在更新的时候有时候会出现 “无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)”的方法 解决办法: 在ubuntu系统的termial下, ...
- AutoCAD的代替软件
AutoCAD的代替软件Autocad2005以上版本都需要.net framework的支持,安装起来太麻烦,而且卡顿.以下几个软件可以代替Autocad,操作和插件基本都能兼容Autocad.1. ...
- 1123.(重、错)Is It a Complete AVL Tree
题意:给定结点个数n和插入序列,判断构造的AVL树是否是完全二叉树? 思路:AVL树的建立很简单.而如何判断是不是完全二叉树呢?通过层序遍历进行判断:当一个结点的孩子结点为空时,则此后就不能有新的结点 ...