酷开电视酷开升级后还原旧系统手机扫二维码登录需登密码是什么

Android二维码扫描登陆网页
1二维码扫描登陆
1,web端生成二维码,传递uuid,并存入
2,web端轮训查询信息,是否有数据库扫描二维码信息
3,手机端扫描二维码,获取UUID,传递用户名、密码web端
4,web查询数据库中用户信息(UserLogin),将登陆信息(用户名,密码)存入数据库。
5,web轮训查到用户登陆信息,信息完整,则登陆成功。
1.1.1 导入依赖包(二维码生成QRCode.jar)
jar包下载:
1.1.2 用户登陆信息实体类(UserLogin.java)
@Table(name = &UserLogin&)
public class UserLogin {
@GeneratedValue(generator = &UserLoginIdGenerator&)
@GenericGenerator(name = &UserLoginIdGenerator&, strategy = &uuid&)
public String getId() {
public void setId(String id) {
public int getUuid() {
public void setUuid(int uuid) {
this.uuid =
public String getName() {
public void setName(String name) {
this.name =
public String getPassword() {
public void setPassword(String password) {
this.password =
1.1.3 生成二维码(GetQrCodeServlet.java)
import java.io.IOE
import java.io.PrintW
import java.util.D
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import org.hibernate.S
import org.hibernate.SessionF
import org.hibernate.engine.transaction.jta.platform.internal.JOnASJtaP
import sun.org.mozilla.javascript.internal.json.JsonP
import com.alibaba.fastjson.JSONO
import com.jie.qrcode.util.HibernateU
import com.jie.qrcode.util.QRCodeU
import com.jie.qrcode.vo.UserL
* @ClassName: GetQrCodeServlet.java
* @Description: TODO(生成二维码)
* @author yangjie
* @version V1.0
上午11:05:27
public class GetQrCodeServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
// 生成唯一ID
int uuid = (int) (Math.random() * 100000);
// 二维码内容
// String content =
// &http://192.168.0.199:8080/QrCodeLogin/PhoneLoginServlet?uuid=&
JSONObject obj = new JSONObject();
obj.put(&url&,
&http://192.168.0.199:8080/QrCodeLogin/PhoneLoginServlet&);
obj.put(&uuid&, uuid);
String content = obj.toString();
System.out.println(&obj:& + content);
// 生成二维码
String imgName = uuid + &_& + (int) (new Date().getTime() / 1000)
String contextRoot = request.getContextPath();
String webpath = request.getSession().getServletContext()
.getRealPath(&/&);
System.out.println(webpath);
String imgPath = webpath + &/img/qrCodeImg/& + imgN
String logoPath = webpath + &/img/logo.png&;
QRCodeUtil handler = new QRCodeUtil();
// handler.encoderQRCode(content, imgPath, &png&);
handler.encoderQRCode(content, imgPath, logoPath, &png&);
// uuid保存
SessionFactory sf = HibernateUtil.getSessionFacotry();
Session session = sf.openSession();
session.beginTransaction();// 事务开始
UserLogin userlogin = new UserLogin();
userlogin.setUuid(uuid);
session.save(userlogin);// 将uuid保存到数据库
session.getTransaction().commit();// 事务提交
session.close();
// 生成的图片访问地址
String qrCodeImg = &http://192.168.0.199:8080/QrCodeLogin/img/qrCodeImg/&
String jsonStr = &{\&uuid\&:& + uuid + &,\&qrCodeImg\&:\&& + qrCodeImg
out.print(jsonStr);
out.flush();
out.close();
1.1.4 用长连接,检查登录状态(LongConnectionCheckServlet.java)
import java.io.IOE
import java.io.PrintW
import java.util.D
import java.util.L
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import org.hibernate.C
import org.hibernate.S
import org.hibernate.SessionF
import org.hibernate.criterion.R
import com.jie.qrcode.util.HibernateU
import com.jie.qrcode.vo.UserL
* @ClassName:
LongConnectionCheckServlet.java
* @Description:
TODO(用长连接,检查登录状态)
* @version
上午11:09:32
public class LongConnectionCheckServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int uuid = Integer.parseInt(request.getParameter(&uuid&));
String jsonStr = &&;
System.out.println(&in&);
System.out.println(&uuid:& + uuid);
long inTime = new Date().getTime();
Boolean bool =
while (bool) {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
// 根据uuid查询数据库登录表信息
String username = &&;
SessionFactory sf = HibernateUtil.getSessionFacotry();
Session session = sf.openSession();
Criteria criteria = session.createCriteria(UserLogin.class);
criteria.add(Restrictions.eq(&uuid&, uuid));
List result = criteria.list();
if (result.size() & 0) {
for (UserLogin s : result) {
username = s.getName();
if(!&&.equals(username)&&username!=null){//如果用户名信息不为空,则登陆成功
session.clear();
session.beginTransaction();
session.delete(s);//删除二维码登录信息,表明已登录
session.getTransaction().commit();
jsonStr = &{\&uname\&:\&& + username + &\&}&;
System.out.println(username);
if (new Date().getTime() - inTime & 5000) {
session.close();
System.out.println(&login ok : & + jsonStr);
PrintWriter out = response.getWriter();
out.print(jsonStr);
out.flush();
out.close();
1.1.5 接收手机二维码回传信息(PhoneLoginServlet.java)
import java.io.IOE
import java.io.PrintW
import java.util.L
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import org.hibernate.C
import org.hibernate.S
import org.hibernate.SessionF
import org.hibernate.criterion.R
import com.jie.qrcode.util.HibernateU
import com.jie.qrcode.vo.UserL
* @ClassName:
PhoneLoginServlet.java
* @Description:
TODO(手机二维码登陆)
* @version
上午11:20:16
public class PhoneLoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public PhoneLoginServlet() {
// TODO Auto-generated constructor stub
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
int uuid = Integer.parseInt(request.getParameter(&uuid&));
String uname = request.getParameter(&uname&);
String upwd = request.getParameter(&upwd&);
System.out.println(uuid);
System.out.println(uname);
System.out.println(upwd);
// 验证登陆
boolean bool =
//是否登陆
boolean islogin =
if (bool) {
// 将登陆信息存入数据库
SessionFactory sf = HibernateUtil.getSessionFacotry();
Session session = sf.openSession();
Criteria criteria = session.createCriteria(UserLogin.class);
criteria.add(Restrictions.eq(&uuid&, uuid));
List result = criteria.list();
if (result.size() & 0) {
for (UserLogin s : result) {
s.setName(uname);
s.setPassword(upwd);
session.clear();
session.beginTransaction();//开始事务
session.saveOrUpdate(s);
session.getTransaction().commit();// 事务提交
}else{//没有该uuid信息,表明已登录,二维码过期
System.out.println(&二维码已过期,请刷新页面&);
session.close();
PrintWriter out = response.getWriter();
out.print(islogin);//传递登陆是否成功
out.flush();
out.close();
1.1.6 二维码扫描界面(index.html)
&script type="text/javascript" src="js/jquery-1.11.0.min.js"&&/script&
扫描二维码登陆
1.1.7 运行效果
1.2.1 导入依赖工程BarCodeLibrary
工程下载:二维码扫描
1.2.2 创建工程并引入依赖包
1.2.3 手机二维码界面(activity_main.xml)
1.2.4 MainActivity.java
package com.jie.
import android.app.A
import android.content.I
import android.os.B
import android.util.L
import android.view.V
import android.view.View.OnClickL
import android.widget.B
import android.widget.T
import com.alibaba.fastjson.JSONO
import com.lidroid.xutils.HttpU
import com.lidroid.xutils.exception.HttpE
import com.lidroid.xutils.http.RequestP
import com.lidroid.xutils.http.ResponseI
import com.lidroid.xutils.http.callback.RequestCallB
import com.lidroid.xutils.http.client.HttpR
import com.lidroid.xutils.http.client.HttpRequest.HttpM
import com.zxing.activity.CaptureA
public class MainActivity extends Activity implements OnClickListener{
private Button btnS
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnScan = (Button) findViewById(R.id.btn_scan);
btnScan.setOnClickListener(this);
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(this, CaptureActivity.class);
startActivityForResult(intent, 0);
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==Activity.RESULT_OK){
String result = data.getExtras().getString(&result&);//获取扫描的结果
//Log.i(&result&,result);
JSONObject obj = JSONObject.parseObject(result);
String uuid = obj.getString(&uuid&);
String httpUrl = obj.getString(&url&);
//Toast.makeText(getApplicationContext(), result, 1000).show();
//将扫描内容提交到网页
HttpUtils http = new HttpUtils();
RequestParams params = new RequestParams();
params.addBodyParameter(&uuid&, uuid);
//Log.i(&uuid&,uuid);
params.addBodyParameter(&uname&, &yangjie&);
params.addBodyParameter(&upwd&, &123456&);
http.send(HttpMethod.POST, httpUrl, params , new RequestCallBack() {
public void onFailure(HttpException arg0, String arg1) {
// TODO Auto-generated method stub
Log.i(&http.send&,&failuer&);
Toast.makeText(getApplicationContext(), &登陆失败,二维码过期,请刷新页面!&, 1000).show();
public void onSuccess(ResponseInfo arg0) {
// TODO Auto-generated method stub
Log.i(&http.send&,&success&);
Toast.makeText(getApplicationContext(), &登陆成功!&, 1000).show();
1.2.5 运行效果

我要回帖

更多关于 酷开电视账号登录失败 的文章

 

随机推荐