100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java wed登录面 代码_Java web代码和学习笔记JSP实现完整的登录注册功能的界面 解

java wed登录面 代码_Java web代码和学习笔记JSP实现完整的登录注册功能的界面 解

时间:2018-12-09 02:18:45

相关推荐

java wed登录面 代码_Java web代码和学习笔记JSP实现完整的登录注册功能的界面 解

实现UserDao中的add方法,最终完成注册功能,

实现完整的登录注册功能:

--drop table User

create table User(

id int primary key auto_increment,

act varchar(100) ,

pwd varchar(100) ,

sex char(100) ,

brith date,

hobbys varchar(100)

);

--drop table User

--insert into User(act ,pwd ,sex ,brith,hobbys ) values ("1","1",'男','2000-7-9',"编程");

--select * from User

package com.SSHC.bean;

import java.util.Date;

//bean的类名于表的名字一致,而且首字母必须大写

public class User {

//bean类中的属性名应该和表中的列名一致

private Integer id;

private String act;

private String pwd;

private String birth;

private String sex;

private String hobbys;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getAct() {

return act;

}

public void setAct(String act) {

this.act = act;

}

public String getPwd() {

return pwd;

}

public void setPwd(String pwd) {

this.pwd = pwd;

}

public String getBirth() {

return birth;

}

public void setBirth(String birth) {

this.birth = birth;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public String getHobbys() {

return hobbys;

}

public void setHobbys(String hobbys) {

this.hobbys = hobbys;

}

}

package com.SSHC.DAO;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

import com.SSHC.Utils.DBUtils;

import com.SSHC.bean.User;

//Dao是数据访问的意思,

//在这个类中负责对user表进行增删改查的功能实现

//Dao类中的方法就是负责执行sql语句,只要有执行sql语句的代码都必须写在dao类中

public class UserDao {

public User selectByActAndPwd(String act,String pwd){

String sql = "select * from user"

+ " where act = ? and pwd = ?";

Connection conn = null;

PreparedStatement pstm = null;

ResultSet rs = null;

User u = new User();

try {

conn = DBUtils.getConn();

pstm = conn.prepareStatement(sql);

//设置占位符

pstm.setString(1, act);

pstm.setString(2, pwd);

rs = pstm.executeQuery();

if(rs.next()) {

Integer id = rs.getInt("id");

u.setId(id);

u.setAct(act);

u.setPwd(pwd);

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

//清理资源

DBUtils.close(rs, pstm, conn);

}

return u;

}

//在user表中新增一条数据

public Integer add(User u) {

// List L=new ArrayList();

//

// L.add(u);

//

// String act=null;

// String pwd=null;

// String sex=null;

// String brith=null;

// String hobbys=null;

// String[]arr={act,

// pwd,sex,brith, hobbys};

// for (int i = 0; i < L.size(); i++) {

// User p = L.get(i);

//

// System.out.println(p);

//}

String sql = "insert into User(act ,pwd "

+ ",sex ,brith,hobbys ) values (?,?,?,?,?);";

Connection conn = null;

PreparedStatement pstm = null;

ResultSet rs = null;

try {

conn = DBUtils.getConn();

pstm = conn.prepareStatement(sql);

//设置占位符

//System.out.println(u.getAct());

pstm.setObject(1,u.getAct());

pstm.setObject(2,u.getPwd() );

pstm.setObject(3,u.getSex());

pstm.setObject(4, u.getBirth());

pstm.setObject(5, u.getHobbys());

pstm.executeUpdate();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

DBUtils.close(rs, pstm, conn);

}

return 0;

}

public static void main(String[] args) {

// UserDao ud = new UserDao();

// User u = ud.selectByActAndPwd("admin", "1111");

// if(u.getId() != null && u.getId() > 0) {

// System.out.println("登录成功");

// } else {

// System.out.println("登录失败");

// }

}

}

package com.SSHC.Utils;

import java.io.IOException;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.util.Properties;

public class DBUtils {

private static String driverName;

private static String url;

private static String user;

private static String pwd;

static {

//读取properties文件

Properties prop = new Properties();

//将db.properties文件读取到内存中去

InputStream is = DBUtils.class.getClassLoader()

.getResourceAsStream("db.properties");

//加载内容

try {

prop.load(is);

//读取内容

driverName = prop.getProperty("dn");

//System.out.println(driverName);

url = prop.getProperty("url");

user = prop.getProperty("un");

pwd = prop.getProperty("up");

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

//获取数据库连接对象的方法

public static Connection getConn(){

Connection conn = null;

try {

Class.forName(driverName);

conn = DriverManager

.getConnection(url,user,pwd);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return conn;

}

public static void close(ResultSet

rs,PreparedStatement pstm

,Connection conn){

try {

if(rs != null) {

rs.close();

}

if(pstm != null) {

pstm.close();

}

if(conn != null) {

conn.close();

}

} catch(Exception e) {

e.printStackTrace();

}

}

}

dn=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/firstjsp?useUnicode=true&characterEncoding=UTF-8

un=root

up=root

【个人的发现和解决方法:

href和src等链接有关的改成hreff和srcc等才可以保存在b站等的专栏上,不然会报“请检查网络”等的提示等,复制粘贴我辛苦写的代码时,记得三连和关注我,并且改回href和src,

用选中红线后,按Ctrl+F,点Replace All用空格或“什么都没有”等替换红线后,就不会报红线】

charset=UTF-8" pageEncoding="UTF-8"%>

String path = request.getContextPath();

String basePath = request.getScheme()+"://"

+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

="keyword1,keyword2,keyword3">

*{

font-size:50px;

}

//表单验证函数

//当这个函数返回true时,就会执行action中的代码

//如果这个函数返回false,那么就不会执行action中的代码

function doCheck(){

var flag = true;//表单验证默认是通过的

//账号的长度必须在6到30位之间

var act = document.getElementsByName('act')[0].value;

//获取输入的账号的长度

var len = act.length;

if(len < 6 || len > 30) {

flag = false;

alert('账号的长度必须在6到30位之间');

}

//获取到第一次输入的密码

var pwd = document.getElementsByName('pwd')[0].value;

//获取到第一次输入的密码的长度

len = pwd.length;

if(len < 6 || len > 30) {

flag = false;

alert('密码的长度必须在6到30位之间');

}

//两次输入的密码必须一致

//获取第二次输入的密码

var pwd1 = document.getElementsByName('pwd1')[0].value;

if(pwd != pwd1) {

flag = false;

alert('两次输入的密码不一致');

}

return flag;

}

οnsubmit="return doCheck();">

${msg }

="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

//乱码处理

request.setCharacterEncoding("utf-8");

//1、获取表单中输入的数据

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

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

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

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

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

String[] hobbys = request.getParameterValues("hobbys");

//将hobbys数组转换成一个字符串

StringBuilder hbs = new StringBuilder();

if(hobbys != null) {//如果没有选兴趣爱好,hobbys就是null

String dot = "";

for(int i = 0;i < hobbys.length;i ++) {

hbs.append(dot);

hbs.append(hobbys[i]);

dot = ",";

}

System.out.println(hbs);//游泳,阅读,LOL

}

//将数据打包

User u = new User();

u.setAct(act);

u.setPwd(pwd);

// try {

/**SimpleDateFormat format =

new SimpleDateFormat("yyyy-MM-dd");

Date myDate = format.parse(birth);

System.out.println(myDate);

*/

// Date myDate = new Date(birth);

//System.out.println(birth);

u.setBirth(birth);

u.setSex(sex);

u.setHobbys(hbs.toString());

//2、后台验证(省略)

//3、注册(新增一条数据)

System.out.println(act+pwd+birth+sex+hbs.toString());

UserDao ud = new UserDao();

/* * Listlist = new ArrayList();

for(int i = 0;i < list.size();i ++) {

User p = list.get(i);

System.out.println(p);

}*/

ud.add(u);

Integer count = ud.add(u);

System.out.println(act.length());

// System.out.println(count);

// UserDao UserDao= new UserDao();

// Listlist = UserDao.selectAll();

//for(User U : list) {

//System.out.println(U);

//}

//4、结果处理(也可以

/**

诗书画唱个人分享的个人总结的

注意事项:

Integer count = ud.add(u)+1;

后count=1,用if(count>0){}或

if(

act.trim().length*pwd.trim().length

*pwd1.trim().length

*birth.trim().length

*sex.trim().length

*hobbys.trim().length>0){}

if(

act.trim().length>0&&

pwd.trim().length>0

&&pwd1.trim().length>0

&&birth.trim().length>0

&&sex.trim().length>0

&&hobbys.trim().length>0){}

):

但如果reg,DAO等中已经设置了约束,满足约束

后才可跳转到doReg,那么这里只要

u!=null或其他去除空格后长度大于0,就可以了。

因为空格有时也有长度。

*/

if(u!=null) {//a、注册成功,跳转到login.jsp

//注册成功后将账号自动的填入到登录的账号输入框中

request.setAttribute("userName", act);

request.getRequestDispatcher("login.jsp")

.forward(request, response);

}else

{//b、注册失败,跳转到reg.jsp,同时提示注册失败

String msg = "注册失败,请联系系统管理员";

request.setAttribute("msg", msg);

request.getRequestDispatcher("reg.jsp")

.forward(request, response);

}

// } catch (Exception e) {

// e.printStackTrace();

// }

%>

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

*{

font-size:50px;

}

${msg }

//中文乱码处理

request.setCharacterEncoding("utf-8");

//1、获取用户输入的账号和密码

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

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

System.out.println(act);

//2、查询数据库

UserDao userDao = new UserDao();

User u = userDao.selectByActAndPwd(act, pwd);

//3、根据查询出来的结果进行处理

if(u.getId() != null && u.getId() > 0) {

//将登录的账号存放到session

//后面当你跳转到任何的页面时,还需要验证是否是合法的访问

request.getSession().setAttribute("userName", act);

//a、根据账号和密码能够查询记录,就表示登录成功,跳转到后台管理页面

request.getRequestDispatcher("manage.jsp").forward(request, response);

} else {

String msg = "账号或者密码错误";

request.setAttribute("msg", msg);

//b、没有查询到记录,就表示登录失败,跳转回login.jsp

request.getRequestDispatcher("login.jsp").forward(request, response);

}

%>

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

Hi!欢迎登录本系统,${userName }

运行:

——————————————————————————————————

常用单词和用来区别或理解的内容等:

manage为登录成功后的界面,之后可以写用于管理等方面的代码,实现其管理功能的程序等

————————

各个人分享的解决问题等的方法:

当自己某一个内容不知道怎么容,可以百度(或其他的搜索引擎),之后找到会综合处可以类比出答案等的内容:

比如我用jsp不知道怎么写DAO中的增加的封装的方法,那么我就百度和其有关的认为可以搜索到想要内容的关键词“jsp增删改查学生表”。

/link?url=hedJjaC291P3yGwc7N55kLSc2ls_Ks2xoSDzGT_y3Rrr1m3DJA85oHqIGYLXQ54N

这里面用了类比后的百度的内容

——————————

学习笔记:

一、登录功能

知道实现一个功能的步骤

1、在mysql数据库中创建一个表user,表结构:id,act,pwd

"2、搭建项目,需要创建一些包:

com.jy.bean:com/jy/bean,对应每个表中的一条数据的,你有几个表就创建一个bean

com.jy.dao:com/jy/dao,负责对表进行增删改查的,你有一个表就创建一个dao"

"com.jy是怎么来的:根据你所在的公司的网址来确定,,你的包名就将网址

倒过来写就可以了com.jy"

"3、将数据库的配置文件db.properties放到src目录下,同时将数据库的驱动包拷贝到

工程的lib目录下。将数据库连接工具类拷贝到工程目录下"

4、创建login.jsp页面

"5、设计登录的action即doLogin.jsp页面,因为这个页面没有需要展示的东西,所以

我们将它的所有的html代码都删除。然后将doLogin.jsp的相对路径写到表单的actiion属性中。"

6、实现登录的业务,编写登录的代码

在项目中,一个方法的功能越简单越单一就越能够复用

二、登录注册功能:验证码,人脸识别,短信验证

普通的注册:输入账号密码(输入两次),生日,学历,爱好等

1、创建reg.jsp页面

2、设计一个业务处理页面doReg.jsp,将表单中的action设置为这个业务处理页面

3、表单验证,保证用户输入的数据是正确的,不会破坏后台的数据库中的数据

个人的提示和发现:

运行是要注意,可以鼠标右键点“Run as”,分别有只运行Java代码或者是运行JSP的部分等的代码等。

做项目等先做界面,之后就可以有很多的思路,灵感等。

个人想出的创新的方法:

java wed登录面 代码_Java web代码和学习笔记JSP实现完整的登录注册功能的界面 解决大多之法【诗书画唱】...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。