【REST】使用Jersey的RESTful方式实现简单的登录验证          返回主页

本文主要讨论如何使用Jersey实现登录接口的编写

起因是要对一个App写一个登录接口,如果使用传统的Servlet方式进行登录未尝不可,但是考虑到后台接口本身是Jersey实现的,如果使用servlet进行编写会造成冗余调用,因此依旧使用接口调用的方式进行编写。

数据库表设计

CREATE TABLE `validate_student` (
  `id` varchar(20) NOT NULL,
  `passwd` varchar(20) NOT NULL DEFAULT '12345',
  PRIMARY KEY (`id`),
  CONSTRAINT `id` FOREIGN KEY (`id`) REFERENCES `student` 
    (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8

说明

学生验证表,通过id与学生表建立参考关联,保证是同一个学生进行登录验证。

后台接口

/**
     * 学生登录验证
     * 
     * @param id
     * @param passwd
     * @throws SQLException
     * @author snowalker
     * @return String_tag
     */
    @Override
    @GET
    @Path("student/{id}/{passwd}")
    public String validateStudentByIdAndPasswd(@PathParam("id") String id, @PathParam("passwd") String passwd) throws SQLException {
        // 建立连接
        Connection connection = new Conn().getCon();
        // 根据id获取数据
        String sql = "select * from validate_student where id='" + id + "'";

        Statement statement = connection.createStatement();
        ResultSet rs = statement.executeQuery(sql);

        while (rs.next()) {
            String passwdInDB = rs.getString("passwd");
            System.out.println(passwdInDB);
            if (passwd.equals(passwdInDB)) {
                return "登陆成功";
            } else {
                return "登录失败";
            }
        }
        return sql;

    }

说明

  1. 首先建立与数据库的连接
  2. 获取登录id及密码并使用登录id进行查询
  3. 对数据库中查到的id对应的密码与输入的密码进行比对,如果相同则登录成功否则失败

测试

测试ip

http://119.29.3.138:8080/eback/webapi/loginValidate/student/2013005620/12345

返回:success

不足之处

数据传输方式为明文,应当使用加密方式传输。