IDEA中的servlet不能正常工作,没有输出提示信息

57 阅读1分钟

IDEA中的servlet不能正常工作,没有输出提示信息

IDEA中编写登录界面发现loginservlet(继承于HTTPServlet)类中的输出不了任何信息:

package com.bubaiwantong.servlet;

import com.bubaiwantong.mapper.UserMapper;
import com.bubaiwantong.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;

@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        User user = userMapper.select(username, password);

        System.out.println(user)

        sqlSession.close();
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request,response);
    }
}

可以看到作者在doGet()方法中的写了许多代码,其中主要是想看System.out.println(user);但是一直输出不了信息,花了很久的时间在查看错误。其实这段代码是没有错误的,这是因为target中已经有编译过的程序,再次点击运行的时候有时候不会重新生成,会根据以前你编译好的代码运行,所以就不会正常工作了。这个时候我们需要将这个target目录进行删除,然后重新进行编译,一般就可以正常工作啦。

image-20220315141803739

image-20220315142026841

删除target目录之后,重新编译,完美解决之前的问题,可以正常工作啦。已经有提示信息出来啦

image-20220315142224875

总结:如果出现问题,不一定是代码的问题,有可能是之前编译的问题