android 모방 위 챗 demo―로그 인 기능 실현(서버)
서버 로그 인 기능 구현
기 존의 글 에서 서버 뮤 직 비디오 프레임 워 크 를 실 현 했 고 로그 인 과 등록 은 유사 하기 때문에 웹 층 에 Servlet 을 만들어 클 라 이언 트 와 데이터 교 류 를 완성 하고 service 층 과 dao 층 에서 해당 하 는 인터페이스 에 해당 하 는 추상 적 인 방법 을 추가 한 다음 에 클래스 에서 다시 쓰 면 됩 니 다.
Servlet Login.java 를 만 들 고 서버 와 클 라 이언 트 의 데이터 상호작용 을 실현 합 니 다.
Login.java
package com.example.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.example.pojo.User;
import com.example.service.UserServiceImpl;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URLDecoder;
@WebServlet(name = "Login", value = "/Login")
public class Login extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// ,
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("UTF-8");
// json
response.setContentType("application/json;charset=UTF-8");
System.out.println(request.getContentType());// ,application/json;charset=UTF-8
System.out.println(request.getRemoteAddr());// ip ,
BufferedReader br = new BufferedReader(new InputStreamReader(//
request.getInputStream()));
String line = null;
StringBuffer s = new StringBuffer();//StringBuffer String , l ,t StringBuffer
//
while ((line = br.readLine()) != null) {
s.append(line);
}
// io
br.close();
System.out.println(s.toString());
//JSON: json ,IDEA ,
User user = JSON.parseObject(s.toString(), User.class);//
// utf-8
String number = URLDecoder.decode(user.getNumber(), "utf-8");
String password = URLDecoder.decode(user.getPassword(), "utf-8");
System.out.println(" :" + number + ", ;" + password);
System.out.println(user);
//
UserServiceImpl us = new UserServiceImpl();
//
User user1 = us.login(number, password);
boolean loginInfo = false;
if (user1 != null) {
//
loginInfo = true;
}
// , Y json
JSONObject rjson = new JSONObject();
rjson.put("json", loginInfo);
response.getOutputStream().write(
rjson.toString().getBytes("UTF-8"));// json
}
}
service 계층 의 인터페이스 UserService.자바 에 로그 인 업무 논리 처 리 를 처리 하 는 추상 적 인 방법 을 추가 합 니 다.
//
User login(String number,String password);
서비스 층 에 있 는 클래스 UserServiceImpl.java 인터페이스 에 추 가 된 방법 을 다시 쓰 십시오
@Override
public User login(String number, String password) {
// dao
User user = ud.findByUsername(number);
if (user != null) {
//
if (password.equals(user.getPassword())) {
//
return user;
}
}
return null;
}
dao 층 의 인터페이스 UserDao.자바 에 로그 인 데 이 터 를 처리 하고 데이터 베 이 스 를 조작 하 는 추상 적 인 방법 을 추가 합 니 다.
//
User findByUsername(String number);
dao 층 의 클래스 UserDaoImpl.java 인터페이스 에 추 가 된 방법 을 다시 쓰 십시오.
@Override
public User findByUsername(String number) {
//
Pattern pattern = Pattern
.compile("^(13[0-9]|15[0-9]|153|15[6-9]|180|18[23]|18[5-9])\\d{8}$");
Matcher matcher = pattern.matcher(number);
// sql
if (matcher.matches()) {
//sql
String sql = "select * from user where phone=?";
rs = JDBCUtil.executeQuery(sql, number);
} else { // sql
//sql
String sql = "select * from user where number=?";
rs = JDBCUtil.executeQuery(sql, number);
}
//
try {
if (rs.next()) {
// , User
int id = rs.getInt("id");
String number1 = rs.getString("number");
String name = rs.getString("name");
String password = rs.getString("password");
String phone = rs.getString("phone");
String remark = rs.getString("remark");
// User
User user = new User();
user.setId(id);
user.setNumber(number1);
user.setName(name);
user.setPassword(password);
user.setPhone(phone);
user.setRemark(remark);
System.out.println(" " + user);
return user;
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return null;
}
테스트
시작 항목 테스트
총결산
위 챗 데모 에 관 한 이 글 은 여기까지 입 니 다.저희 의 더 많은 멋 진 내용 에 관심 을 가 져 주 셨 으 면 좋 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
콩짜개 검색 - 위 챗 공공 플랫폼 접속 (wechatpy)위의 글 은 위 챗 공공 플랫폼 을 어떻게 연결 하 는 지 소 개 했 지만 그 안의 검증 코드 는 우리 가 스스로 실현 한 것 이다.그러나 지금 우 리 는 더 좋 은 선택 이 생 겼 다.위 챗 (WeChat) 퍼 블...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.