0
저의 목적은 자바 애플리케이션 (JA)에서 서블릿 (S)으로 간단한 메시지를 보내서 브라우저 페이지에 표시하는 것입니다. 서블릿 클래스 (브라우저 페이지 새로 고침)를 실행할 때마다 메시지가 수신 될 것으로 예상됩니다.자바 애플리케이션에서 서블릿으로 메시지 보내기 및 표시
BufferedWriter를 사용하여 JA의 출력을 스트림 처리하고 BufferedReader를 수신하여 S를 수신하지만 잘못된 것으로 처리하고 있습니다.
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class FirstServlet extends HttpServlet {
private final static String _USERNAME = "username";
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException , IOException {
PrintWriter out = res.getWriter();
BufferedReader bufferedReader = null;
StringBuilder stringBuilder = new StringBuilder();
char test = 'a';
try{
InputStream inputStream = req.getInputStream();
if (inputStream != null) {
bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
char[] charBuffer = new char[128];
int bytesRead = -1;
while ((bytesRead = bufferedReader.read(charBuffer)) > 0) {
stringBuilder.append(charBuffer, 0, bytesRead);
out.println(charBuffer); //expecting this to be displayed on browser
}
} else {
stringBuilder.append("");
out.println("0");
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
내가 동안 (자신의 스레드에서 실행)를 내 JA 코드를 포장 시도 (참 :
여기try{
URL url = new URL("http://(/*ip address*/:8080/FirstServlet/myfirstservlet");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream()));
out.write("testing");
out.flush();
out.close();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String response;
while((response = in.readLine()) != null) {
//System.out.println(response);
}
in.close();
}
catch (MalformedURLException ex) {
ex.printStackTrace();
}
catch (IOException iex) {
iex.printStackTrace();
}
는 S에서 코드입니다 : 여기
는 JA에서 코드입니다) 반복하지만 그것은 도움이되지 않았다. 어떤 도움을 주시면 감사하겠습니다. 감사!
난 당신'사용해야 생각 HttpURLConnection'을 호출하고'setRequestMethod ("GET")'를 호출하여 적절한 HTTP 통신을 시작함으로써 서블릿 컨테이너가 알 수 있도록 서블릿의 호출 방법을 알 수 있습니다. –
@Jozef : 아니요, OP는 푸시를 찾고 있지만 기본 개념이 잘못되었습니다. KS7X의 서블릿은 기본적으로 자바 애플리케이션에 응답합니다 ('response' 변수에 있음). 기대했던 것처럼 "브라우저 페이지"가 아닙니다. 문제 해결에 가장 도움이되는 것은 무엇입니까? http://stackoverflow.com/q/25947790 또는 http://stackoverflow.com/q/32426674? – BalusC
Thanks @ BalusC, 두 링크 모두 내 응용 프로그램을 작동시키는 데 따라야 할 새로운 길을 제시합니다. – KS7X