JSP+Servlet实现注册登录功能
2017-03-31 09:55
519 查看
JSP是表现层,显示出要注册的内容。用表单提交进行数据转发,表单提交给Servlet进行处理,进行数据库连接
将数据写入数据库,写入成功,返回成功注册信息。具体代码如下:
JSP代码负责显示,充当显示层。与用户进行交互,将用户提交数据转发给服务器处理的功能。
Servlet负责处理业务逻辑,将提交的数据进行处理同。例如,进行数据验证,身份验证等等。具体业务处理代码如下:
package com.lyq;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RegServlet extends HttpServlet {
private static final long serialVersionUID = 1789481329876401944L;
// 数据库连接Connection
private Connection conn;
// 初始化方法
public void init() throws ServletException {
super.init();
try {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 数据库连接url
String url = "jdbc:mysql://localhost:3306/registersystem";
// 获取数据库连接
conn = DriverManager.getConnection(url, "root", "123");
System.out.println("数据库连接成功!");
} catch (Exception e) {
e.printStackTrace();
}
}
// doPost()方法处理注册请求
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置request与response的编码
response.setContentType("text/html");
request.setCharacterEncoding("GBK");
response.setCharacterEncoding("GBK");
// 获取表单中属性值
String username = request.getParameter("username");
String password = request.getParameter("password");
String sex = request.getParameter("sex");
String question = request.getParameter("question");
String answer = request.getParameter("answer");
String email = request.getParameter("email");
// 判断数据库中否连接成功
if (conn != null) {
try {
// 插入注册信息的SQL语句(使用?占位符)
String sql = "insert into tb_user(username,sex,question,answer,email,password) "
+ "values(?,?,?,?,?,?)";
// 创建PreparedStatement对象
PreparedStatement ps = conn.prepareStatement(sql);
// 对SQL语句中的参数动态赋值
ps.setString(1, username);
ps.setString(2, password);
ps.setString(3, sex);
ps.setString(4, question);
ps.setString(5, answer);
ps.setString(6, email);
// 执行更新操作
ps.executeUpdate();
// 获取PrintWriter对象
PrintWriter out = response.getWriter();
// 输出注册结果信息
out.print("<h1 aling='center'>");
out.print(username + "注册成功!");
out.print("</h1>");
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
} else {
// 发送数据库连接错误提示信息
response.sendError(500, "数据库连接错误!");
}
}
}
虽然这个业务比较简单,重要的是思想。将表现层与业务处理层进行分离处理,MVC思想的具体表现。将在以后的项目中更加重要。
将数据写入数据库,写入成功,返回成功注册信息。具体代码如下:
JSP代码负责显示,充当显示层。与用户进行交互,将用户提交数据转发给服务器处理的功能。
<%@ page language="java" contentType="text/html" pageEncoding="GBK"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>用户注册</title> <style type="text/css"> body{ margin: 0px;font-size: 12px; } .box{ border: 1px solid #D1DEB2; width: 150px; height: 20px; } .div1{ background-image: url(images/bg.jpg); height: 600px; width: 803px; padding-left:20px; padding-top:220px; text-align:left; } </style> <script type="text/javascript"> function reg(form){ if(form.username.value == ""){ alert("用户不能为空!"); return false; } if(form.password.value == ""){ alert("密码不能为空!"); return false; } if(form.repassword.value == ""){ alert("确认密码不能为空!"); return false; } if(form.password.value != form.repassword.value){ alert("两次密码输入不一致!"); return false; } if(form.question.value == ""){ alert("密码找回问题不能为空!"); return false; } if(form.answer.value == ""){ alert("密码找回答案不能为空!"); return false; } if(form.email.value == ""){ alert("电子邮箱不能为空!"); return false; } } </script> </head> <body> <div align="center"> <div class="div1"> <form action="RegServlet" method="post" onsubmit="return reg(this);"> <table align="center" border="0" width="500"> <tr> <td align="right" width="30%">用户名:</td> <td><input type="text" name="username" class="box"></td> </tr> <tr> <td align="right">密 码:</td> <td><input type="password" name="password" class="box"></td> </tr> <tr> <td align="right">确认密码:</td> <td><input type="password" name="repassword" class="box"></td> </tr> <tr> <td align="right">性 别:</td> <td> <input type="radio" name="sex" value="男" checked="checked">男 <input type="radio" name="sex" value="女">女 </td> </tr> <tr> <td align="right">密码找回问题:</td> <td><input type="text" name="question" class="box"></td> </tr> < 4000 tr> <td align="right">密码找回答案:</td> <td><input type="text" name="answer" class="box"></td> </tr> <tr> <td align="right">邮 箱:</td> <td><input type="text" name="email" class="box"></td> </tr> <tr> <td colspan="2" align="center" height="40"> <input type="submit" value="注 册"> <input type="reset" value="重 置"> </td> </tr> </table> </form> </div> </div> </body> </html>
Servlet负责处理业务逻辑,将提交的数据进行处理同。例如,进行数据验证,身份验证等等。具体业务处理代码如下:
package com.lyq;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RegServlet extends HttpServlet {
private static final long serialVersionUID = 1789481329876401944L;
// 数据库连接Connection
private Connection conn;
// 初始化方法
public void init() throws ServletException {
super.init();
try {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 数据库连接url
String url = "jdbc:mysql://localhost:3306/registersystem";
// 获取数据库连接
conn = DriverManager.getConnection(url, "root", "123");
System.out.println("数据库连接成功!");
} catch (Exception e) {
e.printStackTrace();
}
}
// doPost()方法处理注册请求
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置request与response的编码
response.setContentType("text/html");
request.setCharacterEncoding("GBK");
response.setCharacterEncoding("GBK");
// 获取表单中属性值
String username = request.getParameter("username");
String password = request.getParameter("password");
String sex = request.getParameter("sex");
String question = request.getParameter("question");
String answer = request.getParameter("answer");
String email = request.getParameter("email");
// 判断数据库中否连接成功
if (conn != null) {
try {
// 插入注册信息的SQL语句(使用?占位符)
String sql = "insert into tb_user(username,sex,question,answer,email,password) "
+ "values(?,?,?,?,?,?)";
// 创建PreparedStatement对象
PreparedStatement ps = conn.prepareStatement(sql);
// 对SQL语句中的参数动态赋值
ps.setString(1, username);
ps.setString(2, password);
ps.setString(3, sex);
ps.setString(4, question);
ps.setString(5, answer);
ps.setString(6, email);
// 执行更新操作
ps.executeUpdate();
// 获取PrintWriter对象
PrintWriter out = response.getWriter();
// 输出注册结果信息
out.print("<h1 aling='center'>");
out.print(username + "注册成功!");
out.print("</h1>");
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
} else {
// 发送数据库连接错误提示信息
response.sendError(500, "数据库连接错误!");
}
}
}
虽然这个业务比较简单,重要的是思想。将表现层与业务处理层进行分离处理,MVC思想的具体表现。将在以后的项目中更加重要。
相关文章推荐
- JSP+JavaBean+Servlet技术实现某网站用户注册和登录功能
- JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)
- jsp+javabean+servlet+Mysql实现MVC模式下的注册登录留言功能
- JSP+Servlet实现注册登录功能
- Servlet +JSP+Javabean 实现用户登录注册
- jsp+servlet实现最基本的注册登陆功能
- jsp+javaBean+servlet+mysql完整的实现一个登录功能
- 利用JSP+JS+CSS+Servlet实现用户登录,保存用户名密码功能
- jsp+servlet实现最基本的注册登陆功能
- 基于MVC和三层架构,用jsp-Servlet-JavaBean实现登录和注册
- Jsp&Servlet 用户登录功能实现
- 在jsp中用bean和servlet联合实现用户注册、登录
- Android登录注册功能实现:Json+Servlet+sqlserver
- 在jsp中用bean和servlet联合实现用户注册、登录
- jsp+servlet实现最基本的注册登陆功能
- jsp+servlet+ajax+oracle数据库-实现简单的登陆、注册、找回密码功能(与Oralce数据库连接)
- servlet+jsp+jdbc实现简单的登录功能(所用平台:win7+Eclipse+tomcat+mysql)
- JSP+Servlet培训班作业管理系统[9] -登录功能的实现
- JSP 实现登录注册功能
- jsp+servlet实现最基本的注册登陆功能