javaweb项目(1)连接数据库,登录注册

servlet

login Servlet

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		String name=request.getParameter("name");
		String pwd =request.getParameter("pwd");
		System.out.println(name+pwd);
		String cook =request.getParameter("cookie");
		String  code1=request.getParameter("code");
		HttpSession session=request.getSession(true);
		String code2=(String)session.getAttribute("rand");
		UserDao ud=new UserDao();
		if(code2.equalsIgnoreCase(code1)) {
		try {
				if(ud.isLogin(name, pwd)==1) {
					if(cook!=null) {
						Cookie CookieName=new Cookie("name",name);
						Cookie CookiePwd=new Cookie("pwd",pwd);
						CookieName.setMaxAge(60*60);
						CookiePwd.setMaxAge(60*60);
						response.addCookie(CookieName);
						response.addCookie(CookiePwd);
						System.out.println(CookieName);
						System.out.println(CookiePwd);
					}
					session.setAttribute("name", name);
					System.out.println(session.getAttribute(name));
					response.sendRedirect("loginSuccess.jsp");
				}else {
					request.setAttribute("loginInfo","用户名或密码错误!");
					request.getRequestDispatcher("login.jsp").forward(request, response);
				}
		} catch (Exception e) {
			e.printStackTrace();
		}
		}else {
			request.setAttribute("loginInfo", "验证码输入错误!");
			request.getRequestDispatcher("login.jsp").forward(request, response);
		}
	}

register Servlet

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		String name=request.getParameter("name");
		String pwd =request.getParameter("pwd");
		String repwd =request.getParameter("repwd");
		System.out.println(name+pwd+repwd);
		String  code1=request.getParameter("code");
		HttpSession session=request.getSession(true);
		String code2=(String)session.getAttribute("rand");
		UserVO user=new UserVO();
		user.setUserName(name);
		user.setPwd(pwd);
		UserDao ud=new UserDao();
		if(code2.equalsIgnoreCase(code1)) {
		try {
			if(ud.isExit(name)==0){
				if(pwd.length()<6||pwd.length()>10) {
					request.setAttribute("loginInfo","密码在6位到10位之间");
					request.getRequestDispatcher("register.jsp").forward(request, response);
				}
				else if(pwd==repwd){
					request.setAttribute("loginInfo","两次输入的密码不同");
					request.getRequestDispatcher("register.jsp").forward(request, response);
				}
				else {
				ud.addUser(user);
				response.sendRedirect("login.jsp");
				}
			}else {
				request.setAttribute("loginInfo","该用户已存在,请重新设置昵称");
				request.getRequestDispatcher("register.jsp").forward(request, response);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}else {
		request.setAttribute("loginInfo", "验证码输入错误!");
		request.getRequestDispatcher("register.jsp").forward(request, response);
	}
	}

DAO

public int isExit(String uname)throws Exception{//判断用户名是否存在
		int b=0;//用户名不存在
		Connection con=DBUtil.connectDB();
		String sql="select * from user_info1 where user_name=?";
		PreparedStatement ps=con.prepareStatement(sql);
		ps.setString(1, uname);
		ResultSet rs=ps.executeQuery();
		if(rs.next()) {//用户名存在
			b=1;
		}
		close(rs,ps,con);
		return b;
	}

	public int isLogin(String uname,String pwd)throws Exception{//登录
		int b=0;//用户不存在
		Connection con=DBUtil.connectDB();
		String sql="select * from user_info1 where user_name=? and pwd=?";
		PreparedStatement ps=con.prepareStatement(sql);
		ps.setString(1, uname);//指定user_name为uname
		ps.setString(2, pwd);
		ResultSet rs=ps.executeQuery();//操作对象调用查询方法,返回一个ResultSet类的值
		if(rs.next()) {
			b=1;
		}
		System.out.println(b);
		close(rs,ps,con);
		return b;
	}
	public void addUser(UserVO user)throws Exception{//UserVO包含用户个人数据属性
		Connection conn=DBUtil.connectDB();
		String sql="INSERT INTO user_info1(user_name,pwd,age,sex,create_dt)"+"VALUES(?,?,?,?,?)";
		PreparedStatement pstmt=conn.prepareStatement(sql);
		pstmt.setString(1,user.getUserName());
		pstmt.setString(2,user.getPwd());
		pstmt.setInt(3, user.getAge());
		pstmt.setInt(4, user.getSex());
		pstmt.setDate(5,new Date(new java.util.Date().getTime()));
		pstmt.execute();
	}

JSP

login

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
<style type="text/css">
 body {
       border: 1px solid #ADD8E6;
       width: 380px;
       text-align: center;
       background-image: url(bai.jpg);
       background-size:100% 100%;
       fileter:alpha(opacity=80);
       -moz-opacity: 0.8;
       opacity: 0.8;
       font-family: Arial, Helvetica,sans-serif;
       margin-top: 200px;
       margin-left: auto;
       margin-right: auto;
   }

#header {
         padding:10px;
         margin: 0px;
          background-color:#568271;
         height: 50px;
         text-align: center;
    }

