Java前后端交互的一些细节

 在后端进行POST请求后端接收前端数据时,关于PrintWriter:参考地址

注意传进来的对象为空说明未在数据库查到拥有该账号的用户,所以需要告诉前端“账号密码不正确”,如果不为空说明有该用户,所以可以登录。 

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String account=req.getParameter("account");
        String password=req.getParameter("password");
        System.out.println(account);
        System.out.println(password);
        PrintWriter printWriter=resp.getWriter();
        User user= null;
        try {
            user = dao.logindao(account,password);
            if(user==null) {
                printWriter.print("账号或密码不正确!");
            }
            else {
                ObjectMapper objectMapper=new ObjectMapper();
                String json=objectMapper.writeValueAsString(user);
                printWriter.print(json);
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
            printWriter.print("服务器忙...请稍后重试!");
        }




    }

最开始置对象为空,如果没有查到该用户直接返回空。 

import com.mysql.cj.jdbc.Driver;

import java.sql.*;

public class LoginDao {
    public User logindao(String account, String password) throws SQLException {
        String sql="select * from user where account=? and password=?";
        Connection connection=DButils.getConnection();
        PreparedStatement preparedStatement= connection.prepareStatement(sql);
        preparedStatement.setObject(1,account);
        preparedStatement.setObject(2,password);
        ResultSet resultSet=preparedStatement.executeQuery();
        User user=null;
        if(resultSet.next())
        {
            user=new User();
            String psw=resultSet.getString("password");
            user.setAccount(account);
            user.setPassword(psw);
        }
        DButils.close(resultSet,preparedStatement,connection);
        return user;
    }
}

前端代码需要注意,我们使用的是原生的servlet,前端传给后端的数据是JSON形式,后端无法识别,需要进一步对该数据进行处理才可以传给后端。 

 

 

你可能感兴趣的:(服务器部署,后端,前端,java,交互,servlet,开发语言)