我从简单的java类调用servlet。正确调用servlet doGet方法,并在doGet中编写一些逻辑以将结果作为String。
我可以将该字符串从servlet的doGet方法返回到从简单的java类调用函数吗?如果可能的话,你能提供一个例子吗?
任何帮助都是得到了回报。提前谢谢。
下面是调用servlet的ContactServlet简单java类: -
public class ContactServlet {
<div ng-controller="Test as T">
<div ng-repeat="(title, row) in T.data"> <!-- Not sure how I would go about sorting these keys by certain ones first -->
{{ title }} ({{ row }})
</div>
</div>
}
下面是servlets的doGet方法: -
public static void main(String[] args) throws IOException {
String param = "username=YOURSTRING";
String request = "http://localhost:8080/TestServlet/post";
URL url = new URL(request);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
url.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setInstanceFollowRedirects(false);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setRequestProperty("charset", "utf-8");
connection.setRequestProperty("Content-Length", "" + Integer.toString(param.getBytes().length));
connection.setUseCaches (false);
System.out.println(connection);
System.out.println(param);
DataOutputStream out = new DataOutputStream(connection.getOutputStream ());
out.writeBytes(param);
out.flush();
out.close();
for(int i=1;i<=8;i++){
System.out.println(connection.getHeaderFieldKey(i)+" = "+connection.getHeaderField(i));
}
connection.disconnect();
}
我没有把它写到网页上,而是想要String&#34; Hello Username!&#34;要返回ContactServlet类。我们怎么能这样做?
答案 0 :(得分:0)
Servlet方法应由servlet容器调用,而不是由程序员手动调用,
所以你不应该自己调用doPost()
或doGet()
方法,而是需要一个servlet容器来为你处理这些方法。
总之,您需要在Servlet容器中部署Servlet,如Tomcat,Jetty等,当您进行HttpURLConnection
调用时,
容器将调用委托给相应的Servlet的doPost()
或doGet()
方法。
发生的事情是,Servlet容器负责实例化HttpServletRequest
和HttpServletResponse
对象,然后将请求委托给相应的servlet方法。