#header p{
       font-family: cambria;
       padding-top:10px;
       font-size: 40px;
       margin: 10px;
       color: #9370db;
  }

#contain {
          height: 200px;
          border: 2px solid #ADD8E6;
          text-align: center;
          line-height: 1.5em;
          background: -webkit-linear-gradient(top,lavender,lightsteelblue);
          padding:10px;
          margin: 0px;
    }

#footer {
       padding:10px;
        background-color:#568271;
       text-align: center;
   }
* {
          margin: 0px;
          padding: 0px;
    }

</style>
</head>
<script type="text/javascript">
  function refreshCode(){
	  document.getElementById("code").src="validateCodeServlet?t="+Math.random();
  }
</script>
<body>
 <form action="loginServlet" method="post">
 <div id="header"></div>
 <div id="contain">
 <div><%=request.getAttribute("loginInfo")==null?"":request.getAttribute("loginInfo")%></div>
   <table>
     <tr>
         <td>姓名:</td>
         <td><input type="text" name="name" value="${cookie.name.value}"/></td>
     </tr>
     <tr>
         <td>密码:</td>
         <td><input type="password" name="pwd" value="${cookie.pwd.value}"/></td>
     </tr>
     <tr>
         <td>验证码:</td>
         <td><input type="text" name="code"></td>
     </tr>
     <tr>
         <td class="ared"><img id="code" src="before_validateCode"/></td>
         <td><a href="javascript:refreshCode();"><font color="green">看不清楚,换一张</font></a></td>
     </tr>
     <tr>
        <td>记住密码</td>
        <td><input type="checkbox" name="cookie" value="cookie"></td>
     </tr>
     <tr>
         <td align="right"><input type="reset" value="取消"></td>
         <td><input type="submit" value="确定"></td>
         </td>
        </tr>
     <tr>
        <td>没有账号?<a href="register.jsp">立即注册</a></td>
        </tr>
   </table>
 </form>
</div>
<div id="footer">Copyright@Rotuce</div>
</body>
</html>

register

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style type="text/css">
 body {
       border: 1px solid #ADD8E6;
       width: 380px;
       text-align: center;
       background-image: url(bai.jpg);
       background-size:100% 100%;
       fileter:alpha(opacity=80);
       -moz-opacity: 0.8;
       opacity: 0.8;
       font-family: Arial, Helvetica,sans-serif;
       margin-top: 200px;
       margin-left: auto;
       margin-right: auto;
   }

#header {
         padding:10px;
         margin: 0px;
          background-color:#568271;
         height: 50px;
         text-align: center;
    }

#header p{
       font-family: cambria;
       padding-top:10px;
       font-size: 40px;
       margin: 10px;
       color: #9370db;
  }

#contain {
          height: 200px;
          border: 2px solid #ADD8E6;
          text-align: center;
          line-height: 1.5em;
          background: -webkit-linear-gradient(top,lavender,lightsteelblue);
          padding:10px;
          margin: 0px;
    }

#footer {
       padding:10px;
        background-color:#568271;
       text-align: center;
   }
* {
          margin: 0px;
          padding: 0px;
    }

</style>
<title>注册</title>
</head>
<script type="text/javascript">
  function refreshCode(){
	  document.getElementById("code").src="validateCodeServlet?t="+Math.random();
  }
</script>
<body style="background-image:url('images/bb.jpg');">
<div id="header"></div>
 <div id="contain">
 <form action="registerServlet" method="post" name="registForm">
 <div><%=request.getAttribute("loginInfo")==null?"":request.getAttribute("loginInfo")%></div>
   <table>
     <tr>
     <td>昵称:</td>
     <td>
   <input class="textSize" type="text" id="uname" name="name" placeholder="名字不能为空" />
        <span id="isExit"></span>
        </td>
      </tr>
        <tr>
        <td>密码:</td>
        <td><input class="textSize" type="password" name="pwd" placeholder="密码在6位到10位之间"/></td>
      </tr>
      <tr>
        <td>确认密码:</td>
        <td><input class="textSize" type="password" name="repwd" placeholder="再输入一遍密码进行确认"/></td>
      </tr>
      <tr>
         <td>验证码:</td>
         <td><input type="text" name="code"></td>
     </tr>
     <tr>
         <td class="ared"><img id="code" src="before_validateCode"/></td>
         <td><a href="javascript:refreshCode();"><font color="green">看不清楚,换一张</font></a></td>
     </tr>
      <tr>
    <td align="right"><input type="reset" value="重置"></td>
    <td><input type="submit" value="注册" onclick="return go()"></td>
    </tr>
    <tr>
        <td>已有账号?<a href="login.jsp">马上登录</a></td>
        </tr>
   </table>
 </form>
</div>
<div id="footer">Copyright@Rotuce</div>
</body>
</html>

