我有这个servlet:
package com...servlet;
import com...Connector;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class AutomateServlet extends HttpServlet{
private static final Logger log = LoggerFactory.getLogger(AutomateServlet.class);
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Connector con = new Connector();
boolean test = con.start();
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("Servlet at: " + request.getServletPath());
out.println("<br/>");
out.println(request.getServerPort());
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
processRequest(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
processRequest(request, response);
}
}
在Connector中,我有一个方法:
public boolean start() {
//gets data
//communicates with an api to post content
return true;
}
我想做的事情:让AutomateServlet执行我的程序中的行con.start();
。
我的问题是当我执行servlet时,即调用servlet的URL:
本地主机:2990 / servlet的/测试
这是输出:
Servlet at: /servlet/test
2990
输出只是我预期的一半,因为con.start()
没有被执行。
我知道我的预期结果应该是什么 - 使用api创建的页面。
问题是,当我使用我的配置运行我的项目(IntelliJ)时,一切正常。但是,servlet掩盖了java代码。
我输入boolean
作为检查以查看servlet的响应。
你能帮我弄清楚为什么con.start()
没有产生预期的结果吗?同样,期望的结果是在另一个站点上创建页面。 Connector.start()
中的业务逻辑功能齐全,当我在main方法中调用start()
但在conn.start()
类中调用AutomateServlet
时未处理时,这一点很明显。
提前致谢。