• 关于

    java注册登录验证

    的搜索结果

回答

import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConnectionDemo02{ //public ConnectionDemo02 conn; public static final String DBDRIVER="org.gjt.mm.mysql.Driver"; public static final String DBURL="jdbc:mysql://localhost:3306/wxf"; public static final String DBUSER="root"; public static final String DBPASS="26533621"; public Connection getConn(){ Connection conn=null; try{ Class.forName(DBDRIVER); }catch (ClassNotFoundException e){ e.printStackTrace(); } try{ conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS); }catch(SQLException e){ e.printStackTrace(); } return conn; } } import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Login { PreparedStatement ps = null; ResultSet rs = null; Connection conn = null; public boolean verify(String name,String password ) { boolean result=false; String sql = "select * from usekey where idcard=? and password=?"; Connection con = new ConnectionDemo02().getConn(); try { ps = con.prepareStatement(sql); ps.setString(1, name); ps.setString(2, password); rs = ps.executeQuery(); if (rs.next()) {//验证成功 result=true; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { if (rs != null) rs.close(); if (ps != null) ps.close(); if (conn != null) conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return result; } } ######非常感谢感谢 再感谢 已经成功了 有点小问题已经完成 谢谢######回复 @wangms : 写在一个里面也没问题,不过面向对象讲究类的重复利用,最好按业务功能的不同写到不同的类中######哦 这个验证是不是要新用一个 不能再原来里面加是吧0.0###### 高手们 没人知道么 帮帮小弟啊 卡了快1周了 ######首先我明白为什么有三个main方法,一个java程序main方法是一个入口,应该只有一个,对于这里来讲main方法就应该是new出你的登录界面denglu dl=new  denglu();了,另外你没有给登录这个button注册事件,他当然什么都不做了,大致的流程是这样,main中new出登录窗口,登录按钮注册点击事件,然后在注册的方法中连接数据库检测帐号和密码是否与用户输入的匹配,如果正确就展示用户界面。######这个我知道 我就是写了监听了 一直错 然后一气之下都删掉了 然后看看能不能帮我写一段对的 只是确定的监听验证账号密码代码就好######import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; import java.awt.geom.*; import java.util.Vector; public class denglu extends JFrame { public Label name = new Label("用户名"); public Label pass = new Label("密码"); public TextField txtname = new TextField(); public TextField txtpass = new TextField(); public Button btok = new Button("登陆"); public Button btexit = new Button("取消"); public denglu() { setTitle("欢迎使用工资管理系统"); setLayout(null); setResizable(false); setSize(500, 350); Dimension scr = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frm = this.getSize(); setLocation((scr.width - frm.width) / 2, (scr.height - frm.height) / 2 - 18); txtpass.setEchoChar('*'); name.setBounds(70, 260, 40, 27); pass.setBounds(70, 300, 40, 27); txtname.setBounds(120, 260, 120, 27); txtpass.setBounds(120, 300, 120, 27); btok.setBounds(340, 260, 100, 28); btexit.setBounds(340, 300, 100, 28); add(name); add(txtname); add(pass); add(txtpass); add(btok); add(btexit); setVisible(true); btok.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { if (验证用户名和密码通过) { denglu.this.dispose(); new yonghu().init(); } } }); } public static void main(String args[]) { denglu dl = new denglu(); } } import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import javax.swing.*; import javax.swing.event.*; import java.sql.*; public class yonghu { public void init() { JFrame jf = new JFrame(); jf.setTitle("aaa"); jf.setBounds(300, 250, 300, 200); jf.setVisible(true); } } ######回复 @wangms : 下面那个Login类,if(new Login().verify(name,password))######就是jdbc的操作,你需要熟悉下jdbc的操作,熟悉了,就自然知道该怎么搞了######验证用户名和密码通过.....亲 就是这段= =!关键不是要汉子啊...........
kun坤 2020-06-05 14:28:20 0 浏览量 回答数 0

回答

"<pre class=""brush:java; toolbar: true; auto-links: false;"">import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConnectionDemo02{ //public ConnectionDemo02 conn; public static final String DBDRIVER="org.gjt.mm.mysql.Driver"; public static final String DBURL="jdbc:mysql://localhost:3306/wxf"; public static final String DBUSER="root"; public static final String DBPASS="26533621"; public Connection getConn(){ Connection conn=null; try{ Class.forName(DBDRIVER); }catch (ClassNotFoundException e){ e.printStackTrace(); } try{ conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS); }catch(SQLException e){ e.printStackTrace(); } return conn; } } <pre class=""brush:java; toolbar: true; auto-links: false;""> <pre class=""brush:java; toolbar: true; auto-links: false;"">import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Login { PreparedStatement ps = null; ResultSet rs = null; Connection conn = null; public boolean verify(String name,String password ) { boolean result=false; String sql = "select * from usekey where idcard=? and password=?"; Connection con = new ConnectionDemo02().getConn(); try { ps = con.prepareStatement(sql); ps.setString(1, name); ps.setString(2, password); rs = ps.executeQuery(); if (rs.next()) {//验证成功 result=true; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { if (rs != null) rs.close(); if (ps != null) ps.close(); if (conn != null) conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return result; } } ######非常感谢感谢 再感谢 已经成功了 有点小问题已经完成 谢谢######回复 @wangms : 写在一个里面也没问题,不过面向对象讲究类的重复利用,最好按业务功能的不同写到不同的类中######哦 这个验证是不是要新用一个 不能再原来里面加是吧0.0###### 高手们 没人知道么 帮帮小弟啊 卡了快1周了 ######首先我明白为什么有三个main方法,一个java程序main方法是一个入口,应该只有一个,对于这里来讲main方法就应该是new出你的登录界面denglu dl=new  denglu();了,另外你没有给登录这个button注册事件,他当然什么都不做了,大致的流程是这样,main中new出登录窗口,登录按钮注册点击事件,然后在注册的方法中连接数据库检测帐号和密码是否与用户输入的匹配,如果正确就展示用户界面。######这个我知道 我就是写了监听了 一直错 然后一气之下都删掉了 然后看看能不能帮我写一段对的 只是确定的监听验证账号密码代码就好###### import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; import java.awt.geom.*; import java.util.Vector; public class denglu extends JFrame { public Label name = new Label("用户名"); public Label pass = new Label("密码"); public TextField txtname = new TextField(); public TextField txtpass = new TextField(); public Button btok = new Button("登陆"); public Button btexit = new Button("取消"); public denglu() { setTitle("欢迎使用工资管理系统"); setLayout(null); setResizable(false); setSize(500, 350); Dimension scr = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frm = this.getSize(); setLocation((scr.width - frm.width) / 2, (scr.height - frm.height) / 2 - 18); txtpass.setEchoChar('*'); name.setBounds(70, 260, 40, 27); pass.setBounds(70, 300, 40, 27); txtname.setBounds(120, 260, 120, 27); txtpass.setBounds(120, 300, 120, 27); btok.setBounds(340, 260, 100, 28); btexit.setBounds(340, 300, 100, 28); add(name); add(txtname); add(pass); add(txtpass); add(btok); add(btexit); setVisible(true); btok.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { if (验证用户名和密码通过) { denglu.this.dispose(); new yonghu().init(); } } }); } public static void main(String args[]) { denglu dl = new denglu(); } } import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import javax.swing.*; import javax.swing.event.*; import java.sql.*; public class yonghu { public void init() { JFrame jf = new JFrame(); jf.setTitle("aaa"); jf.setBounds(300, 250, 300, 200); jf.setVisible(true); } } ######回复 @wangms : 下面那个Login类,if(new Login().verify(name,password))######就是jdbc的操作,你需要熟悉下jdbc的操作,熟悉了,就自然知道该怎么搞了######验证用户名和密码通过.....亲 就是这段= =!关键不是要汉子啊..........."
montos 2020-06-04 13:31:07 0 浏览量 回答数 0

回答

"<pre class=""brush:java; toolbar: true; auto-links: false;"">import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConnectionDemo02{ //public ConnectionDemo02 conn; public static final String DBDRIVER="org.gjt.mm.mysql.Driver"; public static final String DBURL="jdbc:mysql://localhost:3306/wxf"; public static final String DBUSER="root"; public static final String DBPASS="26533621"; public Connection getConn(){ Connection conn=null; try{ Class.forName(DBDRIVER); }catch (ClassNotFoundException e){ e.printStackTrace(); } try{ conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS); }catch(SQLException e){ e.printStackTrace(); } return conn; } } <pre class=""brush:java; toolbar: true; auto-links: false;""> <pre class=""brush:java; toolbar: true; auto-links: false;"">import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Login { PreparedStatement ps = null; ResultSet rs = null; Connection conn = null; public boolean verify(String name,String password ) { boolean result=false; String sql = "select * from usekey where idcard=? and password=?"; Connection con = new ConnectionDemo02().getConn(); try { ps = con.prepareStatement(sql); ps.setString(1, name); ps.setString(2, password); rs = ps.executeQuery(); if (rs.next()) {//验证成功 result=true; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { if (rs != null) rs.close(); if (ps != null) ps.close(); if (conn != null) conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return result; } } ######非常感谢感谢 再感谢 已经成功了 有点小问题已经完成 谢谢######回复 @wangms : 写在一个里面也没问题,不过面向对象讲究类的重复利用,最好按业务功能的不同写到不同的类中######哦 这个验证是不是要新用一个 不能再原来里面加是吧0.0###### 高手们 没人知道么 帮帮小弟啊 卡了快1周了 ######首先我明白为什么有三个main方法,一个java程序main方法是一个入口,应该只有一个,对于这里来讲main方法就应该是new出你的登录界面denglu dl=new  denglu();了,另外你没有给登录这个button注册事件,他当然什么都不做了,大致的流程是这样,main中new出登录窗口,登录按钮注册点击事件,然后在注册的方法中连接数据库检测帐号和密码是否与用户输入的匹配,如果正确就展示用户界面。######这个我知道 我就是写了监听了 一直错 然后一气之下都删掉了 然后看看能不能帮我写一段对的 只是确定的监听验证账号密码代码就好###### import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; import java.awt.geom.*; import java.util.Vector; public class denglu extends JFrame { public Label name = new Label("用户名"); public Label pass = new Label("密码"); public TextField txtname = new TextField(); public TextField txtpass = new TextField(); public Button btok = new Button("登陆"); public Button btexit = new Button("取消"); public denglu() { setTitle("欢迎使用工资管理系统"); setLayout(null); setResizable(false); setSize(500, 350); Dimension scr = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frm = this.getSize(); setLocation((scr.width - frm.width) / 2, (scr.height - frm.height) / 2 - 18); txtpass.setEchoChar('*'); name.setBounds(70, 260, 40, 27); pass.setBounds(70, 300, 40, 27); txtname.setBounds(120, 260, 120, 27); txtpass.setBounds(120, 300, 120, 27); btok.setBounds(340, 260, 100, 28); btexit.setBounds(340, 300, 100, 28); add(name); add(txtname); add(pass); add(txtpass); add(btok); add(btexit); setVisible(true); btok.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { if (验证用户名和密码通过) { denglu.this.dispose(); new yonghu().init(); } } }); } public static void main(String args[]) { denglu dl = new denglu(); } } import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import javax.swing.*; import javax.swing.event.*; import java.sql.*; public class yonghu { public void init() { JFrame jf = new JFrame(); jf.setTitle("aaa"); jf.setBounds(300, 250, 300, 200); jf.setVisible(true); } } ######回复 @wangms : 下面那个Login类,if(new Login().verify(name,password))######就是jdbc的操作,你需要熟悉下jdbc的操作,熟悉了,就自然知道该怎么搞了######验证用户名和密码通过.....亲 就是这段= =!关键不是要汉子啊..........." ![image.png](https://ucc.alicdn.com/pic/developer-ecology/88dd64aab85e431fa7e096b9d70c79ca.png)
python小菜菜 2020-06-01 19:36:09 0 浏览量 回答数 0

阿里云高校特惠,助力学生创业梦!0元体验,快速入门云计算!

建个炫酷的简历网页,制作一个浪漫的表白网页,打造个人专属网盘,多种动手场景应用免费学!!!

问题

新手java,socket相关问题

在客户端点击不同的按钮,会发送不同的信息给服务端,比如点击注册按钮,会将GUI上的相关注册信息发送到服务端再写进数据库;点击登陆按钮,则获取GUI上的账号密码,发送到服务器,再验证登录。就是点击不同的按钮,服务器需要有不同的实现,这该怎么做...
51干警网 2019-12-01 19:40:56 933 浏览量 回答数 1

回答

Mongodb生产环境建议采用 高可用集群模式,RepliSet模式。自动灾备。自动故障转移。客户端不用考虑集群主节点的宕机问题。 《阿里巴巴Java Spring Boot 2.0开发实战课程》参考代码 官方网站 第1课:Spring Boot2.0新特性和入门实战,https://yq.aliyun.com/live/583 第2课:Spring Boot2.0开发MVC网站并显示图片,https://yq.aliyun.com/live/592第3课:Spring Boot2.0实战MySQL和3个高级面试题,https://yq.aliyun.com/live/612第4课:Spring Boot2.0实战MVC用户登录和注册和Java面试题https://yq.aliyun.com/live/644第5课:Spring Boot2.0实战三层MVC架构实战与架构分层误区(Java面试题)https://yq.aliyun.com/live/655第6课:Spring Boot2.0实战MyBatis与优化(Java面试题)https://yq.aliyun.com/live/687第7课:Spring Boot2.0安全机制、漏洞与MVC身份验证实战(Java面试题) https://yq.aliyun.com/live/712第8课:Spring Boot2.0自动化配置机制解析(Java面试题) https://yq.aliyun.com/live/729
徐雷frank 2019-12-02 01:39:26 0 浏览量 回答数 0

问题

java web 怎么给android手机客户端提供接口? 开发文档不懂 跪求解决方法!

用到的框架 spring+springMVC+myBatis 数据库 mysql 开发工具 eclipse实现手机 注册 和登录 以及获取手机用户个人信息功能这是开发文档 可供参考,真的不知道该从哪里入手1、用户注册 参数名称 参数说明 长...
爵霸 2019-12-01 20:05:13 1725 浏览量 回答数 3

回答

注册的集群接入 AHAS-应用限流能为分布在各处的 Kubernetes 集群提供统一的管理方式。本文介绍如何通过容器服务 Kubernetes 版中的应用将 AHAS-应用限流接入至注册的 Kubernetes 集群。 前提条件 您已通过容器服务 Kubernetes 版接入一个注册的 Kubernetes 集群。具体操作步骤,请参见注册外部 Kubernetes 集群。 操作步骤 登录容器服务管理控制台。 选择左侧导航栏中的市场 > 应用目录进入阿里云应用页签。 单击微服务(2) > ack-ahas-sentinel-pilot。 cluster_ahas_sentinel_pilot_01 单击参数页签,设置相应的参数。单击创建。 cluster_ahas_sentinel_pilot_02 参数 描述 region_id 如果集群和 VPC 之间有专线,该参数按专线连接的 region 填写。 如果集群和 VPC 之间没有专线,该参数填入 cn-public 结果验证 验证安装是否成功,详情请参见步骤二:为 Java 应用开启 AHAS 应用流控降级。 如果集群和 VPC 之间没有专线,即 region_id 参数填写的是 cn-pubullic,需要在应用的 annotations 里加入 ahasLicenseKey。获取方法如下: 登录 AHAS 控制台。 在控制台左上角选择公网。
1934890530796658 2020-03-26 15:50:18 0 浏览量 回答数 0

问题

shiro报错 There is no session with id [xxx] ?报错

shiro报错There is no session with id [xxx]  七月 06, 2015 3:06:03 下午 org.apache.catalina.core.StandardWrapperValve invo...
爱吃鱼的程序员 2020-06-14 14:52:58 0 浏览量 回答数 1

回答

1、可以看看阿里的分布式架构的书籍2、阿里杭州Java技术专场我也讲过《互联网高并发架构选型之路》阿里云栖Java专场@杭州阿里 https://yq.aliyun.com/activity/796 3、阿里巴巴Java群里的直播,基本覆盖了主要技术。最新《阿里巴巴Java Spring Boot 2.0开发实战课程》持续更新 完全免费第1课:Spring Boot2.0新特性和入门实战,https://yq.aliyun.com/live/583 第2课:Spring Boot2.0开发MVC网站并显示图片,https://yq.aliyun.com/live/592第3课:Spring Boot2.0实战MySQL和3个高级面试题,https://yq.aliyun.com/live/612第4课:Spring Boot2.0实战MVC用户登录和注册和Java面试题https://yq.aliyun.com/live/644第5课:Spring Boot2.0实战三层MVC架构实战与架构分层误区(Java面试题)https://yq.aliyun.com/live/655第6课:Spring Boot2.0实战MyBatis与优化(Java面试题)https://yq.aliyun.com/live/687第7课:Spring Boot2.0安全机制、漏洞与MVC身份验证实战(Java面试题) https://yq.aliyun.com/live/712第8课:Spring Boot2.0自动化配置机制解析(Java面试题) 课件 PPT下载 https://yq.aliyun.com/live/729第9课:Spring Boot2.0实战MongoDB4.0(MongoDB面试题) https://yq.aliyun.com/live/782第10课:Spring Boot2.0实战高并发缓存Redis面试题) https://yq.aliyun.com/live/791第11课:Spring Boot2.0实战RabbitMQ中间件与API原理解析 https://yq.aliyun.com/live/806第12课:Spring Boot2.0性能监控实战与Actuator机制解析 https://yq.aliyun.com/live/815第13课:Spring Boot2.0性能监控实战ElasticSearch搜索引擎中间件 https://yq.aliyun.com/live/844最新《阿里巴巴Java Spring Boot 2.0开发实战课程》官方网站 完全免费第14课:Spring Boot 2.0实战MyBatis连接池阿里Druid与SQL性能监控 第15课:Spring Boot 2.0 API接口与Spring REST Docs帮助文档实战、Java面试题第16课:Spring Boot 2.0实战Apache Kafka百万级高并发消息中间件
徐雷frank 2019-12-02 01:47:28 0 浏览量 回答数 0

回答

当传入发送邮箱正确的用户名和密码时,总是收到到:550 User has no permission这样的错误, 其实我们用Java发送邮件时相当于自定义客户端根据用户名和密码进行登录,然后使用SMTP服务发送邮件。但新注册的163邮件默认是不开启客户端授权验证的(对自定的邮箱大师客户端默认开启), 因此登录总是会被拒绝,验证没有权限。解决办法是进入163邮箱,进入邮箱中心——客户端授权密码,选择开启即可, 设置完毕后,在代码中用使用客户端授权密码代替原始的邮箱密码,这样就可以正确的发送邮件了。 答案来源网络,供您参考
问问小秘 2019-12-02 02:13:37 0 浏览量 回答数 0

回答

先学习Java基础语法,在看看JavaWeb编程。MySQL数据库。看看Java高级编程,设计模式、分布式。最新的Spring Boot、Cloud、MongoDB、Redis,、微服务、大数据等。欢迎加入阿里巴巴Java群,阿里高级专家直播,群内,超过2700人了,年后3000人。最新《阿里巴巴Java Spring Boot 2.0开发实战课程》持续更新 完全免费第1课:Spring Boot2.0新特性和入门实战,https://yq.aliyun.com/live/583 第2课:Spring Boot2.0开发MVC网站并显示图片,https://yq.aliyun.com/live/592第3课:Spring Boot2.0实战MySQL和3个高级面试题,https://yq.aliyun.com/live/612第4课:Spring Boot2.0实战MVC用户登录和注册和Java面试题https://yq.aliyun.com/live/644第5课:Spring Boot2.0实战三层MVC架构实战与架构分层误区(Java面试题)https://yq.aliyun.com/live/655第6课:Spring Boot2.0实战MyBatis与优化(Java面试题)https://yq.aliyun.com/live/687第7课:Spring Boot2.0安全机制、漏洞与MVC身份验证实战(Java面试题) https://yq.aliyun.com/live/712第8课:Spring Boot2.0自动化配置机制解析(Java面试题) 课件 PPT下载 https://yq.aliyun.com/live/729第9课:Spring Boot2.0实战MongoDB4.0(MongoDB面试题) https://yq.aliyun.com/live/782第10课:Spring Boot2.0实战高并发缓存Redis面试题) https://yq.aliyun.com/live/791第11课:Spring Boot2.0实战RabbitMQ中间件与API原理解析 https://yq.aliyun.com/live/806第12课:Spring Boot2.0性能监控实战与Actuator机制解析 https://yq.aliyun.com/live/815第13课:Spring Boot2.0性能监控实战ElasticSearch搜索引擎中间件 https://yq.aliyun.com/live/844第14课:Spring Boot 2.0实战MyBatis连接池阿里Druid与SQL性能监控 https://yq.aliyun.com/live/855最新《阿里巴巴Java Spring Boot 2.0开发实战课程》官方网站 完全免费
徐雷frank 2019-12-02 01:01:42 0 浏览量 回答数 0

回答

先学习Java基础语法,在看看JavaWeb编程。MySQL数据库。看看Java高级编程,设计模式、分布式。最新的Spring Boot、Cloud、MongoDB、Redis,、微服务、大数据等。欢迎加入阿里巴巴Java群,阿里高级专家直播,群内,超过2700人了,年后3000人。最新《阿里巴巴Java Spring Boot 2.0开发实战课程》持续更新 完全免费第1课:Spring Boot2.0新特性和入门实战,https://yq.aliyun.com/live/583 第2课:Spring Boot2.0开发MVC网站并显示图片,https://yq.aliyun.com/live/592第3课:Spring Boot2.0实战MySQL和3个高级面试题,https://yq.aliyun.com/live/612第4课:Spring Boot2.0实战MVC用户登录和注册和Java面试题https://yq.aliyun.com/live/644第5课:Spring Boot2.0实战三层MVC架构实战与架构分层误区(Java面试题)https://yq.aliyun.com/live/655第6课:Spring Boot2.0实战MyBatis与优化(Java面试题)https://yq.aliyun.com/live/687第7课:Spring Boot2.0安全机制、漏洞与MVC身份验证实战(Java面试题) https://yq.aliyun.com/live/712第8课:Spring Boot2.0自动化配置机制解析(Java面试题) 课件 PPT下载 https://yq.aliyun.com/live/729第9课:Spring Boot2.0实战MongoDB4.0(MongoDB面试题) https://yq.aliyun.com/live/782第10课:Spring Boot2.0实战高并发缓存Redis面试题) https://yq.aliyun.com/live/791第11课:Spring Boot2.0实战RabbitMQ中间件与API原理解析 https://yq.aliyun.com/live/806第12课:Spring Boot2.0性能监控实战与Actuator机制解析 https://yq.aliyun.com/live/815第13课:Spring Boot2.0性能监控实战ElasticSearch搜索引擎中间件 https://yq.aliyun.com/live/844第14课:Spring Boot 2.0实战MyBatis连接池阿里Druid与SQL性能监控 https://yq.aliyun.com/live/855最新《阿里巴巴Java Spring Boot 2.0开发实战课程》官方网站 完全免费
徐雷frank 2019-12-02 01:44:01 0 浏览量 回答数 0

回答

1、学习自我驱动,自我高要求2、定个目标,比如去阿里巴巴3、看一些高级的书籍文章4、在群里多个高手交流、讨论、搞基、5、在2500多人的Java群里学习我们的Java直播课程6、最新《阿里巴巴Java Spring Boot 2.0开发实战课程》持续更新 完全免费第1课:Spring Boot2.0新特性和入门实战,https://yq.aliyun.com/live/583 第2课:Spring Boot2.0开发MVC网站并显示图片,https://yq.aliyun.com/live/592第3课:Spring Boot2.0实战MySQL和3个高级面试题,https://yq.aliyun.com/live/612第4课:Spring Boot2.0实战MVC用户登录和注册和Java面试题https://yq.aliyun.com/live/644第5课:Spring Boot2.0实战三层MVC架构实战与架构分层误区(Java面试题)https://yq.aliyun.com/live/655第6课:Spring Boot2.0实战MyBatis与优化(Java面试题)https://yq.aliyun.com/live/687第7课:Spring Boot2.0安全机制、漏洞与MVC身份验证实战(Java面试题) https://yq.aliyun.com/live/712第8课:Spring Boot2.0自动化配置机制解析(Java面试题) 课件 PPT下载 https://yq.aliyun.com/live/729第9课:Spring Boot2.0实战MongoDB4.0(MongoDB面试题) https://yq.aliyun.com/live/782第10课:Spring Boot2.0实战高并发缓存Redis面试题) https://yq.aliyun.com/live/791第11课:Spring Boot2.0实战RabbitMQ中间件与API原理解析 https://yq.aliyun.com/live/806第12课:Spring Boot2.0性能监控实战与Actuator机制解析 https://yq.aliyun.com/live/815第13课:Spring Boot2.0性能监控实战ElasticSearch搜索引擎中间件 https://yq.aliyun.com/live/844 还在直播,群二维码在连接里。
徐雷frank 2019-12-02 01:47:27 0 浏览量 回答数 0

回答

1、Java高级编程2、经典算法3、MySQL和NoSQL技术,4、咱们群里的直播课程不错:最新《阿里巴巴Java Spring Boot 2.0开发实战课程》持续更新 完全免费第1课:Spring Boot2.0新特性和入门实战,https://yq.aliyun.com/live/583 第2课:Spring Boot2.0开发MVC网站并显示图片,https://yq.aliyun.com/live/592第3课:Spring Boot2.0实战MySQL和3个高级面试题,https://yq.aliyun.com/live/612第4课:Spring Boot2.0实战MVC用户登录和注册和Java面试题https://yq.aliyun.com/live/644第5课:Spring Boot2.0实战三层MVC架构实战与架构分层误区(Java面试题)https://yq.aliyun.com/live/655第6课:Spring Boot2.0实战MyBatis与优化(Java面试题)https://yq.aliyun.com/live/687第7课:Spring Boot2.0安全机制、漏洞与MVC身份验证实战(Java面试题) https://yq.aliyun.com/live/712第8课:Spring Boot2.0自动化配置机制解析(Java面试题) 课件 PPT下载 https://yq.aliyun.com/live/729第9课:Spring Boot2.0实战MongoDB4.0(MongoDB面试题) https://yq.aliyun.com/live/782第10课:Spring Boot2.0实战高并发缓存Redis面试题) https://yq.aliyun.com/live/791第11课:Spring Boot2.0实战RabbitMQ中间件与API原理解析 https://yq.aliyun.com/live/806第12课:Spring Boot2.0性能监控实战与Actuator机制解析 https://yq.aliyun.com/live/815第13课:Spring Boot2.0性能监控实战ElasticSearch搜索引擎中间件 https://yq.aliyun.com/live/844最新《阿里巴巴Java Spring Boot 2.0开发实战课程》官方网站 完全免费第14课:Spring Boot 2.0实战MyBatis连接池阿里Druid与SQL性能监控 后面还有更多高级课程。祝你成功进入阿里巴巴。
徐雷frank 2019-12-02 01:46:14 0 浏览量 回答数 0

回答

1、我在课程里写的代码没有错,《阿里巴巴Java Spring Boot 2.0开发实战课程》,你用的什么系统?是不是包加载权限问题?2、需要的话可以发你一份。加阿里的Java钉钉群,下面课程视频里有钉钉二维码3、最新《阿里巴巴Java Spring Boot 2.0开发实战课程》持续更新 完全免费第1课:Spring Boot2.0新特性和入门实战,https://yq.aliyun.com/live/583 第2课:Spring Boot2.0开发MVC网站并显示图片,https://yq.aliyun.com/live/592第3课:Spring Boot2.0实战MySQL和3个高级面试题,https://yq.aliyun.com/live/612第4课:Spring Boot2.0实战MVC用户登录和注册和Java面试题https://yq.aliyun.com/live/644第5课:Spring Boot2.0实战三层MVC架构实战与架构分层误区(Java面试题)https://yq.aliyun.com/live/655第6课:Spring Boot2.0实战MyBatis与优化(Java面试题)https://yq.aliyun.com/live/687第7课:Spring Boot2.0安全机制、漏洞与MVC身份验证实战(Java面试题) https://yq.aliyun.com/live/712第8课:Spring Boot2.0自动化配置机制解析(Java面试题) 课件 PPT下载 https://yq.aliyun.com/live/729第9课:Spring Boot2.0实战MongoDB4.0(MongoDB面试题) https://yq.aliyun.com/live/782第10课:Spring Boot2.0实战高并发缓存Redis面试题) https://yq.aliyun.com/live/791第11课:Spring Boot2.0实战RabbitMQ中间件与API原理解析 https://yq.aliyun.com/live/806第12课:Spring Boot2.0性能监控实战与Actuator机制解析 https://yq.aliyun.com/live/815第13课:Spring Boot2.0性能监控实战ElasticSearch搜索引擎中间件 https://yq.aliyun.com/live/844第14课:Spring Boot 2.0实战MyBatis连接池阿里Druid与SQL性能监控 https://yq.aliyun.com/live/855最新《阿里巴巴Java Spring Boot 2.0开发实战课程》官方网站 完全免费
徐雷frank 2019-12-02 01:47:41 0 浏览量 回答数 0

回答

小伙子,那你在学习一边。多写代码。多在阿里巴巴Java群里参与讨论问题。学习好了可以面试阿里巴巴 、蚂蚁金服等名企了。学以致用,不会忘记的。最新《阿里巴巴Java Spring Boot 2.0开发实战课程》持续更新 完全免费第1课:Spring Boot2.0新特性和入门实战,https://yq.aliyun.com/live/583 第2课:Spring Boot2.0开发MVC网站并显示图片,https://yq.aliyun.com/live/592第3课:Spring Boot2.0实战MySQL和3个高级面试题,https://yq.aliyun.com/live/612第4课:Spring Boot2.0实战MVC用户登录和注册和Java面试题https://yq.aliyun.com/live/644第5课:Spring Boot2.0实战三层MVC架构实战与架构分层误区(Java面试题)https://yq.aliyun.com/live/655第6课:Spring Boot2.0实战MyBatis与优化(Java面试题)https://yq.aliyun.com/live/687第7课:Spring Boot2.0安全机制、漏洞与MVC身份验证实战(Java面试题) https://yq.aliyun.com/live/712第8课:Spring Boot2.0自动化配置机制解析(Java面试题) 课件 PPT下载 https://yq.aliyun.com/live/729第9课:Spring Boot2.0实战MongoDB4.0(MongoDB面试题) https://yq.aliyun.com/live/782第10课:Spring Boot2.0实战高并发缓存Redis面试题) https://yq.aliyun.com/live/791第11课:Spring Boot2.0实战RabbitMQ中间件与API原理解析 https://yq.aliyun.com/live/806第12课:Spring Boot2.0性能监控实战与Actuator机制解析 https://yq.aliyun.com/live/815第13课:Spring Boot2.0性能监控实战ElasticSearch搜索引擎中间件 https://yq.aliyun.com/live/844最新《阿里巴巴Java Spring Boot 2.0开发实战课程》官方网站 完全免费第14课:Spring Boot 2.0实战MyBatis连接池阿里Druid与SQL性能监控
徐雷frank 2019-12-02 01:47:06 0 浏览量 回答数 0

回答

算法也要看,最好是达到高级水平。看看Java高级编程,设计模式、分布式。最新的Spring Boot、Cloud、MongoDB、Redis,、微服务、大数据等。欢迎加入阿里巴巴Java群,阿里高级专家直播,群内,超过2700人了,年后3000人。最新《阿里巴巴Java Spring Boot 2.0开发实战课程》持续更新 完全免费第1课:Spring Boot2.0新特性和入门实战,https://yq.aliyun.com/live/583 第2课:Spring Boot2.0开发MVC网站并显示图片,https://yq.aliyun.com/live/592第3课:Spring Boot2.0实战MySQL和3个高级面试题,https://yq.aliyun.com/live/612第4课:Spring Boot2.0实战MVC用户登录和注册和Java面试题https://yq.aliyun.com/live/644第5课:Spring Boot2.0实战三层MVC架构实战与架构分层误区(Java面试题)https://yq.aliyun.com/live/655第6课:Spring Boot2.0实战MyBatis与优化(Java面试题)https://yq.aliyun.com/live/687第7课:Spring Boot2.0安全机制、漏洞与MVC身份验证实战(Java面试题) https://yq.aliyun.com/live/712第8课:Spring Boot2.0自动化配置机制解析(Java面试题) 课件 PPT下载 https://yq.aliyun.com/live/729第9课:Spring Boot2.0实战MongoDB4.0(MongoDB面试题) https://yq.aliyun.com/live/782第10课:Spring Boot2.0实战高并发缓存Redis面试题) https://yq.aliyun.com/live/791第11课:Spring Boot2.0实战RabbitMQ中间件与API原理解析 https://yq.aliyun.com/live/806第12课:Spring Boot2.0性能监控实战与Actuator机制解析 https://yq.aliyun.com/live/815第13课:Spring Boot2.0性能监控实战ElasticSearch搜索引擎中间件 https://yq.aliyun.com/live/844第14课:Spring Boot 2.0实战MyBatis连接池阿里Druid与SQL性能监控 https://yq.aliyun.com/live/855最新《阿里巴巴Java Spring Boot 2.0开发实战课程》官方网站 完全免费
徐雷frank 2019-12-02 01:43:46 0 浏览量 回答数 0

回答

需要钱,高薪,升职。升职加薪,迎娶白富美,走上人生巅峰。当然最重要的是学好技术,提升能力。为职业发展打下坚实的基础。看看Java高级编程,设计模式、分布式。最新的Spring Boot、Cloud、MongoDB、Redis,、微服务、大数据等。欢迎加入阿里巴巴Java群,阿里高级专家直播,群内,超过2700人了,年后3000人。最新《阿里巴巴Java Spring Boot 2.0开发实战课程》持续更新 完全免费第1课:Spring Boot2.0新特性和入门实战,https://yq.aliyun.com/live/583 第2课:Spring Boot2.0开发MVC网站并显示图片,https://yq.aliyun.com/live/592第3课:Spring Boot2.0实战MySQL和3个高级面试题,https://yq.aliyun.com/live/612第4课:Spring Boot2.0实战MVC用户登录和注册和Java面试题https://yq.aliyun.com/live/644第5课:Spring Boot2.0实战三层MVC架构实战与架构分层误区(Java面试题)https://yq.aliyun.com/live/655第6课:Spring Boot2.0实战MyBatis与优化(Java面试题)https://yq.aliyun.com/live/687第7课:Spring Boot2.0安全机制、漏洞与MVC身份验证实战(Java面试题) https://yq.aliyun.com/live/712第8课:Spring Boot2.0自动化配置机制解析(Java面试题) 课件 PPT下载 https://yq.aliyun.com/live/729第9课:Spring Boot2.0实战MongoDB4.0(MongoDB面试题) https://yq.aliyun.com/live/782第10课:Spring Boot2.0实战高并发缓存Redis面试题) https://yq.aliyun.com/live/791第11课:Spring Boot2.0实战RabbitMQ中间件与API原理解析 https://yq.aliyun.com/live/806第12课:Spring Boot2.0性能监控实战与Actuator机制解析 https://yq.aliyun.com/live/815第13课:Spring Boot2.0性能监控实战ElasticSearch搜索引擎中间件 https://yq.aliyun.com/live/844第14课:Spring Boot 2.0实战MyBatis连接池阿里Druid与SQL性能监控 https://yq.aliyun.com/live/855最新《阿里巴巴Java Spring Boot 2.0开发实战课程》官方网站 完全免费
徐雷frank 2019-12-02 01:01:15 0 浏览量 回答数 0

回答

1、Java Spring Cloud微服务基于Spring boot构建。2、Spring Boot 2.1.2了,还在迭代进化。3、提供了更强的开发体验,包括模板,API,以及性能监控的工具和API。4、Spring Boot 2.0以后改了很多东西,包括内置的连接池HikiriCP,Elastic Search、还有Actuator性能监控的API等5、Feign是简化微服务API调用的工具库,微服务中使用非常方便,2.0里可以直接使用注解方式,更加简单。6、欢迎在阿里Java群里一起学习《阿里巴巴Java Spring Boot 2.0开发实战课程》最新《阿里巴巴Java Spring Boot 2.0开发实战课程》持续更新 完全免费第1课:Spring Boot2.0新特性和入门实战,https://yq.aliyun.com/live/583 第2课:Spring Boot2.0开发MVC网站并显示图片,https://yq.aliyun.com/live/592第3课:Spring Boot2.0实战MySQL和3个高级面试题,https://yq.aliyun.com/live/612第4课:Spring Boot2.0实战MVC用户登录和注册和Java面试题https://yq.aliyun.com/live/644第5课:Spring Boot2.0实战三层MVC架构实战与架构分层误区(Java面试题)https://yq.aliyun.com/live/655第6课:Spring Boot2.0实战MyBatis与优化(Java面试题)https://yq.aliyun.com/live/687第7课:Spring Boot2.0安全机制、漏洞与MVC身份验证实战(Java面试题) https://yq.aliyun.com/live/712第8课:Spring Boot2.0自动化配置机制解析(Java面试题) 课件 PPT下载 https://yq.aliyun.com/live/729第9课:Spring Boot2.0实战MongoDB4.0(MongoDB面试题) https://yq.aliyun.com/live/782第10课:Spring Boot2.0实战高并发缓存Redis面试题) https://yq.aliyun.com/live/791第11课:Spring Boot2.0实战RabbitMQ中间件与API原理解析 https://yq.aliyun.com/live/806第12课:Spring Boot2.0性能监控实战与Actuator机制解析 https://yq.aliyun.com/live/815第13课:Spring Boot2.0性能监控实战ElasticSearch搜索引擎中间件 https://yq.aliyun.com/live/844第14课:Spring Boot 2.0实战MyBatis连接池阿里Druid与SQL性能监控 持续更新课程
徐雷frank 2019-12-02 01:47:14 0 浏览量 回答数 0

回答

我没有做过Oracle集群的工作,基于其他经验给点建议做参考1、如果你们公司不在乎钱,可以继续升级Oracle架构,升级硬件+Oracle软件系统,提高系统的并发量,那最好。2、其他方式,现在的Oracle系统集群,并发是多少?请求类型和比例,性能瓶颈在哪里?3、如果是查询请求比较多,可以考虑拆分一部分缓存出来,比如使用独立的Redis缓存高并发访问的数据。减少数据库查询压力4、如果是写入压力过大,可以考虑引入MQ,缓解数据库写入压力,不过可能有弱一致性问题出现,5、如果Oracle要求强一致性事务,这个就比较麻烦,只能说上了Oracle的船,继续掏钱升级一路走下去才行。 《阿里巴巴Java Spring Boot 2.0开发实战课程》参考代码 完全免费 官方网站 第1课:Spring Boot2.0新特性和入门实战,https://yq.aliyun.com/live/583 第2课:Spring Boot2.0开发MVC网站并显示图片,https://yq.aliyun.com/live/592第3课:Spring Boot2.0实战MySQL和3个高级面试题,https://yq.aliyun.com/live/612第4课:Spring Boot2.0实战MVC用户登录和注册和Java面试题https://yq.aliyun.com/live/644第5课:Spring Boot2.0实战三层MVC架构实战与架构分层误区(Java面试题)https://yq.aliyun.com/live/655第6课:Spring Boot2.0实战MyBatis与优化(Java面试题)https://yq.aliyun.com/live/687第7课:Spring Boot2.0安全机制、漏洞与MVC身份验证实战(Java面试题) https://yq.aliyun.com/live/712
徐雷frank 2019-12-02 01:48:43 0 浏览量 回答数 0

回答

1、Java编程思想,入门2、可以学习新的Java Spring. Boot 2.0,这个也有阿里的直播课程,全系列。有地址。3、扩展学习Java大数据、微服务、分布式架构等高级知识。4、有空也可以扩展看看NoSQL数据库,MongoDBLinux等最新《阿里巴巴Java Spring Boot 2.0开发实战课程》持续更新 完全免费第01课:Spring Boot2.0新特性和入门实战,https://yq.aliyun.com/live/583 第02课:Spring Boot2.0开发MVC网站并显示图片,https://yq.aliyun.com/live/592第03课:Spring Boot2.0实战MySQL和3个高级面试题,https://yq.aliyun.com/live/612第04课:Spring Boot2.0实战MVC用户登录和注册和Java面试题https://yq.aliyun.com/live/644第05课:Spring Boot2.0实战三层MVC架构实战与架构分层误区(Java面试题)https://yq.aliyun.com/live/655第06课:Spring Boot2.0实战MyBatis与优化(Java面试题)https://yq.aliyun.com/live/687第07课:Spring Boot2.0安全机制、漏洞与MVC身份验证实战(Java面试题) https://yq.aliyun.com/live/712第08课:Spring Boot2.0自动化配置机制解析(Java面试题) 课件 PPT下载 https://yq.aliyun.com/live/729第09课:Spring Boot2.0实战MongoDB4.0(MongoDB面试题) https://yq.aliyun.com/live/782第10课:Spring Boot2.0实战高并发缓存Redis面试题) https://yq.aliyun.com/live/791第11课:Spring Boot2.0实战RabbitMQ中间件与API原理解析 https://yq.aliyun.com/live/806第12课:Spring Boot2.0性能监控实战与Actuator机制解析 https://yq.aliyun.com/live/815第13课:Spring Boot2.0性能监控实战ElasticSearch搜索引擎中间件 https://yq.aliyun.com/live/844第14课:Spring Boot 2.0实战MyBatis连接池阿里Druid与SQL性能监控 https://yq.aliyun.com/live/855第15课:Spring Boot 2.0 API接口实战Swagger和Spring REST Docs帮助文档 https://yq.aliyun.com/live/859第16课:Spring Boot 2.0实战Apache Kafka百万级高并发消息中间件 https://yq.aliyun.com/live/868
徐雷frank 2019-12-02 01:57:27 0 浏览量 回答数 0

回答

肉蒲团你的问题很好,哈哈,小伙子不错。1、Java Spring Cloud微服务基于Spring boot构建。2、Spring Boot 2.1.2了,还在迭代进化。3、提供了更强的开发体验,包括模板,API,以及性能监控的工具和API。4、Spring Boot 2.0以后改了很多东西,包括内置的连接池HikiriCP,Elastic Search、还有Actuator性能监控的API等5、Feign是简化微服务API调用的工具库,微服务中使用非常方便,2.0里可以直接使用注解方式,更加简单。6、欢迎在阿里Java群里一起学习《阿里巴巴Java Spring Boot 2.0开发实战课程》最新《阿里巴巴Java Spring Boot 2.0开发实战课程》持续更新 完全免费第1课:Spring Boot2.0新特性和入门实战,https://yq.aliyun.com/live/583 第2课:Spring Boot2.0开发MVC网站并显示图片,https://yq.aliyun.com/live/592第3课:Spring Boot2.0实战MySQL和3个高级面试题,https://yq.aliyun.com/live/612第4课:Spring Boot2.0实战MVC用户登录和注册和Java面试题https://yq.aliyun.com/live/644第5课:Spring Boot2.0实战三层MVC架构实战与架构分层误区(Java面试题)https://yq.aliyun.com/live/655第6课:Spring Boot2.0实战MyBatis与优化(Java面试题)https://yq.aliyun.com/live/687第7课:Spring Boot2.0安全机制、漏洞与MVC身份验证实战(Java面试题) https://yq.aliyun.com/live/712第8课:Spring Boot2.0自动化配置机制解析(Java面试题) 课件 PPT下载 https://yq.aliyun.com/live/729第9课:Spring Boot2.0实战MongoDB4.0(MongoDB面试题) https://yq.aliyun.com/live/782第10课:Spring Boot2.0实战高并发缓存Redis面试题) https://yq.aliyun.com/live/791第11课:Spring Boot2.0实战RabbitMQ中间件与API原理解析 https://yq.aliyun.com/live/806第12课:Spring Boot2.0性能监控实战与Actuator机制解析 https://yq.aliyun.com/live/815第13课:Spring Boot2.0性能监控实战ElasticSearch搜索引擎中间件 https://yq.aliyun.com/live/844第14课:Spring Boot 2.0实战MyBatis连接池阿里Druid与SQL性能监控 持续更新课程
徐雷frank 2019-12-02 01:46:42 0 浏览量 回答数 0

问题

登录永远失败是什么原因??报错

@王仁辉(java) 你好,想跟你请教个问题: 我部署了环境,成功进入登录界面,因不知道admin密码,就注册了一个账号成功,但登录仍然报错...
爱吃鱼的程序员 2020-06-14 20:03:25 0 浏览量 回答数 1

问题

登录永远失败是什么原因?:报错 

@王仁辉(java) 你好,想跟你请教个问题: 我部署了环境,成功进入登录界面,因不知道admin密码,就注册了一个账号成功,但登录仍然报错...
kun坤 2020-06-08 13:39:49 0 浏览量 回答数 1

回答

最新《阿里巴巴Java Spring Boot 2.0开发实战课程》持续更新 完全免费第01课:Spring Boot2.0新特性和入门实战,https://yq.aliyun.com/live/583 第02课:Spring Boot2.0开发MVC网站并显示图片,https://yq.aliyun.com/live/592第03课:Spring Boot2.0实战MySQL和3个高级面试题,https://yq.aliyun.com/live/612第04课:Spring Boot2.0实战MVC用户登录和注册和Java面试题https://yq.aliyun.com/live/644第05课:Spring Boot2.0实战三层MVC架构实战与架构分层误区(Java面试题)https://yq.aliyun.com/live/655第06课:Spring Boot2.0实战MyBatis与优化(Java面试题)https://yq.aliyun.com/live/687第07课:Spring Boot2.0安全机制、漏洞与MVC身份验证实战(Java面试题) https://yq.aliyun.com/live/712第08课:Spring Boot2.0自动化配置机制解析(Java面试题) 课件 PPT下载 https://yq.aliyun.com/live/729第09课:Spring Boot2.0实战MongoDB4.0(MongoDB面试题) https://yq.aliyun.com/live/782第10课:Spring Boot2.0实战高并发缓存Redis面试题) https://yq.aliyun.com/live/791第11课:Spring Boot2.0实战RabbitMQ中间件与API原理解析 https://yq.aliyun.com/live/806第12课:Spring Boot2.0性能监控实战与Actuator机制解析 https://yq.aliyun.com/live/815第13课:Spring Boot2.0性能监控实战ElasticSearch搜索引擎中间件 https://yq.aliyun.com/live/844第14课:Spring Boot 2.0实战MyBatis连接池阿里Druid与SQL性能监控 https://yq.aliyun.com/live/855第15课:Spring Boot 2.0 API接口实战Swagger和Spring REST Docs https://yq.aliyun.com/live/859第16课:Spring Boot 2.0实战Apache Kafka百万级高并发消息中间件 https://yq.aliyun.com/live/868第17课:Spring Boot 2.0实战Docker容器与架构原理 https://yq.aliyun.com/live/880第18课:Spring Boot2.0实战之制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 https://yq.aliyun.com/live/906第19课:Java Spring Cloud微服务架构模式与开发实战 https://yq.aliyun.com/live/916第20课:Java Spring Boot 2.0 经典面试题与阿里巴巴内部招聘岗位 https://yq.aliyun.com/live/935
徐雷frank 2019-12-02 02:03:11 0 浏览量 回答数 0

回答

SpringSecurity的登录验证过程概括起来就是两步: 1. 产生一个Authentication实现(例如常用的UsernamePasswordAuthenticationToken)调用AuthenticationManager的authenticate()方法获取到认证后的Authentication对象(如果过程抛出AuthenticationException表示验证失败,根据异常类又分为内部异常,用户名密码错误,用户不存在,用户被禁用等)。简单来说,验证过程就是由AuthenticationManager的authenticate方法实现的。为了在系统中同时提供多种登录方式(比如微信登录,用户名密码登录等),AuthenticationManager并不直接处理认证过程,而是将认证过程委派给内置的AuthenticationProvider来处理,一个常见实现就是DaoAuthenticationProvider。 做一些后续处理,例如将获取到的已通过验证的Authentication对象放置在当前的安全上下文中,调用Session同步,从RequestCache中取出登录前请求地址回调等。或者登录失败的处理。 如果你只是要修改对密码的加盐过程,实现自己的PasswordEncoder替换默认的即可。如果你要控制整个验证Authentication的过程,可以实现一个自己的AuthenticationProvider,并把他注册给AuthenticationManager。系统里面可以有多个AuthenticationProvider实现,一般是按顺序和Authentication的具体类型来判定是否由该AuthenticationProvider处理。 Spring Security提供了上述过程的一个简单的默认实现,当然,你都可以替换。 如果觉得上面的过程看天书的话,请详细阅读Spring Security官方文档。 ######回复 @happymzw : 另外Spring Security目前比较推荐使用的是BCryptPasswordEncoder,他不需要加盐。(可以看一下BCrypt的介绍)######回复 @happymzw : 这个感觉还是得细读一下文档对照源码看看便于理解。可以用Maven来构建项目,会给你下相应的Java包源代码,比如matches()方法可以用IDE的功能找到所有调用他的地方,顺着这个梳理基本的调用关系就容易理清楚了。######感觉spring security好多东西呀,第一次用这个,踩了不知多少坑了,还在坑中没起来……######就是不知道在PasswordEncoder里面怎么取回存在数库里的盐值,所以 public boolean matches(CharSequence charSequence, String s) { return false; }这个方法没办法校验密码是不是正确的……现在改成自己写了一个CustomAuthenticationProvider######没用过springSecurity的登录验证,不过可以自定义登录的,登录成功然后加载登录用户的权限即可,认证过程不变###### 引用来自“逝水fox”的评论 SpringSecurity的登录验证过程概括起来就是两步: 产生一个Authentication实现(例如常用的UsernamePasswordAuthenticationToken)调用AuthenticationManager的authenticate()方法获取到认证后的Authentication对象(如果过程抛出AuthenticationException表示验证失败,根据异常类又分为内部异常,用户名密码错误,用户不存在,用户被禁用等)。简单来说,验证过程就是由AuthenticationManager的authenticate方法实现的。为了在系统中同时提供多种登录方式(比如微信登录,用户名密码登录等),AuthenticationManager并不直接处理认证过程,而是将认证过程委派给内置的AuthenticationProvider来处理,一个常见实现就是DaoAuthenticationProvider。 做一些后续处理,例如将获取到的已通过验证的Authentication对象放置在当前的安全上下文中,调用Session同步,从RequestCache中取出登录前请求地址回调等。或者登录失败的处理。 如果你只是要修改对密码的加盐过程,实现自己的PasswordEncoder替换默认的即可。如果你要控制整个验证Authentication的过程,可以实现一个自己的AuthenticationProvider,并把他注册给AuthenticationManager。系统里面可以有多个AuthenticationProvider实现,一般是按顺序和Authentication的具体类型来判定是否由该AuthenticationProvider处理。 Spring Security提供了上述过程的一个简单的默认实现,当然,你都可以替换。 如果觉得上面的过程看天书的话,请详细阅读Spring Security官方文档。 //DaoAuthenticationProvider里面的设置PasswordEncoder public void setPasswordEncoder(Object passwordEncoder) { Assert.notNull(passwordEncoder, "passwordEncoder cannot be null"); if(passwordEncoder instanceof PasswordEncoder) { this.setPasswordEncoder((PasswordEncoder)passwordEncoder); } else if(passwordEncoder instanceof org.springframework.security.crypto.password.PasswordEncoder) { final org.springframework.security.crypto.password.PasswordEncoder delegate = (org.springframework.security.crypto.password.PasswordEncoder)passwordEncoder; this.setPasswordEncoder(new PasswordEncoder() { public String encodePassword(String rawPass, Object salt) { this.checkSalt(salt); return delegate.encode(rawPass); } public boolean isPasswordValid(String encPass, String rawPass, Object salt) { this.checkSalt(salt); return delegate.matches(rawPass, encPass); } private void checkSalt(Object salt) { Assert.isNull(salt, "Salt value must be null when used with crypto module PasswordEncoder"); } }); } else { throw new IllegalArgumentException("passwordEncoder must be a PasswordEncoder instance"); } } //这里面设置encoder的时候,spring securiry自己做了这样的处理………… //BCryptPasswordEncoder public String encode(CharSequence rawPassword) { String salt; if(this.strength > 0) { if(this.random != null) { salt = BCrypt.gensalt(this.strength, this.random); } else { salt = BCrypt.gensalt(this.strength); } } else { salt = BCrypt.gensalt(); } return BCrypt.hashpw(rawPassword.toString(), salt); } // 他这里是自己生成了一个盐值
kun坤 2020-06-08 13:15:45 0 浏览量 回答数 0

问题

【Java学习全家桶】1460道Java热门问题,阿里百位技术专家答疑解惑

阿里极客公益活动: 或许你挑灯夜战只为一道难题 或许你百思不解只求一个答案 或许你绞尽脑汁只因一种未知 那么他们来了,阿里系技术专家来云栖问答为你解答技术难题了 他们用户自己手中的技术来帮助用户成长 本次活动特邀百位阿里技术专家对Java常...
管理贝贝 2019-12-01 20:07:15 27612 浏览量 回答数 19

回答

注册的集群接入应用实时监控服务 ARMS 能为分布在各处的 Kubernetes 集群提供统一的管理方式。本文介绍如何通过容器服务 Kubernetes 版中的应用将应用实时监控服务 ARMS 接入至注册的 Kubernetes 集群。 前提条件 您已通过容器服务 Kubernetes 版接入一个注册的 Kubernetes 集群。具体操作步骤,请参见注册外部 Kubernetes 集群。 操作步骤 登录容器服务管理控制台。 在左侧导航栏中,选择市场 > 应用目录进入阿里云应用页签。 选择运维/可观测性 (6) > ack-arms-pilot。 PILOT ARMS 单击参数页签,设置相应的参数。 pilot parm 参数 描述 clusterID 您的集群 ID。 accessKey 您的阿里云 AccessKeyId,建议使用子账号并授予 LogFull 权限。 accessKeySecret 您的阿里云 AccessKeySecret,建议使用子账号并授予 LogFull 权限。 userId 您的阿里云账号用户名。 regionId 应用实时监控服务 ARMS 所在的地域。 说明 如果您的集群和专有网络 VPC 之间有专线,专线会被自动使用。 参数设置完成后,在右侧创建区域,填写相关信息,并单击创建。 集群:选择目标集群。资源对象将部署在该集群内。 命名空间:选择资源对象所属的命名空间,默认是 default。除了节点、持久化存储卷等底层计算资源以外,大多数资源对象需要作用于命名空间。 发布名称:填写资源对象的发布名称。 后续步骤 验证安装是否成功,请参见为容器服务 Kubernetes 版 Java 应用安装探针。
1934890530796658 2020-03-26 15:37:22 0 浏览量 回答数 0

问题

电商网站报错 

【业务需求】 一、开发一个电商网站包含前台,具体要求如下: 软件模块实现技术技术指标软件模块实现技术技术指标手机微信端界面:HTML5技术 服务器数据交互࿱...
kun坤 2020-06-10 13:22:52 26 浏览量 回答数 2

回答

安装步骤 安装 Java 开发环境 目前,CCPJava SDK 支持 J2SE 6.0 及以上的 Java 运行环境,您可以从 Java 官方网站 下载并按说明安装 Java 开发环境。 安装 CCP Java SDK 安装完 Java 开发环境后,您需要安装CCP SDK,将下面的依赖加入 pom.xml 。 CCPPath com.aliyun ccp-baseclient Use the version shown in the maven badge com.aliyun ccp-client Use the version shown in the maven badge OSSPath com.aliyun ccp-baseclient Use the version shown in the maven badge com.aliyun ccp-oss-client Use the version shown in the maven badge 注意:请关注 Git Hub提供的最新版本,查看相关功能并选择使用。 初始化Client 使用前提是您已经开通CCP服务, 并且在控制台创建了域实例。参见快速搭建云盘服务。之后您可以按需初始化CCPClient 或者 OSSClient。 AK & SK 初始化客户端 AK, SK 的获取详见 密钥管理页面。选择一对用于 SDK 的访问密钥对。如果没有,请创建一对新访问密钥,且保证它处于启用状态。有关如何创建访问密钥,参见 创建访问密钥。 import com.aliyun.ccp.ccpclient.Client; import com.aliyun.ccp.ccpclient.models.*; public class Demo { private static Client client; private static RuntimeOptions runtime; public static void createClient() throws IllegalAccessException { Config config = new Config(); config.domainId = "your domainId"; config.protocol = "https"; config.accessKeyId = System.getenv("accessKeyId"); config.accessKeySecret = System.getenv("accessKeySecret"); client = new Client(config); runtime = new RuntimeOptions(); } } AccessToken & RefreshToken 初始化客户端 clientId, clientSecret 的获取详见应用接入指南。 import com.aliyun.ccp.ccpclient.Client; import com.aliyun.ccp.ccpclient.models.*; public class Demo { private static Client client; private static RuntimeOptions runtime; public static void createClient() throws IllegalAccessException { Config config = new Config(); config.domainId = "your domainId"; config.protocol = "https"; config.clientId = System.getenv("clientId"); config.clientSecret = System.getenv("clientSecret"); config.accessToken = System.getenv("accessToken"); config.refreshToken = System.getenv("refreshToken"); config.expireTime = System.getenv("expireTime"); client = new Client(config); runtime = new RuntimeOptions(); } } 注意:AK & SK 模式 和 Access Token & Refresh Token 模式 同时只能存在一种 构造请求 Account 相关 API 获取图片验证码 以下代码用于获取图片验证码,此处的示例,目的是展示关键参数 ,其他参数请查看官方文档。 // 获取图片验证码 public static void getCaptcha() throws Exception { try { GetCaptchaRequest getCaptchaRequest = new GetCaptchaRequest(); getCaptchaRequest.appId = appId; Captcha captcha = client.getCaptcha(getCaptchaRequest, runtime); // 打印返回结果 System.out.println(new Gson().toJson(captcha)); } catch (TeaException e) { System.out.println(e.getMessage()); System.out.println(e.getCode()); System.out.println(e.getData()); } } 返回结果 { "captcha":"iVBORw0KGgoAAAANSUhEUgAAAFAAAAAaCAIAAACvsEzwAAABFUlEQVR42u3YwQ7CIAwGYOKDaLya7OBL+BDePRoT4/vPJSSEjFJ+2oEIW3oy0PHRDnVmHuwyO3gH93J9Xm85+PA4+REOmKYLGbGE5/vVBn/f2/O4hMZs9FrSjIMdtVEwKSSLTG7Bb8HZLc30MALmB7QLlmkHAiPa3sDIsE7AYHkbAtvvaw0YHNlQhRezZeee0nh5BWC/EkVamjHHtqAoWGbOe4ZtqZFfWrmHcxhIhYuD3Z2S2gpgmVn450G2u8i5mOzn1aFlV7LKwCQ0FRaqTOWcsSPazvUzZIPJbStaahCMT48lNIjHD0GpkQzKftkMzK9e8/yHecLPwZ0ihZuBK7yFKTq9uXdamp7/M7Df22JPcsxw4C/GgzEzOWpc1QAAAABJRU5ErkJggg==", "captchaFormat":"png", "captchaId":"f644d0b2a7d21a3caddb17377c90c28e8DPXYUIfvs3" } 获取短信验证码 以下代码用于获取短信验证码,此处的示例,目的是展示关键参数 ,其他参数请查看官方文档。 public void getMNSCode() throws Exception { try { MobileSendSmsCodeRequest sendSmsCodeRequest = new MobileSendSmsCodeRequest(); sendSmsCodeRequest.appId = appId; sendSmsCodeRequest.phoneNumber = "13225"; sendSmsCodeRequest.type = "login"; MobileSendSmsCodeResponse response = client.mobileSendSmsCode(sendSmsCodeRequest, runtime); System.out.println(new Gson().toJson(response)); } catch (TeaException e) { System.out.println(e.getCode()); System.out.println(e.getMessage()); System.out.println(e.getData()); } } 返回结果 { "requestId":"07A5175C-E124-42EC-9304-2294DC2CEFAC", "smsCodeId":"b40bba70b37d74****************6j3IW7HP" } 验证手机号是否注册 以下代码用于验证手机号是否存在,此处的示例,目的是展示关键参数 ,其他参数请查看官方文档。 public void checkMobileIsExist() throws Exception { try { MobileCheckExistRequest checkExistRequest = new MobileCheckExistRequest(); checkExistRequest.appId = appId; checkExistRequest.phoneNumber = "1325"; MobileCheckExistResponse checkExistResponse = client.checkExist(checkExistRequest, runtime); System.out.println(new Gson().toJson(checkExistResponse)); } catch (TeaException e) { System.out.println(e.getCode()); System.out.println(e.getMessage()); System.out.println(e.getData()); } } 返回结果 { "requestId":"4DB78761-20AE-4724-8960-ADD225F35A0F", "isExist":true, "phoneNumber":"1325" } 手机号注册 以下代码用于手机号注册,此处的示例,目的是展示关键参数 ,其他参数请查看官方文档。 public void register() throws Exception { try { // get register mns Code MobileSendSmsCodeRequest sendSmsCodeRequest = new MobileSendSmsCodeRequest(); sendSmsCodeRequest.appId = appId; sendSmsCodeRequest.phoneNumber = "1325"; sendSmsCodeRequest.type = "change_password"; MobileSendSmsCodeResponse response = client.mobileSendSmsCode(sendSmsCodeRequest, runtime); String changePasswordCode = response.smsCodeId; // mobile register MobileRegisterRequest registerRequest = new MobileRegisterRequest(); registerRequest.appId = appId; registerRequest.phoneNumber = "132225"; registerRequest.smsCode = "123456"; registerRequest.smsCodeId = changePasswordCode; AccountAccessTokenResponse tokenResponse = client.register(registerRequest, runtime); System.out.println(new Gson().toJson(tokenResponse)); } catch (TeaException e) { System.out.println(e.getCode()); System.out.println(e.getMessage()); System.out.println(e.getData()); } } 返回结果 { "access_token": "eyJhbGciOiJSUzI1NiI", "refresh_token": "fvw1FLZ***tGjXxJl", "expires_in": 7200, "token_type": "Bearer", "user_id": "6c23c98d3*3f9f5211", "user_name": "132****225", "avatar": "", "nick_name": "1329225", "default_drive_id": "", "role": "admin", "expire_time": "2019-10-30T11:44:24Z", "state": "", "exist_link": [], "need_link": false, "user_data": {} } 手机号短信登录 以下代码用于短信登录,此处的示例,目的是展示关键参数 ,其他参数请查看官方文档。 public void mnsLogin() throws Exception { try { // get login mns Code MobileSendSmsCodeRequest sendSmsCodeRequest = new MobileSendSmsCodeRequest(); sendSmsCodeRequest.appId = appId; sendSmsCodeRequest.phoneNumber = "1325"; sendSmsCodeRequest.type = "change_password"; MobileSendSmsCodeResponse response = client.mobileSendSmsCode(sendSmsCodeRequest, runtime); String changePasswordCode = response.smsCodeId; // mns login MobileLoginRequest mobileLoginRequest = new MobileLoginRequest(); mobileLoginRequest.appId = appId; mobileLoginRequest.phoneNumber = "13297039225"; mobileLoginRequest.smsCode = "123456"; mobileLoginRequest.smsCodeId = changePasswordCode; AccountAccessTokenResponse tokenResponse = client.login(mobileLoginRequest, runtime); System.out.println(new Gson().toJson(tokenResponse)); } catch (TeaException e) { System.out.println(e.getCode()); System.out.println(e.getMessage()); System.out.println(e.getData()); } } 返回结果参见手机号注册的返回结果 设置登录密码 以下代码用于设置登录密码,此处的示例,目的是展示关键参数 ,其他参数请查看官方文档。 public void setPassWord() throws Exception { try { DefaultSetPasswordRequest setPasswordRequest = new DefaultSetPasswordRequest(); setPasswordRequest.appId = appId; setPasswordRequest.newPassword = "1234567"; setPasswordRequest.state = "aKsdfGoeasdksFasds"; client.setPassword(setPasswordRequest, runtime); // 此结果不返回body } catch (TeaException e) { System.out.println(e.getCode()); System.out.println(e.getMessage()); System.out.println(e.getData()); } } 密码登录 以下代码用于密码登录,此处的示例,目的是展示关键参数 ,其他参数请查看官方文档。 // 密码登录 public static void passwordLogin() throws Exception { try { MobileLoginRequest mobileLoginRequest = new MobileLoginRequest(); mobileLoginRequest.appId = appId; mobileLoginRequest.phoneNumber = "13225"; mobileLoginRequest.password = ""; AccountAccessTokenResponse tokenResponse = client.login(mobileLoginRequest, runtime); // 打印返回结果 System.out.println(new Gson().tojson(tokenResponse)); } catch (TeaException e) { System.out.println(e.getMessage()); System.out.println(e.getCode()); System.out.println(e.getData()); } } 返回结果参见手机号注册的返回结果 修改登录密码 以下代码用于修改登录密码,此处的示例,目的是展示关键参数 ,其他参数请查看官方文档。 public void changePassWord() throws Exception { try { // get change passowrd mns Code MobileSendSmsCodeRequest sendSmsCodeRequest = new MobileSendSmsCodeRequest(); sendSmsCodeRequest.appId = appId; sendSmsCodeRequest.phoneNumber = "1325"; sendSmsCodeRequest.type = "change_password"; MobileSendSmsCodeResponse response = client.mobileSendSmsCode(sendSmsCodeRequest, runtime); String changePasswordCode = response.smsCodeId; // chang password DefaultChangePasswordRequest changePasswordRequest = new DefaultChangePasswordRequest(); changePasswordRequest.appId = appId; changePasswordRequest.phoneNumber = "13***25"; changePasswordRequest.newPassword = "1234567"; changePasswordRequest.smsCode = "13124353"; changePasswordRequest.smsCodeId = changePasswordCode; client.changePassword(changePasswordRequest, runtime); //此接口不返回body } catch (TeaException e) { System.out.println(e.getCode()); System.out.println(e.getMessage()); System.out.println(e.getData()); } } 通过刷新令牌获取访问令牌 以下代码用于刷新token,此处的示例,目的是展示关键参数 ,其他参数请查看官方文档。 public void getTokenByRefreshToken() throws Exception { try { TokenRequest tokenRequest = new TokenRequest(); tokenRequest.appId = appId; tokenRequest.grantType = "refresh_token"; tokenRequest.refreshToken = "Dln****Tcpz"; AccountAccessTokenResponse tokenResponse = client.token(tokenRequest, runtime); System.out.println(new Gson().toJson(tokenResponse)); } catch (TeaException e) { System.out.println(e.getCode()); System.out.println(e.getMessage()); } } 返回结果参见手机号注册的返回结果 通过账号获取访问令牌 以下代码用于获取用户认证方式,此处的示例,目的是展示关键参数 ,其他参数请查看官方文档。 public void getAccessTokenByLinkInfo() throws Exception { try { // 此接口需要ak,sk调用, 请使用ak, sk初始化客户端 GetAccessTokenByLinkInfoRequest getAccessTokenByLinkInfoRequest = new GetAccessTokenByLinkInfoRequest(); getAccessTokenByLinkInfoRequest.identity = "13297039225"; getAccessTokenByLinkInfoRequest.type = "mobile"; AccountAccessTokenResponse tokenResponse = client.getAccessTokenByLinkInfo(getAccessTokenByLinkInfoRequest, runtime); System.out.println(new Gson().toJson(tokenResponse)); } catch (TeaException e) { System.out.println(e.getCode()); System.out.println(e.getMessage()); System.out.println(e.getData()); } } 返回结果参见手机号注册的返回结果
1934890530796658 2020-03-31 11:33:03 0 浏览量 回答数 0

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT