我们首先分析,用户登录系统首先我们要求用户要有,昵称和密码,最好在用户注册时让用户填写邮箱,方便我们做网站时向用户发送一些信息。
当有用户登陆时,前端页面,将用户填写的用户名、密码,送入Servlet。Servlet通过调用封装好的Mysql操作接口,查询数据库中是否有信息,再进行相关操作。
当新用户注册时,将用户填写的昵称、密码、邮箱,存入Mysql数据库中。
JSP、Servlet、Javabean
我们存入数据库中的用户信息有三类:用户昵称、密码、邮箱。
首先要在Mysq数据库中建立有三种表头的表,把昵称作为索引主键。
了解Mysql相关操作命令介绍,请点击:
http://blog.csdn.net/mmayanshuo/article/details/79337950
Java对Mysql编程,需要将相关Jar包导入项目:
即是mysql-connector-java,网上有很多下载地址。
下载完成后,导入项目的方式,请参阅:
如何向Java项目中导入jar包(Eclipse)
JavaEE项目导入方式。
其中:
1、定义用户对象User;
2、封装对Mysql连接的相关操作;
3、定义对Mysql相关操作的接口;
4、实现(3)的接口,实现对Mysql相关操作;
5、定义Mysql外部操作接口;
6、实现(5)的接口,向外发布对Mysql的相关操作;
/*
* 定义用户对象
*/
//存储用户信息的实体类
public class User {
private String user_name;
private String user_mailbox;
private String user_password;
//返回用户名
public String get_user_name(){
return this.user_name;
}
//设置用户名
public void set_user_name(String user_name){
this.user_name=user_name;
}
//返回用户邮箱
public String get_user_mailbox(){
return this.user_mailbox;
}
//设置用户邮箱
public void set_user_mailbox(String user_mailbox){
this.user_mailbox=user_mailbox;
}
//返回用户密码
public String get_user_password(){
return this.user_password;
}
//设置用户密码
public void set_user_password(String user_password){
this.user_password=user_password;
}
}
/*
* 对Mysql数据库相关操作接口
*/
import java.util.*;
public interface Userutils_inter {
//插入用户信息
public void insert_user_information(User u);
//更新用户信息
public void update_user_information(User u);
//删除用户信息
public void delete_user_information(User u);
//返回用户信息表
public List getusers();
//查找用户
public User getUser_Byusername(String user_name);
}
import java.util.List;
import pers.xiaoma.mysql.User;
public interface Mysql_service_interface {
//插入用户信息
public void insert_user_information(User u);
//更新用户信息
public void update_user_information(User u);
//删除用户信息
public void delete_user_information(User u);
//返回用户信息表
public List getusers();
//查找用户
public User getUser_Byusername(String user_name);
}
import java.util.List;
import pers.xiaoma.mysql.User;
import pers.xiaoma.mysql.Userutils_inter;
import pers.xiaoma.mysql.Userutils;
public class Mysql_service implements Mysql_service_interface{
//插入用户信息
public void insert_user_information(User u){
Userutils_inter user = new Userutils();
user.insert_user_information(u);
}
//更新用户信息
public void update_user_information(User u){
Userutils_inter user =new Userutils();
user.update_user_information(u);
}
//删除用户信息
public void delete_user_information(User u){
Userutils_inter user =new Userutils();
user.delete_user_information(u);
}
//返回全体用户信息
public List getusers(){
Userutils_inter user =new Userutils();
List users=user.getusers();
return users;
}
//根据用户昵称查找用户
public User getUser_Byusername(String user_name){
Userutils_inter user =new Userutils();
User u =user.getUser_Byusername(user_name);
return u;
}
}
登陆时,只需填写昵称和密码,点击登录。当填写错误,或者没有填写,点击登录时重新跳转登录界面,并给出相应的提示。
注意箭头所指的Service字段,在servlet中通过捕捉service属性,来作出相应动作。
String service = request.getParameter("service");
//处理登录需求
else if("login".equals(service))
{
Mysql_service_interface mysql_users = new Mysql_service();
//获取用户填写的用户昵称
String user_name=request.getParameter("user_name");
//System.out.println(user_name);
if(user_name=="")
{
//System.out.println("空");
String information="请首先登录";
request.setAttribute("information", information);
request.getRequestDispatcher("test/login.jsp").forward(request, response);
}
User user=mysql_users.getUser_Byusername(user_name);
String user_password=user.get_user_password();
System.out.println(user_password);
if(user_password==null)
{
String information="密码错误,请重新登录。新用户请先注册在使用";
//向登录界面传值,并跳转到登录页面
request.setAttribute("information", information);
request.getRequestDispatcher("test/login.jsp").forward(request, response);
}
//如果用户填写的登录密码正确,允许进入网站
else if(user_password.equals(request.getParameter("user_password")))
{
//从Mongodb数据库中取出所有小说的名称,传送到connectnovel.jsp页面
//新建Mongodb服务对象
Mongodb_service_interface mongo= new Mongodb_service();
List<String> list =mongo.get_all_novelname();
request.setAttribute("all_novelname", list);
request.getRequestDispatcher("test/connectnovel.jsp").forward(request, response);
}
}
//处理登录页面点击的注册需求
else if("register".equals(service))
{
request.getRequestDispatcher("test/register.jsp").forward(request, response);
}
//处理注册需求
else if("userRegister".equals(service))
{
//获取用户填写的信息
String user_name=request.getParameter("user_name");
String user_mailbox=request.getParameter("user_mailbox");
String user_password=request.getParameter("user_password");
//新建用户对象,并设置用户对象
User user =new User();
user.set_user_name(user_name);
user.set_user_mailbox(user_mailbox);
user.set_user_password(user_password);
//将新注册的用户插入数据库
Mysql_service_interface mysql =new Mysql_service();
mysql.insert_user_information(user);
//用户注册成功,跳转到登录页面
request.getRequestDispatcher("test/login.jsp").forward(request, response);
}
由于篇幅原因具体代码没有全部贴上,但相应的逻辑,和设计,我已经说的比较明白。其中还有很多不健全的地方,比如说界面就比较丑,没办法,以前没有接触过前端的东西,这次也是赶鸭子上架,欢迎批评指正!