Jsp+Servlet实现简单登录注册查询
本文实例为大家分享了jsp+servlet实现简单登录注册查询的具体代码,供大家参考,具体内容如下
1、注册功能:
制作一个注册页面
用户输入:
用户名
密码
年龄
注册成功:——>跳转至登录页面进行登录
注册失败:——>文字或其他形式的提示皆可
2、简易查询:
制作一个查询页面
输入用户名
显示该用户的用户名、密码、年龄
演示
1.启动进入登陆页面

2.点击注册,进入注册页面,成功跳转到登录页面

失败则提示

回到登录页面,登录成功进入查询页面

登录失败显示提示信息

输入用户名->显示该用户的用户名、密码、年龄

代码

dao
public class userdao {
private connection conn = null;
private preparedstatement ps=null;
private int result=0;
private resultset rs=null;
//用户注册
public int register(user user){
string sql="insert into users(name,password,age) value (?,?,?)";
try {
//获取数据库连接对象
conn= jdbcutil.getconnection();
//获取数据库操作对象
ps=conn.preparestatement(sql);
ps.setstring(1,user.getname());
ps.setstring(2,user.getpassword());
ps.setint(3,user.getage());
//执行sql
result=ps.executeupdate();
} catch (exception e) {
e.printstacktrace();
}finally {
jdbcutil.close(null,ps,conn);
}
return result;
}
//登录验证用户信息
public int login(string username,string password){
string sql ="select count(*) from users where name=? and password=?";
try {
conn=jdbcutil.getconnection();
ps=conn.preparestatement(sql);
ps.setstring(1,username);
ps.setstring(2,password);
rs=ps.executequery();
while (rs.next()){
result=rs.getint("count(*)");
}
} catch (exception e) {
e.printstacktrace();
} finally {
jdbcutil.close(rs,ps,conn);
}
return result;
}
//根据用户名 显示用户名、密码、年龄
public user findbyname(string username){
string sql="select name,password,age from users where name=?";
user user = null;
try {
conn=jdbcutil.getconnection();
ps=conn.preparestatement(sql);
ps.setstring(1,username);
rs=ps.executequery();
while (rs.next()){
string name = rs.getstring("name");
string password = rs.getstring("password");
int age = rs.getint("age");
user = new user(name,password,age);
}
} catch (exception e) {
e.printstacktrace();
}finally {
jdbcutil.close(null,ps,conn);
}
return user;
}
} entity 实体类
public class user {
private int id;
private string name;
private string password;
private int age;
//set...
//get...
//constructor...
} service
public class userserviceimpl implements userservice {
userdao userdao = new userdao();
// 注册
@override
public int register(user user) {
return userdao.register(user);
}
// 登陆
@override
public int login(string username, string password) {
return userdao.login(username,password);
}
// 根据用户名查找信息
@override
public user findbyname(string username) {
return userdao.findbyname(username);
}
} servlet
// findbynameservlet
public class findbynameservlet extends httpservlet {
protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {
string name = request.getparameter("name");
userservice userservice = new userserviceimpl();
user user = userservice.findbyname(name);
//将查询结果放入request作用域
request.setattribute("userinfo",user);
request.getrequestdispatcher("/jsp/index.jsp").forward(request,response);
}
}
// loginservlet
public class loginservlet extends httpservlet {
protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {
//1 获取
string username = request.getparameter("username");
string password = request.getparameter("password");
//2 service调用dao对数据库操作
userservice userservice = new userserviceimpl();
int result = userservice.login(username, password);
//3 成功跳转到查询页面,失败跳转到失败页面
if (result>0){
response.sendredirect("/jsp/index.jsp");
}else{
response.sendredirect("/login_error.html");
}
}
}
// registerservlet
public class registerservlet extends httpservlet {
protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {
userservice userservice = new userserviceimpl();
user user = null;
int result = 0;
//1【调用请求对象】读取【请求头】参数信息,得到用户注册信息
string username, password, age;
username = request.getparameter("username");
password = request.getparameter("password");
age = request.getparameter("age");
user = new user(username, password, integer.valueof(age));
//2 调用userservice——>userdao
// 先查询用户是否存在
user byname = userservice.findbyname(username);
if (byname!=null){
request.setattribute("info","用户已存在!");
request.getrequestdispatcher("/jsp/register.jsp").forward(request,response);
}
// 注册
result = userservice.register(user);
//3 设置编码格式,防止乱码
response.setcontenttype("text/html;charset=utf-8");
printwriter out = response.getwriter();
//注册成功:——>跳转至登录页面进行登录
//注册失败:——>注册页面提示:注册失败
if (result == 1) {
response.sendredirect("/login.html");
} else {
request.setattribute("info","注册失败!");
request.getrequestdispatcher("/jsp/register.jsp").forward(request,response);
}
}
} jdbcutil
public class jdbcutil {
private jdbcutil(){}
//静态代码块在类加载时执行,并且执行一次。
static{
try {
class.forname("com.mysql.cj.jdbc.driver");
} catch (classnotfoundexception e) {
e.printstacktrace();
}
}
//获取数据库连接对象
public static connection getconnection() throws exception{
string url="jdbc:mysql://127.0.0.1:3306/zy?&usessl=false&servertimezone=utc&rewritebatchedstatements=true";
string user="root";
string password="rootroot";
return drivermanager.getconnection(url,user,password);
}
/**
*关闭资源
* @param conn 连接对象
* @param ps 数据库操作对象
* @param rs 结果集
*/
public static void close(resultset rs, statement ps, connection conn){
if (rs != null) {
try {
rs.close();
} catch (sqlexception e) {
e.printstacktrace();
}
}
if (ps != null) {
try {
ps.close();
} catch (sqlexception e) {
e.printstacktrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (sqlexception e) {
e.printstacktrace();
}
}
}
} index.jsp
<%@ page import="entity.user" %> <%@ page contenttype="text/html;charset=utf-8" language="java" %> 查询页面输入用户名,查询信息 <% user userinfo = (user) request.getattribute("userinfo"); %> <% if (userinfo != null) { %>
<% } %>
用户名 密码 年龄 <%=userinfo.getname()%> <%=userinfo.getpassword()%> <%=userinfo.getage()%>
register.jsp
<%@ page import="com.mysql.cj.util.stringutils" %>
<%@ page contenttype="text/html;charset=utf-8" language="java" %>
title <%
string info =(string) request.getattribute("info");
%>
<%
if (!stringutils.isnullorempty(info)){
%>
<%=info%>
<%
}
%>
用户名
密码
年龄
web.xml
loginservlet servlet.loginservlet registerservlet servlet.registerservlet findbynameservlet servlet.findbynameservlet loginservlet /login registerservlet /register findbynameservlet /findbyname login.html


