在后端进行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形式,后端无法识别,需要进一步对该数据进行处理才可以传给后端。
- export default {
- data() {
- return {
- from: {
- account: "",
- password: ""
- }
-
- }
- },
- methods: {
- login() {
- this.$http.post("LoginServlet", jsonToString(this.from)).then(resp => {
- if(resp.data=="账号或密码不正确!"){
- this.$message({message: '账号或密码不正确',type: 'warning'});
- }else if(resp.data=="服务器忙...请稍后重试!"){
- this.$message({message: '系统忙,请稍后再试!',type: 'error'});
- }else{
- this.$message({message: '登录成功',type: 'success'});
- this.$router.push("/main");//在js中进行路由导航
- }
-
- })
-
- }
- },
- }
- //将json对象序列化为键=值&键=值
- function jsonToString(jsonobj) {
- console.log(jsonobj)
- var str = "";
- for (var s in jsonobj) {
- str += s + "=" + jsonobj[s] + "&";
- }
- return str.substring(0, str.length - 1);
- }