下一篇:javaweb验证码的自动生成

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaWeb连接MySQL数据库可以使用JDBC技术,实现登录注册效果需要以下步骤: 1.下载并安装MySQL数据库,创建相应的数据库和表格。 2.在JavaWeb项目中引入MySQL的JDBC驱动包。 3.编写Java代码,使用JDBC连接MySQL数据库,实现用户的注册和登录功能。具体实现可以参考以下步骤: (1)注册功能:用户在注册页面输入用户名和密码,点击注册按钮后,将用户输入的信息插入到MySQL数据库中的用户表格中。 (2)登录功能:用户在登录页面输入用户名和密码,点击登录按钮后,查询MySQL数据库中的用户表格,判断用户输入的用户名和密码是否正确,如果正确则登录成功,否则登录失败。 4.在JavaWeb项目中编写相应的页面,实现用户的注册和登录界面。 5.将JavaWeb项目部署到Tomcat服务器上,启动服务器,通过浏览器访问注册和登录页面,测试登录注册功能是否正常。 以上就是JavaWeb连接MySQL数据库实现登录注册效果的基本步骤。 ### 回答2: JavaWeb是一种使用Java语言开发Web应用程序的技术,而MySQL是一种关系型数据库,可以为Web应用程序提供数据存储和管理的功能。因此,连接MySQL数据库可以实现JavaWeb应用程序的登录和注册功能。 要实现这个过程,需要遵循以下步骤: 1.下载MySQL JDBC驱动程序,这是连接MySQL数据库所必需的库文件,可以从MySQL官网或其他网站获取。 2.创建一个Java类,用于执行登录和注册操作。这个类需要在构造函数中使用JDBC驱动程序来建立与MySQL数据库的连接。在这个类中,需要编写登录和注册逻辑来获取用户输入的数据,并将其插入到MySQL数据库中。 3.在JavaWeb应用程序中创建登录和注册页面,在登录页面中虚拟用户输入用户名和密码,然后将这些数据发送到Java类中进行验证。如果验证成功,Java类将返回登录成功的消息,并将用户重定向到主页。如果验证失败,则会显示错误消息。 4.在注册页面中,用户可以输入用户名、密码等数据,并单击“注册”按钮将这些数据发送到Java类中进行处理。如果注册成功,Java类将返回注册成功的消息,并将用户重定向到登录页面。如果注册失败,则将显示错误消息,要求用户再次输入。 总之,连接MySQL数据库可以实现JavaWeb应用程序的登录和注册功能。注意,为了保证数据的安全性,需要使用安全编码技术来加密和解密用户数据。此外,必须确保MySQL数据库的安全性和性能,以避免任何安全漏洞和性能问题。 ### 回答3: JavaWeb是一种基于Java语言开发的Web应用程序平台,其中连接MySQL数据库,实现登录注册效果是非常常见的需求。下面将对JavaWeb连接MySQL数据库实现登录注册效果的具体步骤进行详细介绍。 第一步,安装MySQL数据库和JDBC驱动 在JavaWeb连接MySQL数据库之前,我们需要先安装MySQL数据库和JDBC驱动。安装MySQL数据库的方法因操作系统不同而有所不同,这里不再赘述。安装完MySQL数据库后,我们还需要下载JDBC驱动,并将其添加到Java Web 项目的类路径中。 第二步,编写Java代码连接MySQL数据库 为了连接MySQL数据库并实现登录、注册等功能,需要添加MySQL的JDBC驱动,并且需要在Java程序中正确引入驱动包。在Java代码中,可以通过以下步骤配置连接信息: 1. 引入JDBC包 需要通过Java代码import语句导入MySQL JDBC驱动的类库。对于Java SE,我们需要下载和导入mysql-connector-java.jar包,而对于Java EE环境,该为了避免JDBC包冲突需要使用JNDI连接池来连接数据库。 2. 加载驱动 在使用JDBC之前,需要使用Class.forName()方法来注册驱动程序。一般来说,可以使用Class.forName("com.mysql.jdbc.Driver")或Class.forName("com.mysql.cj.jdbc.Driver")来加载MySQL JDBC驱动程序。 3. 连接数据库 连接MySQL数据库需要使用DriverManager类创建数据库连接对象。连接的URL、用户名、密码等配置信息需要根据实际情况设置,具体代码如下: String driver = "com.mysql.cj.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC"; String user = "root"; String password = "123456"; Class.forName(driver); Connection conn = DriverManager.getConnection(url, user, password); 4. 执行SQL语句 连接成功后,可以使用Connection对象的createStatement()或prepareStatement()方法执行SQL语句,并将查询结果存储在ResultSet对象中。 第三步,实现登录和注册功能 在JavaWeb项目中实现登录和注册功能,我们需要进行数据库操作。用户进行登录的时候,需要从前端接收到用户名与密码,当检验完成后通过Session保存用户登录状态,在用户退出登录时清空Session即可。而新用户注册的时候,需要将前端传来的信息插入到对应的表中,插入成功后会返回注册成功信息,否则会返回注册失败信息。 以上就是关于JavaWeb连接MySQL数据库实现登录注册效果的详细介绍。需要注意的是,开发者可根据具体需求进行调整,并且在开发过程中遵守安全规范和最佳开发实践。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值