Servlet -> JSP



  • Hallo,
    ich habe einen Servlet. Der Servlet initialisiert einen Objekt (Device[]) in seine init()-Methode:

    Servlet: Simulator.java

    public class Simulator extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
    
    	 public Device[] devices;
    	 public DeviceManager deviceManager;
    
    	public void init(ServletConfig config) throws ServletException {
    		super.init();
    
    		deviceManager = new DeviceManager();
    		devices = new Device[4];
    
    		for(int i=0; i<devices.length; i++){
    
    			devices[i] = new Device();
    
    			devices[i].setID("1");
    			devices[i].setName("dummy");
    			devices[i].setInfo("Test");
    		}
    
    	}
    
    	public Device[] getDevises(){
    		return this.devices;
    	}
    }
    

    Also das heißt das wenn der Tomcat gestartet wird ist der Objekt Device[] gefühlt.

    Wie kann man aus eine JSP-Seite auf der Initialisirte Objekt zugreifen ???



  • Gar nicht!

    Deine JSP - Seite wird intern in ein vollständiges
    Servlet umgewandelt und kennt dein anderes
    Servlet nicht.

    Was hast du denn überhaupt vor?



  • Naja, vielleicht habe ich mich falsch ausgedrückt. Aber das was ich wollte geht.
    Ich habe es nämlich so gelöst:

    - Also ich will ein Servlet haben der bei der Initialisirung einen Objekt Array füllt
    - Es soll beim Tomcat start alles passieren

    in web.xml [somit wird der Servlet beim Start von Tomcat direkt geladen]

    <servlet>
    		<display-name>Simulator</display-name>
    		<servlet-name>Simulator</servlet-name>
    		<servlet-class>org.test.Simulator</servlet-class>
              <load-on-startup>1</load-on-startup>
    </servlet>
    

    Dann in meinem Servlet also Simulator.java

    public void init(ServletConfig config) throws ServletException {
    		super.init();
    
             .......
            config.getServletContext().setAttribute("device", devices[0]);
    
    }
    

    und schliesslich in der index.jsp

    <%
    	Device dev = (Device) application.getAttribute("device");
    %>
    
    <%=dev%><br>
    

    ALSO ES IST MÖGLICH! 🙂


Anmelden zum Antworten