java+mysql实现登录和注册功能

网友投稿 326 2022-08-02


初学java  EE,老师留下一小作业,用JAVA实现与服务器端交互,实现登录和注册功能,初学一种专业课很多老师都会留下一种让学生实现登录和注册的作业。

下面是记录的实现步骤:

1、首先是账号密码输入框和按钮:

登录:

注册:

type="submit" name="submit" value="提交注册">

两个form表的属性里都有action,可理解为是用来标记登录和注册的,在web.xml中和对应的servlet绑定

2、数据库建表,插入数据

在服务器中打开mysql,建表

create table login(

uname char(15) primary key,

password char(15) not null,

email char(20)

)

3、sql语句内嵌到java语句中,查找(登录)和插入(注册)用户信息,以下类名即为文件的名字

登录:

import java.sql.*;

public class userlogin {

String drv = "com.mysql.jdbc.Driver";

http:// String url = "jdbc:mysql://localhost:3306/login";

String usr = "root";

String pwd = "***";//自己的密码

public boolean isuserlogin(String id,String password){

boolean isValid = false;

String sql="select * from ulogin where uname='"+id+"' and password='"+password+"'";

try{

Class.forName(drv).newInstance();

Connection conn = DriverManager.getConnection(url,usr,pwd);

Statement stm = conn.createStatement();

ResultSet rs = stm.executeQuery(sql);

if(rs.next()){

isValid = true;

}

rs.close();

stm.close();

conn.close();

}catch (Exception e) {

e.printStackTrace();

System.out.println(e);

}

if(isValid){//判断用户名以及密码是否与设定相符

return true;

}

else return false;

}

}

注册:

import java.sql.*;

public class register {

String drv = "com.mysql.jdbc.Driver";

String url = "jdbc:mysql://localhost:3306/login";

String usr = "root";

String pwd = "***";

public boolean userregister(String id,String password,String email){

boolean b = false;

String sql = "select * from ulogin where uname='"+id+"'";

try{

Class.forName(drv).newInstance();

Connection conn = DriverManager.getConnection(url,usr,pwd);

Statement stm = conn.createStatement();

ResultSet rs = stm.executeQuery(sql);

if(!rs.next()){

sql = "insert into ulogin(uname,password,email) values('"+id+"','"+password+"','"+email+"')";

stm.execute(sql);

b = true;

}

rs.close();

stm.close();

conn.close();

}catch (Exception e) {

e.printStackTrace();

System.out.println(e);

}

if(b)

{

return true;

}

else return false;

}

}

4、构建servlet来处理事务,如果连接数据库查找成功,则登录成功,否则失败;如果注册成功返回登录界面

登录:由用户输入信息,所以使用doGet方法

@WebServlet(name = "ServletLogin")

public class ServletLogin extends HttpServlet {

public void init() throws ServletException {

}

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

boolean b=false;

userlogin MyPOJO=new userlogin();//新建MyPOJO类的对象myPOJO

//根据标示名获取JSP文件中表单所包含的参数

String id=request.getParameter("id");

String password=request.getParameter("password");

String result = "";

b=MyPOJO.isuserlogin(id,password);//使用模型对账号和密码进行验证,返回一个boolean类型的对象

PrintWriter out = response.getWriter();

if(b){ //如果验证结果为真,跳转至登录成功页面

out.println("success");

result = "success";

//Cookie

Cookie username= new Cookie("username",id);

//设置路径,这个路径即该工程下都可以访问该cookie 如果不设置路径,那么只有设置该cookie路径及其子路径可以访问

username.setPath("/");

username.setMaxAge(60*60);

response.addCookie(username);

response.sendRedirect("index.jsp");

}

else { //如果验证结果为假,跳转至登录失败页面

out.println("fail");

result = "fail";

response.sendRedirect("JSP/LoginFailed.jsp" );

}

out.write(result);

out.flush();

out.close();

System.out.println(result);

}

注册:使用doPost方法

@WebServlet(name = "ServletRegister")

public class ServletRegister extends HttpServlet {

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

boolean b = false;

register myPOJO=new register();

String id=request.getParameter("username");

String password=request.getParameter("password1");

String email = request.getParameter("email");

b=myPOJO.userregister(id,password,emahttp://il);

if(b){

response.sendRedirect("login.jsp");

}

else{

response.sendRedirect("register.jsp");

}

}

}

5、在web.xml中将servlet和url-pattern进行匹配

ServletLogin

service.ServletLogin

ServletLogin

/login.do

ServletRegister

service.ServletRegister

ServletRegister

/register.do

6、测试运行

将服务器端的mysql数据库中加入一条用户信息:

insert into ulogin values('test1','123',null);

网页上输入该信息:

点击登录:登陆成功

注册:在注册框中输入信息:

提交后在数据库中查找该用户信息:

注意:项目中应该导入jsp-api.jar和servlet-api.jar两个jar包


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java详细分析讲解自动装箱自动拆箱与Integer缓存的使用(integer自动装箱原理)
下一篇:解决javac不是内部或外部命令,也不是可运行程序的报错问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~