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;
    }
在这里插入图片描述
테스트
시작 항목 테스트
在这里插入图片描述
총결산
위 챗 데모 에 관 한 이 글 은 여기까지 입 니 다.저희 의 더 많은 멋 진 내용 에 관심 을 가 져 주 셨 으 면 좋 겠 습 니 다!

좋은 웹페이지 즐겨찾기