How-to: Servlet -- Servlet comunication.

The scheme is about some servlets comunicating with others that realize the data set of the structure. How is the best way to let the servlets comunicate between them? Java is offering different techniques for let comunicating like http requests, datagram packets or persistents connections. The http requests are good for a comunication between browser and servlets but could they be used to implement something like a messages-exchanger-box for servlets also?
Thanks!
Tony

Servlets handle HTTP requests, no matter where they come from. HTTP is the protocol they understand, so that's what you should be using.
HTTP is a stateless, request/response protocol. That's what you should be using.
Once a request is made and a response sent, the servlet forgets all about the requestor. The connection is not persistent. It's not a point-to-point, peer-to-peer kind of thing. For all that servlet knows, the next request it receives could be from another client. That's the way HTTP works.
If the two servlets are running in the same JVM you can forward or redirect an HTTP request or include the HTTP response from one into another.
If the two servlets are running in different JVMs you can open a URL connection from one to the other and do an HTTP GET or POST request.
Best to get a good book on servlets, like Jason Hunter's O'Reilly book. It's excellent.

Similar Messages

  • How to reach Applet- Servlet- OtherApplet comunication?

    I have reach a Applet<->Servlet<->Applet comunication....it is working very well....
    Now...i wish to reach Applet->Servlet->OtherApplet comunication....
    Applet will send a dataX to Servlet and the Servlet will send that dataX to OtherApplet.
    The OtherApplet would be presented in the same window parent....i know that it could be reached using:
    response.setHeader("Refresh","0; URL=http://212.22.31.12/OtherApplet.html");
    But...how indicate the dataX that i wish to send like input to OtherApplet?
    Somebody has a code example, ideas or suggestions that could help me please?
    Thanks,

    A servlet can only send something as a response to a request. So the servlet couldn't send the information to the second applet until the second applet asked for it, and that means you would have to write your applets so they constantly kept asking the servlet if there was anything new.

  • Pls help me on how to compile servlet

    pls i need the help of some kind one to assist me on how to compile and deploy servlet .I'm new to javaEE & am using the javaEE tutorial from sun site.In the first example servlet in d book, after compiling and deploying the greetingServlet and responseServlet and deployed it ,i was told to include a welcome jsp file in d war file. all these i have done but the server always complain of not been able locate d greetingServlet.
    i use the netbeans IDE and sun java application server.The greetingServlet & responseServlet codes are these; Pls I don't know what to put in the jsp file
    package servlets;
    import java.io.*;
    import java.util.*;
    import java.sql.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    * This is a simple example of an HTTP Servlet.  It responds to the GET
    * method of the HTTP protocol.
    public class GreetingServlet extends HttpServlet {
        public void doGet(
            HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
            response.setContentType("text/html");
            response.setBufferSize(8192);
            PrintWriter out = response.getWriter();
            // then write the data of the response
            out.println("<html>" + "<head><title>Hello</title></head>");
            // then write the data of the response
            out.println(
                    "<body  bgcolor=\"#ffffff\">"
                    + "<img src=\"duke.waving.gif\" alt=\"Duke waving\">"
                    + "<h2>Hello, my name is Duke. What's yours?</h2>"
                    + "<form method=\"get\">"
                    + "<input type=\"text\" name=\"username\" size=\"25\">"
                    + "<p></p>" + "<input type=\"submit\" value=\"Submit\">"
                    + "<input type=\"reset\" value=\"Reset\">" + "</form>");
            String username = request.getParameter("username");
            if ((username != null) && (username.length() > 0)) {
                RequestDispatcher dispatcher = getServletContext()
                                                   .getRequestDispatcher(
                            "/response");
                if (dispatcher != null) {
                    dispatcher.include(request, response);
            out.println("</body></html>");
            out.close();
        public String getServletInfo() {
            return "The Hello servlet says hello.";
    package servlets;
    import java.io.*;
    import java.util.*;
    import java.sql.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    * This is a simple example of an HTTP Servlet.  It responds to the GET
    * method of the HTTP protocol.
    public class ResponseServlet extends HttpServlet {
        public void doGet(
            HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
            PrintWriter out = response.getWriter();
            // then write the data of the response
            String username = request.getParameter("username");
            if ((username != null) && (username.length() > 0)) {
                out.println("<h2>Hello, " + username + "!</h2>");
        public String getServletInfo() {
            return "The Response servlet says hello.";
    }

    Here is what you will need to do.
    1. Compile the servlets by performing the following steps
    1.1 Open a command line in the directory where your servlets are located.
    1.2 Type the following commands
    1.2.1 javac GreetingServlet.java
    1.2.2 javac ResponseServlet.java
    Then you should see the .class files for these classes appear in the directory .
    Next you will put these class files in the WEB-INF/classes directory.
    Once you have done that you will edit your web.xml in the WEB-INF directory to include the two servlets. That code will look something like this
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
    <web-app>
         <servlet>
              <servlet-name>GreetingServlet</servlet-name>
              <servlet-class>GreetingServlet</servlet-class>
         </servlet>
         <servlet-mapping>
              <servlet-name>GreetingServlet</servlet-name>
              <url-pattern>/GreetingServlet</url-pattern>
         </servlet-mapping>
         <servlet>
              <servlet-name>ResponseServlet</servlet-name>
              <servlet-class>ResponseServlet</servlet-class>
         </servlet>
         <servlet-mapping>
              <servlet-name>ResponseServlet</servlet-name>
              <url-pattern>/ResponseServlet</url-pattern>
         </servlet-mapping>
    </web-app>Once you have done this save the web.xml file and recompile the war file by following these steps
    1 open a commandline in the root directory where the servlets are
    2 type the following command jar -cvf warFileName.war .
    *Note the space and period at the end of the command are not a mistake the space . tells the jar tool to complie the war from the directory you are current in.
    Once this command is successfully ran you should see a .war file appear in the directory you are in. Then simply put the war file in your deploy directory of your server and you are finished.
    alternatly if you are just doing this for yourself to learn servlets and this is not going to be deployed anywhere then I would just use the W3C's Jigsaw server which does all the work for you all you have to do is compile the servlets and put the class files in the servlets directory and you are done.

  • How to deploy Servlet Application in Weblogic 8.1

    Hi,
    I am new to BEA Weblogic 8.1 .
    I was trying to create a sample application using InelliJ IDea 5.1 , and IntelliJIdea 10.5 . i configured weblogic with IDE , but now i do not know how to deploy my application in weblogic .
    I am new in IntelliJ also .
    So Can anyone tell me how can i deploy a servlet application in any IDE like i also have eclipse indigo.
    Thanks & Regards
    Komi

    Hi Komi
    Basically you deploy your Servlet as a WAR File. I am not familiar with IntellJ IDE. But it should have a provision to export/create a WAR file that has your Servlet. Also I hope you already have web.xml file with 2 sections like this: First you mention full package of your servlet and give it a name. Then enter a mapping url. You will use this url to run your servlet like http://weblogichost:weblogicport/yourWebappcontextroot/myservlet
    <servlet>
         <servlet-name>MyServlet</servlet-name>
         <servlet-class>com.abd.def.MyServlet</servlet-class>
    </servlet>
    <servlet-mapping>
         <servlet-name>MyServlet</servlet-name>
         <url-pattern>/myservlet</url-pattern>
    </servlet-mapping>
    Coming to deployment, I hope you already created a Weblogic Domain and have admin username/password. Start your domain. Login into weblogic console like http://host:port/console and use admin username/password. Then from Deployments section, deploy the above WAR file. In Weblogic you can deploy JAR (EJBs, java files), WAR (web jsp, html, webservices, servlets) or EAR (JAR + WAR). In your case its just a WAR file.
    Refer the online docs for more details on Deployments in Weblogic.
    http://docs.oracle.com/cd/E13196_01/platform/docs81/deploy/deploy.html
    Thanks
    Ravi Jegga

  • How to run servlet codes in WebServer 6.1?

    I am new to Java Web Server and at our place we had installed WebServer 6.1. How to run Servlets in this - the default directory is
    http//win2000:81/Sun/WebServer6.1/docs
    I have'nt insatlled any new virtual class / servers - just running with the default class and servers.
    I could not find any virtual directory named servlet (similar to JavaWebServer 2.0) here.
    Someone kindly tell me how to post servlet files and run them.

    Refer "Sun ONE Web Server 6.1 Programmer's Guide to Web Applications"
    http://docs.sun.com/app/docs/doc/817-1833-10
    Meena

  • How to run servlet in java webserver2.0

    how to configure java webserver2.0 and how to run servlet in that

    Hi Friend,
    Try changing the servlet code to this and just tell wat happens after this.
    and wat can you see on your Browser Screen.
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;
    public class login extends HttpServlet {
    public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException
    if (req.getParameter("t1") == null || req.getParameter("t2") == null)
    out.println("Enter User Name And Password");
    String uid=req.getParameter("t1");
    String pwd=req.getParameter("t2");
    res.setContentType("text/html");
    PrintWriter out=res.getWriter();
    out.println("<html>"); out.println("<head>");
    out.println("<title>Login</title>"); out.println("</head>");
    out.println("<body>");
    try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    catch(ClassNotFoundException e)
    out.println("<h3>"+e+"</h3>");
    try{
    Connection con=DriverManager.getConnection("jdbc:odbc:ms","scott","tiger");
    PreparedStatement psm=con.prepareStatement("select * from reg where uid1=? and pwd=?");
    psm.setString(1,uid);
    psm.setString(1,pwd);
    ResultSet rs=psm.executeQuery();
    if(rs.next())
    { out.println("<html><head><title>WELCOME</title></head>");
    out.println("<body><b><i>Hello user "+uid+"</b></i>");
    out.println("</body></html>"); }
    else
    res.sendRedirect("http://localhost:8080/login.html");
    } catch(SQLException e)
    { e.printStackTrace();}
    rs.close();
    con.close();
    out.close();
    After this try creating a odbc for oracle database at control panel with the name ms.
    Please inform me wat happens after this and friend do give some information about wat kind of web-server are you using.Because calling of your servlets differs the way your configure your web-server and the default configurations differ from web-server to web-server.
    Regards,
    RAHUL

  • How to call servlets in sunone webserver

    hi,
    I am using sunone web server , I deployed but how to call servlets in sunone webserver any one tell me
    bye

    Typical URL structure is like this:
    http://<myServer>:<myPort>/servlet/<fully qualified class name of my servlet>Unless you have configured a different servlet mapping ...

  • How to run servlet in weblogic 8.1

    hi!
    i m new to weblogic.how to run servlet in weblogic8.1.i get lot of errors when i compile it in command prompt.but when i do the same thing in tomcat,i dont get errors & it runs successfully.help me out.how to compile servlets in weblogic 8.1.some say i have to create .jar file.pls tell me the procedure.i m new to j2ee.i have installed jdk1.5 .
    pls its urgent

    a lot of error....
    mmmm no sorry, i don't see
    it remembers me when i was dating sarah,it was very difficult... but now i'm dating anne it's really easier... any idea on what was going wrong with sarah?
    ok sorry for this allegory, just tired to ask always the same thing:
    WHAT ERRORS???

  • How to Run servlet in Tomcat 5.5.9

    hi
    How to run servlet in tomcat 5.5.9?how to set context path in server.xml of conf folder in tomcat since there is no context tag in server.xml.
    Jiten

    Hi ! I have a similar problem, well, it's along the same line ...
    I'm using NetBeans 4.1, and i've coded a servlet. Using NetBeans to launch my servlet (with the bundled Tomcat 5.5.7) works fine, however i need to deploy my application unto a Tomcat 5.5.9 server.
    Thus, i copied the WAR file generated by NetBeans into the Tomcat 5.5.9 webapps directory, and Tomcat expands it.
    Problem is when i run my JSP pages with the form tags, they do not work on the Tomcat 5.5.9 environment. Anyone knows why?
    (These work on the NetBeans Tomcat bundle 5.5.7)
    My form action :
    <form name="index" method="get" action="PageServlet">
    My web.xml :
    <servlet>
    <servlet-name>PageServlet</servlet-name>
    <servlet-class>application.PageServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>PageServlet</servlet-name>
    <url-pattern>/PageServlet</url-pattern>
    </servlet-mapping>
    I'm really stumbed on why it doesn't work in Tomcat 5.5.9, any help is greatly appreciated, thanks in advance ^_^

  • How to run Servlet in Tomcat 5.5.7 Server

    Hi,
    How to run Servlet in Tomcat 5.5.7 Server. I mean where I should copy my *.class file.
    Thanks in Advance.
    bbye.

    In order to complile the servlet you need to tell java where to find the servlet libary (as stated above by setting the class path). or (much easier IMO)
    copy the servlet-api.jar to
    JavaInstallDirectory\jre\lib\ext

  • How to make servlets reloadable in iplanet web server in solaris??

    hi all,
    does anyone know how to make servlets reloadable in iplanet ??? Thanks for help

    Hi there,
    I think your question is about "Dynamic Class Reloading", also named as Hot deployment. and the following lines may be helpful.
    iAS 6.0 SP3 and later version supports new hot deployment features through dynamic class
    reloading of EJBs.By default, dynamic servlet, EJB and registered JSP reloading is disabled in iPlanet Application Server.
    To enable dynamic reloading of servlets, EJBs and registered JSPs, perform the following steps:
    1.Start iPlanet Registry Editor, kregedit, and modify the Disable value under the Versioning key:
    SOFTWARE/iPlanet/Application Server/6.0/CCS0/SYSTEM_JAVA/Versioning
    2.Set the Disable value to 0 (By default, the Disable value is set to 1)
    3.Restart iPlanet Application Server to enable the change
    To hot deploy your application, simply compile and replace the file in the appropriate directory or, use iasdeploy to redeploy
    applications.
    I recommand you to check out the iAS's release notes (http://docs.iplanet.com/docs/manuals/ias/60/sp3/rn_sp3.html#20766) for more infomation.
    Good luck
    Shen Jie
    Developer Technical Support
    Sun Microsystems
    http://sun.com/developers/support

  • How to display  servlet dynamically generated image ?

    Hi,
    How to display servlet dynamically generated image ?
    I have a servlet generating a buffered image in the doGet. I want to display the image in a jsp page with other information. I'm not able to get it properly displayed.
    **Try n# 1 **************************************************************
    This displays my image but nothing elle :
    ServletOutputStream sos = pResponse.getOutputStream();
    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
    encoder.encode(img);
    **Try n# 2 ****************************************************************
    I tried also :
    In the servlet :
         request.setAttribute("renderedImage", img);
    and in the jsp page :
         BufferedImage image = (BufferedImage) request.getAttribute("renderedImage");
         <img src="<%=ImageIO.write(image,"jpeg",response.getOutputStream())%>" width="300" height="280"/>
    This last try draws big crap in the jsp page, thank you in advance.
    Nelson

    Call another servlet from the IMG tag. Have the servlet stream out the image using ImageIO (instead of writing HTML).

  • How to execute  servlets  in tomcat?

    Hi,
    I have compiled servlet file and tried to execute that file from root i.e. (http://localhost/'filename'....)as class file is in web-inf/classes.But it is executing from "http://localhost/servlet/" where is that servlet directory?
    why all servlets executes from "servlet/" directory?
    Please reply....
    Thanx in advance.

    I has the same problem, and my solution was to include a line in the tomcat-auto file foreach servlet i had.
    Under
    JkMount /MyApp/servlet/* ajp13
    I set a line
    JkMount /MyApp/MyServlet ajp13
    and in the web.xml of my webapp i included a servlet mapping for the servlet:
    <servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>MyPackage.MyServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/MyServlet</url-pattern>
    </servlet-mapping>
    Then restarting tomcat and apache it worked.
    One question i have is that tomcat-auto file it is supposed to be auto-generated by tomcat, but in my case it is not, each time i add an app in the webapps dir i have to add all the stuff in tomcat-auto file. Does anyone know how to autogenerate this file?

  • How to run servlet,jsp in eclipse software

    can any one tell me how to run servlet ,jsp in eclipse
    and how to start tomcat server in eclipse
    reply me
    regards
    saravana

    Can anybody help me as I wanted to know how to run servlet,jsp in eclipse software...
    If somebody can forward me the screenshots than it would be of great help....
    Thanks

  • How to run servlet,jsp in eclipseand to start tomcat in eclipse

    hi
    i want to know how to run servlet and jsp in eclipse 3.0
    and to start tomcat server in same.
    please reply me the steps involved indetail.
    regards
    saravanakumar

    Find Lomboz J2EE plugin and a tutorial of how to use it :)

  • How to run servlet in tomcat5

    How to run the servlet in tomcat5...
    Is it need to set any classpath here. I tried alot in editing web.xml, and also i set the environment variable as
    JAVA_HOME, CATALINA_HOME to Java1.2 and tomcat5 rsptly.
    I cant even run the jsp file... it is giving the error lik this "The requested resource (file name) is not available " (HTTP status 404).
    what will be the problem..
    pls help me
    thx in advance

    You have not told your container what url maps to your servlet. This needs to be in your web descriptor:
    <servlet>
        <servlet-name>watermelon</servlet-name>
        <servlet-class>myservlets.watermelon</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>watermelon</servlet-name>
        <url-pattern>/fruits/*</url-pattern>
    </servlet-mapping>Then all requests to any url under yourwebapp/fruits/ will be processed by the servlet.
    I suggest you read a tutorial before going any further:
    http://java.sun.com/j2ee/1.4/docs/tutorial/doc/

Maybe you are looking for

  • Calendar Month View - AGAIN

    I have been working for two weeks on moving the Palm Desktop from an XP to a new installation of Vista. Following the directions on your web site I downloaded PD 6.2 and installed it. I synced my Tungsten E2. The first time I clicked on the month vie

  • Mac G4, OS X 10.4.11 freezes when trying to connect to server

    Hello, I was wondering if anyone has advice on solving this issue: One of the Macs in my small office is a G4, single processor, PowerPC, running OS X 10.4.11. It's a computer we only use from time to time. I needed to use it recently, and when I tri

  • Classic Read Only Error-Irreparable partition-3rd time in 6 months

    I have been using a 1 terabyte usb-powered Seagate Freeagent Go drive since May, when I got my 2010 Macbook Pro. I have had it set up with 2 partitions. One for general backups (Mac OS Extended(Journaled)) and one for Time Machine(Mac OS Extended(Cas

  • Sample "Products" Demo glitch????

    Within the 1.3 release sample, there is a file: /demos/products/index.html that on line 20 has a call: quote: <link href="css/accordion.css" rel="stylesheet" type="text/css" /> Problems: 1. There is no CSS directory within the "/demos/products/" dire

  • Choosing Edit In Photoshop does not carry my develop settings

    Hi, Something awry has happened to my Lightroom. All of a sudden, when I want to open a photo in Photoshop by right clicking and selecting Edit In Adobe Photoshop CS4, I don't get the traditional TIFF file which used to be generated (as in _MG_9999_E