dwr - Can someone explain the Spring web.xml file? -
i'm new java enterprise , spring have strong grasp of standard java. looking through existing web application project. project uses tomcat/spring/hibernate understand common. uses dwr remote method invocations. i'm finding difficult separate responsibilities: tomcat responsible for, spring responsible for, how request gets 1 other, , how major pieces of spring fit together. i've read great deal of documentation on spring, particularly beans , bean factory , still in process of reading more. advice guys have welcome, i'll provide specific questions.
question 1: web.xml fit things (when used/called, , called from)?
code sample 1:
<servlet> <servlet-name>qrst</servlet-name> <display-name>qrst servlet</display-name> <servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet>
what above snippet (or, cause happen)? @ point in web app qrst.jsp gets used; dispatcherservlet calls qrst.jsp using servlet name? else significance of servlet name? load on startup?
code sample 2:
<context-param> <param-name>contextconfiglocation</param-name> <param-value> /somelocation/some-servlet.xml </param-value> </context-param>
links or explanation of above does? can see looking @ xml file contains bean definitions , understand beans , how used, don't know other details , to.
code sample 3:
<servlet> <servlet-name>dwr-invoker</servlet-name> <display-name>dwr</display-name> <servlet-class> org.directwebremoting.servlet.dwrservlet </servlet-class> <init-param> <param-name>classes</param-name> <param-value> somepackage.someclass </param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet>
from read beans, believe init-param elements parameters set in servlet's java class. what's significance of servlet name, , load on startup? web app somehow "knows" when ajax (dwr) call happening versus when web app being loaded first time (when loading first time should use qrst.jsp). how know this? how decide route request dwr instead of qrst.jsp? this?
thanks.
servlets javaee's idiom answering http requests. program behavior of application in servlet respond request.
tomcat servlet container, means deploy application in tomcat , manage communication infrastructure you: accepts connections, manages database connections(*) , call upon servlets handle incoming requests.
web.xml
part of javaee application, not spring. code sample 1 declares app use instance of class org.springframework.web.servlet.dispatcherservlet
handle incoming requests.
although servlets basic foundations javaee development, not advised create own; instead, spring, create mvc controllers. dispatcherservlet call upon these controllers handle requests. it's indirection (but powerful one!)
is dispatcherservlet calls qrst.jsp using servlet name?
not directly. it's coincidence servlet , jsp file have same name.
what loaded on startup?
your code sample 2 instructs dispatcherservlet load beans file /somelocation/some-servlet.xml
. if there controller beans in file , according how configured url mapping, beans file answer incoming requests. see the reference.
i believe init-param elements parameters set in servlet's java class
the init-param elements in web.xml servlet class.
the web app somehow "knows" when ajax (dwr) call happening versus when web app being loaded first time (when loading first time should use qrst.jsp). how know this?
missing question either <servlet-mapping>
element (found in web.xml), or url mappings (found in spring files). these responsible deciding whether url should handled dispatcher servlet or dwr servlet.
for instance, servlet mapping below:
<servlet-mapping> <servlet-name>qsrt</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>dwr</servlet-name> <url-pattern>*.dwr</url-pattern> </servlet-mapping>
then urls ending in .do
answered dispatcher servlet, , ending .dwr
handled dwr servlet. here's names of servlets important.
jsp files different story. container use them handle url ending in *.jsp. not create onw servlet mapping urls ending in *.jsp
. cause headaches. unspecified behavior.
edit:
however, url in browser's address bar looks same: invoke qrst servlet
then possible servlet-mapping broad (something like: <url-pattern>/*</url-pattern>
) handle throw @ server , never give chance other servlets handle it.
last not least, when working dwr or ajax technology, install httpfox extension firefox can monitor ajax calls of application.
Comments
Post a Comment