Java Servlet在IntellJ上不工作
我在用IntelliJ创建一个简单的Servlet时遇到问题。在eclipse上,上面的代码运行良好,它向我显示了正确的输出。 但在IntelliJ(以及正确设置的tomcat)上,它在输出时向我显示了一个简单的html页面,其中“$Title$”作为标题,“$END$”作为正文,我不明白为什么。 有人能帮我吗Java Servlet在IntellJ上不工作,java,tomcat,servlets,jakarta-ee,intellij-idea,Java,Tomcat,Servlets,Jakarta Ee,Intellij Idea,我在用IntelliJ创建一个简单的Servlet时遇到问题。在eclipse上,上面的代码运行良好,它向我显示了正确的输出。 但在IntelliJ(以及正确设置的tomcat)上,它在输出时向我显示了一个简单的html页面,其中“$Title$”作为标题,“$END$”作为正文,我不明白为什么。 有人能帮我吗 package ServerTest; import javax.servlet.ServletException; import javax.servlet.annotation.W
package ServerTest;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
@WebServlet(name = "Servlet")
public class Servlet extends HttpServlet {
public Servlet()
{
super();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/sakila?serverTimezone=UTC", "root", "mypass");
PreparedStatement pstmt=conn.prepareStatement("SELECT first_name FROM actor");
// pstmt.setString(parameter position, value)
ResultSet result= pstmt.executeQuery();
response.setContentType("text/html");
PrintWriter out= response.getWriter();
out.println("<HTML>");
out.println("<BODY>");
out.println("<H1> Risultato: </H1>");
while (result.next())
{
out.println("<P>");
out.println(result.getString("first_name"));
out.println("</P>");
}
out.println("</BODY>");
out.println("</HTML>");
result.close();
pstmt.close();
conn.close();
}
catch(SQLException e){
System.out.println("Errore nell'esecuzione della query");
System.out.println(e.getMessage());
} catch (ClassNotFoundException e) {
System.out.println("Impossibile caricare il driver");
System.out.println(e.getMessage());
}
}
}
包服务器测试;
导入javax.servlet.ServletException;
导入javax.servlet.annotation.WebServlet;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
导入java.io.IOException;
导入java.io.PrintWriter;
导入java.sql.*;
@WebServlet(name=“Servlet”)
公共类Servlet扩展了HttpServlet{
公共Servlet()
{
超级();
}
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)引发ServletException、IOException{
doGet(请求、响应);
}
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
尝试
{
Class.forName(“com.mysql.jdbc.Driver”);
Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/sakila?serverTimezone=UTC“,”根“,”我的通行证“);
PreparedStatement pstmt=conn.prepareStatement(“从参与者中选择名字”);
//pstmt.setString(参数位置、值)
ResultSet result=pstmt.executeQuery();
response.setContentType(“text/html”);
PrintWriter out=response.getWriter();
out.println(“”);
out.println(“”);
out.println(“Risultato:”);
while(result.next())
{
out.println(“”);
out.println(result.getString(“first_name”);
out.println(“
”);
}
out.println(“”);
out.println(“”);
result.close();
pstmt.close();
康涅狄格州关闭();
}
捕获(SQLE异常){
System.out.println(“Errore-nell'esecuzione-della查询”);
System.out.println(e.getMessage());
}catch(classnotfounde异常){
System.out.println(“不可能的驱动程序”);
System.out.println(e.getMessage());
}
}
}
您确定没有其他优先级更高的servlet执行此操作吗?你能设置一个断点来探测你使用这个servlet吗?不,代码不能到达断点。那个么我必须做什么呢?等等,断点在Web服务器上不起作用。若你们使用idea托管服务器,你们可以用调试模式启动它。如果您使用免费的idea版本,则在idea之外启动服务器。您需要使用远程调试。如果您在idea中添加一个“远程”启动器,它将告诉您在启动服务器时要添加的参数。问题已解决。该死的xml。