2014-12-10 6 views
0

클라이언트와 서버의 구현을 위해 서블릿을 배포 한 직후에 시작해야하며 다른 하나는 요청을 기다려야합니다. 가능한가? 만약 그것을 구현하는 올바른 방법입니다.동일한 web.xml에서 시작 서블릿과 일반 요청, 응답 서블릿에로드가 가능합니까?

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 
<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
    <servlet> 
    <description></description> 
    <display-name>WiCodeRedeemRequest</display-name> 
    <servlet-name>WiCodeRedeemRequest</servlet-name> 
    <servlet-class>com.wicode.redeem.WiCodeRedeemRequest</servlet-class> 
    </servlet> 

    <servlet> 
     <servlet-name>WiCode</servlet-name> 
     <servlet-class>com.wicode.redeem.WiCode</servlet-class> 
     <init-param> 
      <param-name>Group</param-name> 
      <param-value>1</param-value> 
     </init-param> 
     <init-param> 
      <param-name>Instance</param-name> 
      <param-value>1</param-value> 
     </init-param>  
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>WiCodeRedeemRequest</servlet-name> 
    <url-pattern>/WiCode</url-pattern> 
    </servlet-mapping> 
</web-app> 

위는 내 web.xml입니다. 나는 청취자의 어딘가 사용법을 보았다.

서블릿을 처음 사용했습니다. 제발 도와주세요. XML 파일에서

+0

는 두 개의 서블릿하지만 하나의 서블릿 매핑과 URL 패턴과 모든 혼란 서블릿 이름을 가지고있다. – User27854

+0

두 번째 서블릿, 요청 기반으로 실행하고 싶지 않은 WiCode입니다. 그 이유는 매핑을 넣지 않았기 때문입니다. 알차게 내가 백그라운드 스레드로 실행해야합니다. – user2074800

+0

시작시 WiCodeRedeemRequest를로드하지 않는 이유는 무엇입니까? 1로 WiCode 2로? – SMA

답변

0

작은 템플릿 XML ..

<?xml version="1.0" encoding="UTF-8"?> 
<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 

    <servlet> 
    <servlet-name>Servlet1</servlet-name> 
    <servlet-class>com.wicode.redeem.WiCodeRedeemRequest</servlet-class> 
    <load-on-startup>0</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>Servlet1</servlet-name> 
    <url-pattern>/MappingForFirstServlet</url-pattern> 
    </servlet-mapping> 


    <servlet> 
     <servlet-name>Servlet2</servlet-name> 
     <servlet-class>com.wicode.redeem.WiCode</servlet-class> 
    //What ever you want to initialize.. 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>Servlet2</servlet-name> 
    <url-pattern>Mapping URL</url-pattern> 
    </servlet-mapping> 
</web-app> 
+0

위의 예는 정상입니다. 모든 서블릿이 request.But을 기다리는 것에 동의합니다. 그러나 클라이언트가 Servlet WiCode에 액세스하는 것을 원하지 않습니다. (기본적으로 이니셜 라이저입니다). 내가 주어진 길과 같을 때, 그것은 효과가 없다. tomcat 로그에 오류가 없습니다. 포트는 듣고 있지만 요청을 받아들이지 않습니다 .. – user2074800

+1

예. Tomcat은 구문 적으로 오류가 발생합니다. 올바른 것입니다. 나는 아직도 당신이 무엇을하려고하는지 이해하지 못하고 있습니다. 많은 서블릿을 생성하는 것은 좋은 생각이 아닙니다. 이것들은 값 비싼 프로세스이기 때문에, 각 서블릿은 자신의 라이프 사이클 등을 가질 것입니다. 이제는 컨테이너가 모든 것을 관리해야합니다. 그래서, 제 제안은 모든 들어오는 요청을 취한 다음 하나의 서블릿을 생성하는 것입니다. 해당 컨트롤러로 지시하도록 요청합니다. 즉, 전방 제어 MVC 디자인 패턴을 설계하도록 요청합니다. – User27854

+0

사실 내 앱 서버에서도 클라이언트 구현을 관리해야합니다. 기본적으로 내가 성취하고자하는 것은 클라이언트뿐만 아니라 서버로도 작동 할 수 있다는 것입니다. 둘 다 독립적입니다. url 매핑을 원하지 않는 두 번째 서블릿은 tcp를 사용하여 다른 타사 인터페이스와 통신 할 수 있어야합니다. 또한이 서블릿에 대한 요청은 다른 인터페이스에서 TCP 원시 데이터로 제공됩니다. 기본적으로 애플리케이션은 다중 인터페이스와 대화해야하며 요청과 응답을 모두 처리 할 수 ​​있어야합니다. – user2074800