2014-12-11 2 views
0

PUT/POST 요청을 다른 JAVA 서블릿에 보내 원하는 것을 알려드립니다. 어떤 콘텐츠도 보내지 않습니다. URL이 있다고 해봅시다.JAVA 서블릿에 콘텐츠가없는 put/post 요청

putURL = "http://"+recorderIp+":"+recorderPort +"/vodingest/rec/"+recId+"/completed" 

나는 그의 PUT/POST 방법이 요청을 참조 번 서블릿을 sent.The 어떤 내용 (파일 내용)을 해달라고, 그는 뭔가를 완료하고 필요한 작업을 수행했음을 알 수 있습니다.

JAVA 서블릿에서 어떻게 수행 할 수 있습니까? 도와주세요.

답변

0

먼저 PUT은 기본적으로 웹 서버 (Tomcat 포함)에서 사용할 수 없기 때문에이 방법을 사용하기 전에 PUT이 활성화되었는지 POST에 고정되어 있는지 확인하십시오. 위에서 언급했듯이 두 개의 서블릿 (두 개의 서블릿이 있다고 가정)이 같은 컨테이너 아래에있는 경우 디스 패칭이 가능합니다. 그렇지 않으면 독립형 클라이언트에서 수행하는 경우 접근 방식이 달라집니다. 아래의 모든 환경에서 작동합니다 :

사용 HttpURLConnection의 (https://docs.oracle.com/javase/7/docs/api/java/net/HttpURLConnection.html) 사용 setRequestMethod을 사용의 doInput /의 doOutput을 게시하려면 작성하고 (귀하의 경우 내가 필요 하나 생각하지 않는다) 스트림에서 읽을 필요가있는 경우 .

이것은 비교적 간단한 방법이며 작동 할 것입니다. 클라이언트의 유연성이 더 필요하면 Apache Commons HTTP Client를 사용할 수 있습니다.

글을 쓰거나 아무것도 읽을 필요가 없다면 PUT을 사용하는 이유는 무엇입니까?

1

우리는 다른 서블릿에 POST 요청을 보내는 많은 메소드가 있습니다.

1)

request.getRequestDispatcher("/myServletName").forward(request, response); 

재에 리디렉션

request.sendRedirect("myServletName.java") 

2) 링크

out.println("<a href=\"http://localhost:8080/HelloWorld/myServlet\"> Hello World Servlet </a>"); 

3) 관련 디스패처 보내기 다른 서블릿에 값을 전달할 수 있습니다.

request.setParams("recId" , "completed") 

제 3의 옵션이 더 좋습니다. 희망이 당신의 문제를 해결할 것입니다.

+0

코드 시퀀스를 제공 할 수 있습니까? 또한 대상 서블릿에서 해당 메시지를 어디에서 파싱 할 수 있습니까? – prashanta

관련 문제