Java语言实现简单的登陆注册
1.登录注册
1.1数据库设计
create table USER_INFO(
id number not null,
name varchar2(20) not null,
pass varchar2(20)
)
insert into USER_INFO values(1,'zhang','121314');
1.2 新建项目
1.2.1 添加项目说需要的包 即连接数据库的ojdbc的jar包
1.2.2编写连接数据库的工具类
package org.user.util; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class DBUtil {
private static String driver="oracle.jdbc.driver.OracleDriver";
private static String url="jdbc:oracle:thin:@localhost:1521:orcl";
private static String user="yongl";
private static String passwd="121314";
public static Connection getConnection() {
try {
Class.forName(driver);
return DriverManager.getConnection(url, user, passwd);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static void closeConn(Connection conn,Statement stm , ResultSet rs ) { if(stm!=null){
try {
stm.close();
} catch (SQLException e) {
e.printStackTrace();
}
} if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(rs!=null){
try{
rs.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
public static void main(String[] args) { System.out.println(getConnection());
}
}
运行效果:

连接成功。
1.2.3 编写实体类
package org.user.entity;
public class User {
private int uid;
private String userName;
private String userPass;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPass() {
return userPass;
}
public void setUserPass(String userPass) {
this.userPass = userPass;
}
@Override
public String toString() {
return "User [uid=" + uid + ", userName=" + userName + ", userPass=" + userPass + "]";
}
}
1.2.4 编写dao方法
package org.user.dao; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import org.user.entity.User;
import org.user.util.DBUtil; public class UserDao {
//根据用户名查找用户
public User findUserByName(String userName){
//编写sql语句
String sql="select * from USER_INFO where name=?";
//获得连接
Connection conn= DBUtil.getConnection();
//有返回的结果
ResultSet rs= null;
//实例化一个User对象
User user = new User();
try {
//用来发送sql语句的
PreparedStatement ps = conn.prepareStatement(sql);
//设置要传入的参数,这里是userN
ps.setString(1, userName);
//执行sql语句
rs=ps.executeQuery();
//如果能找到结果
if(rs.next()){
//则把找到的结果一一set进User对象中
user.setUid(rs.getInt(1));
user.setUserName(rs.getString(2));
user.setUserPass(rs.getString(3));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {//关闭连接
DBUtil.closeConn(conn, null, rs);
}
//最后要把这个user返回出去
return user; } //添加用户
//在这里把整个用户对象传进来
public int addUser(User user){
//编写sql语句
String sql = "insert into USER_INFO values(?,?,?)";
Connection conn= DBUtil.getConnection();
//有返回的结果
ResultSet rs= null;
int i=0;
try {
PreparedStatement ps = conn.prepareStatement(sql);
//这些参数是要保存到数据的
ps.setInt(1, user.getUid());
ps.setString(2, user.getUserName());
ps.setString(3, user.getUserPass());
//执行sql语句
i=ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
DBUtil.closeConn(conn, null, rs);
}
return i;
}
public static void main(String[] args) {
UserDao dao = new UserDao();
User i = dao.findUserByName("zhang");
System.out.println(i.getUserPass()); }
}
运行结果:

1.2.5 编写servlet
a)添加用户的servlet
package org.user.servlet; import java.io.IOException; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.user.dao.UserDao;
import org.user.entity.User; @WebServlet("/addServlet")
public class AddUserServlet extends HttpServlet {
private static final long serialVersionUID = 1L; protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置编码
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//获取从页面中提交过来的数据
int id = Integer.parseInt(request.getParameter("id")) ;//数据类型转换
String userName = request.getParameter("name");
String userPass = request.getParameter("pass"); User user = new User();
user.setUid(id);
user.setUserName(userName);
user.setUserPass(userPass); //调用dao方法
UserDao dao = new UserDao();
int i=dao.addUser(user);
if(i==1){
request.getRequestDispatcher("index.jsp").forward(request, response);
}
} }
b)查询用户的servlet
package org.user.servlet; import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.user.dao.UserDao;
import org.user.entity.User;
import org.user.service.LoginService; @WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L; protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置编码
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//获取从页面中提交过来的数据
String userName = request.getParameter("name");
String userPass = request.getParameter("pass"); LoginService service = new LoginService();
//调用service方法 把用户名 密码传入给service
boolean flag = service.checkUser(userName, userPass);
String msg = flag?"success":"error"; request.setAttribute("msg", msg);
if(msg=="success"){
request.getRequestDispatcher("index.jsp").forward(request, response);
}
else{
System.out.println("账户名或密码错误");
}
} }
service方法
package org.user.service; import org.user.dao.UserDao;
import org.user.entity.User; public class LoginService {
public boolean checkUser(String userName, String password) {
//在这里调用dao方法
UserDao dao = new UserDao();
//把名字传入对象中查询
User user = dao.findUserByName(userName);
System.out.println(user);
//山木运算 如果找到了user 并且 自己输入的password 跟数据库查出来的user.getUserPass() 一致 则返回true 否则返回false
return user != null && password.equals(user.getUserPass()) ? true : false; /*if(user != null){
if(password.equals(user.getUserPass())){
return true;
}
}
return false;*/
} }
1.2.6登陆页面
<!DOCTYPE html>
<html> <head>
<meta charset="utf-8">
<title></title>
</head> <body >
<form method="post" action="loginServlet">
用户名:<input type="text" name="name"/><br/><br/>
密码:<input type="password" name="pass"/><br/><br/>
<input type="submit" >
</form>
</body> </html>
运行效果:

1.2.7注册页面
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="addServlet">
学号:<input type="text" name="id"/><br/><br/>
姓名:<input type="text" name="name"/><br/><br/>
密码<input type="password" name="pass"/><br/><br/>
<input type="submit" >
</form>
</body>
</html>


Java语言实现简单的登陆注册的更多相关文章
- Java语言实现简单FTP软件------>FTP软件主界面的实现(四)
首先看一下该软件的整体代码框架 1.首先介绍程序的主入口FTPMain.java,采用了一个漂亮的外观风格 package com.oyp.ftp; im ...
- Java语言实现简单FTP软件------>源码放送(十三)
Java语言实现简单FTP软件------>FTP协议分析(一) Java语言实现简单FTP软件------>FTP软件效果图预览之下载功能(二) Java语言实现简单FTP软件----- ...
- Java语言实现简单FTP软件------>上传下载管理模块的实现(十一)
1.上传本地文件或文件夹到远程FTP服务器端的功能. 当用户在本地文件列表中选择想要上传的文件后,点击上传按钮,将本机上指定的文件上传到FTP服务器当前展现的目录,下图为上传子模块流程图 选择好要上传 ...
- 用Java语言实现简单的词法分析器
编译原理中的词法分析算是很重要的一个部分,原理比较简单,不过网上大部分都是用C语言或者C++来编写,笔者近期在学习Java,故用Java语言实现了简单的词法分析器. 要分析的代码段如下: 输出结果如下 ...
- Java语言的简单基础
1.Java 是一种高级程序设计语言. 2.Java 是大小敏感的程序语言. 3.Java 中的 public 修饰的类名一般要与文件名相同,但也有特列:内部类. 4.Java 程序能在任何操作系统中 ...
- django写一个简单的登陆注册
要写这个,前提还是需要知道三个知识: 一个是urls.py,它是写我们的路由关系的,之前我写了通过wsgiref写一个简单的服务端,也用到了路由,就是 请求过来的url和视图函数的对应关系. 二是就是 ...
- 初学html,任务2:写一个简单的登陆/注册界面
先在body中把最基础的标签写出来 现在页面运行出来是这样的 就是一个没有任何样式的基础界面: 接下来我们为这些标签加上样式 首先还是让页面所有元素的padding和margin都设置为0, 清除浏览 ...
- 设计模式(Java语言)- 简单工厂模式
简单工厂模式有称为静态工厂模式,属于设计模式中的创建型模式.简单工厂模式通过对外提供一个静态方法来统一为类创建实例.简单工厂模式的目的是实现类与类之间解耦,其次是客户端不需要知道这个对象是如何被穿创建 ...
- JAVA语言实现简单登录界面
程序设计思想: 使用Math.random()方法循环生成6个97~122之间的随机整数(对应ASCII码值‘a’~‘z’),将其转化为char型变量,连接成为一个6位字符串作为验证码输出,提示用户输 ...
随机推荐
- v-model的双向数据绑定(表单)
可以用 v-model 指令在表单 <input>.<textarea> 及 <select> 元素上创建双向数据绑定.它会根据控件类型自动选取正确的方法来更新元素 ...
- NOI.AC NOIP模拟赛R3解题报告
心路历程 预计得分:\(100+100+50=250\) 实际得分:\(10 +100 +50 = 160\) 三道原题,真好.T2做过,T1写了个错误思路,T3写了写50分状压dp. 整场考试实际在 ...
- 理解JS表达式
表达式:是由运算元和运算符(可选)构成,并产生运算结果的语法结构. 基本表达式 以下在ES5中被称为基本表达式(Primary Expression) this.null.arguments等内置的关 ...
- JavaScript This -笔记
参考文章:blog.crimx.com/2016/05/12/understanding-this/ 在es6箭头函数之前this是执行时候确定的,而非定义时候确定.函数都是被调用的,调用时找前面调用 ...
- Storm Flow
A Stream represents the core data model in Trident, and can be thought of as a "stream" of ...
- OpenCV 小图重叠至大图指定位置
Android OpenCV Java: Codes: smallImg.copyTo( bigImg.submat( y, smallImg.rows(), x, smallImg.cols() ) ...
- 【Udacity】线性回归方程 Regression
Concept in English Coding Portion 评估回归的性能指标--R平方指标 比较分类和回归 Continuous supervised learning 连续变量监督学习 R ...
- as3.2版本中中jar生成方法
lintOptions { abortOnError false } task makeJar(type: Copy) { //删除存在的 delete 'build/libs/myjar.jar' ...
- c++ 判断是64还是32位系统
1.IsWow64Process 确定指定进程是否运行在64位操作系统的32环境(Wow64)下. 语法 BOOL WINAPI IsWow64Process( __in HANDLE hProces ...
- Math类中常用方法
public static int abs(int a) , public static long abs(long a), public static float abs(float a), pu ...