I'm trying to figure out servlets but i just don't seem to be able to do it right.
My file structure is as follows
C:\Tomcat\webapps | --test | --WEB-INF | ---web.xml ---classes | ---BookServlet.java ---BookServlet.class
I compile BookServlet.java, no errors.
Here's the source code of BookServlet.java
| 1 | /* |
| 2 | * BookServlet.java |
| 3 | * |
| 4 | * Created on March 6, 2007, 12:00 AM |
| 5 | */ |
| 6 | |
| 7 | import java.io.*; |
| 8 | import java.net.*; |
| 9 | |
| 10 | import javax.servlet.*; |
| 11 | import javax.servlet.http.*; |
| 12 | |
| 13 | /** |
| 14 | * |
| 15 | * @author Administrator |
| 16 | * @version |
| 17 | */// |
| 18 | public class BookServlet extends HttpServlet { |
| 19 | |
| 20 | /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. |
| 21 | * @param request servlet request |
| 22 | * @param response servlet response |
| 23 | */ |
| 24 | protected void processRequest(HttpServletRequest request, HttpServletResponse response) |
| 25 | throws ServletException, IOException { |
| 26 | response.setContentType("text/html;charset=UTF-8"); |
| 27 | PrintWriter out = response.getWriter(); |
| 28 | /* TODO output your page here |
| 29 | out.println("<html>"); |
| 30 | out.println("<head>"); |
| 31 | out.println("<title>Servlet BookServlet</title>"); |
| 32 | out.println("</head>"); |
| 33 | out.println("<body>"); |
| 34 | out.println("<h1>Servlet BookServlet at " + request.getContextPath () + "</h1>"); |
| 35 | out.println("</body>"); |
| 36 | out.println("</html>"); |
| 37 | */ |
| 38 | out.close(); |
| 39 | } |
| 40 | |
| 41 | // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> |
| 42 | /** Handles the HTTP <code>GET</code> method. |
| 43 | * @param request servlet request |
| 44 | * @param response servlet response |
| 45 | */ |
| 46 | protected void doGet(HttpServletRequest request, HttpServletResponse response) |
| 47 | throws ServletException, IOException { |
| 48 | processRequest(request, response); |
| 49 | } |
| 50 | |
| 51 | /** Handles the HTTP <code>POST</code> method. |
| 52 | * @param request servlet request |
| 53 | * @param response servlet response |
| 54 | */ |
| 55 | protected void doPost(HttpServletRequest request, HttpServletResponse response) |
| 56 | throws ServletException, IOException { |
| 57 | processRequest(request, response); |
| 58 | } |
| 59 | |
| 60 | /** Returns a short description of the servlet. |
| 61 | */ |
| 62 | public String getServletInfo() { |
| 63 | return "Short description"; |
| 64 | } |
| 65 | // </editor-fold> |
| 66 | } |
my web.xml
<web-app> - <servlet> <servlet-name>hello</servlet-name> <description>This servlet ... is hello servlet</description> <servlet-class>BookServlet</servlet-class> </servlet> - <servlet-mapping> <servlet-name>BookServlet</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping> </web-app>
Using the Tomcat Web Application Manager I start the "test" application and I get this error:
FAIL - Application at context path /test could not be started
Upon furthur investigation, i look at the log file
| 1 | Mar 6, 2007 9:01:37 AM org.apache.tomcat.util.digester.Digester endElement |
| 2 | SEVERE: End event threw exception |
| 3 | java.lang.reflect.InvocationTargetException |
| 4 | at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source) |
| 5 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) |
| 6 | at java.lang.reflect.Method.invoke(Method.java:585) |
| 7 | at org.apache.tomcat.util.IntrospectionUtils.callMethodN(IntrospectionUtils.java:930) |
| 8 | at org.apache.catalina.startup.CallMethodMultiRule.end(WebRuleSet.java:760) |
| 9 | at org.apache.tomcat.util.digester.Rule.end(Rule.java:229) |
| 10 | at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1058) |
| 11 | at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633) |
| 12 | at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1241) |
| 13 | at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685) |
| 14 | at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368) |
| 15 | at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834) |
| 16 | at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) |
| 17 | at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148) |
| 18 | at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242) |
| 19 | at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1562) |
| 20 | at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:369) |
| 21 | at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1062) |
| 22 | at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261) |
| 23 | at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) |
| 24 | at org.apache.catalina.core.StandardContext.start(StandardContext.java:4238) |
| 25 | at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1177) |
| 26 | at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:542) |
| 27 | at org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:105) |
| 28 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) |
| 29 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) |
| 30 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) |
| 31 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) |
| 32 | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228) |
| 33 | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) |
| 34 | at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) |
| 35 | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) |
| 36 | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) |
| 37 | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) |
| 38 | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216) |
| 39 | at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) |
| 40 | at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634) |
| 41 | at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445) |
| 42 | at java.lang.Thread.run(Thread.java:595) |
| 43 | Caused by: java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name BookServlet |
| 44 | at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:2381) |
| 45 | at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:2361) |
| 46 | ... 39 more |
| 47 | Mar 6, 2007 9:01:37 AM org.apache.catalina.startup.ContextConfig applicationWebConfig |
| 48 | SEVERE: Parse error in application web.xml file at jndi:/localhost/yves/WEB-INF/web.xml |
| 49 | java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name BookServlet |
| 50 | at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2726) |
| 51 | at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2752) |
| 52 | at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1061) |
| 53 | at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633) |
| 54 | at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1241) |
| 55 | at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685) |
| 56 | at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368) |
| 57 | at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834) |
| 58 | at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) |
| 59 | at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148) |
| 60 | at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242) |
| 61 | at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1562) |
| 62 | at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:369) |
| 63 | at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1062) |
| 64 | at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261) |
| 65 | at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) |
| 66 | at org.apache.catalina.core.StandardContext.start(StandardContext.java:4238) |
| 67 | at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1177) |
| 68 | at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:542) |
| 69 | at org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:105) |
| 70 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) |
| 71 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) |
| 72 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) |
| 73 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) |
| 74 | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228) |
| 75 | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) |
| 76 | at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) |
| 77 | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) |
| 78 | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) |
| 79 | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) |
| 80 | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216) |
| 81 | at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) |
| 82 | at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634) |
| 83 | at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445) |
| 84 | at java.lang.Thread.run(Thread.java:595) |
| 85 | Mar 6, 2007 9:01:37 AM org.apache.catalina.startup.ContextConfig applicationWebConfig |
| 86 | SEVERE: Occurred at line 12 column 19 |
| 87 | Mar 6, 2007 9:01:37 AM org.apache.catalina.startup.ContextConfig start |
| 88 | SEVERE: Marking this application unavailable due to previous error(s) |
| 89 | Mar 6, 2007 9:01:37 AM org.apache.catalina.core.StandardContext start |
| 90 | SEVERE: Error getConfigured |
| 91 | Mar 6, 2007 9:01:37 AM org.apache.catalina.core.StandardContext start |
| 92 | SEVERE: Context [/test] startup failed due to previous errors |
Can anybody tell me what I'm doing wrong?
Thanks
The contents of both tags <servlet-name> must be the same.
<servlet> <servlet-name>hello</servlet-name> <description>This servlet ... is hello servlet</description> <servlet-class>BookServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping>
[edit]
In the <servlet> element you declare the servlet class and give it an alias (the <servlet-name>), then you declare the requests it will handle with the element <servlet-mapping> by using its alias (hello), not the class name.
Rampage, I edited as you suggested
web.xml
<servlet> <servlet-name>BookServlet</servlet-name> <description>This servlet ... is hello servlet</description> <servlet-class>BookServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>BookServlet</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping>
| 1 | Mar 6, 2007 9:26:03 AM org.apache.tomcat.util.digester.Digester fatalError |
| 2 | SEVERE: Parse Fatal Error at line 7 column 2: The markup in the document following the root element must be well-formed. |
| 3 | org.xml.sax.SAXParseException: The markup in the document following the root element must be well-formed. |
| 4 | at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236) |
| 5 | at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:215) |
| 6 | at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:386) |
| 7 | at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:316) |
| 8 | at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1438) |
| 9 | at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatch(XMLDocumentScannerImpl.java:1274) |
| 10 | at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368) |
| 11 | at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834) |
| 12 | at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) |
| 13 | at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148) |
| 14 | at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242) |
| 15 | at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1562) |
| 16 | at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:369) |
| 17 | at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1062) |
| 18 | at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261) |
| 19 | at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) |
| 20 | at org.apache.catalina.core.StandardContext.start(StandardContext.java:4238) |
| 21 | at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1177) |
| 22 | at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:542) |
| 23 | at org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:105) |
| 24 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) |
| 25 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) |
| 26 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) |
| 27 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) |
| 28 | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228) |
| 29 | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) |
| 30 | at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) |
| 31 | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) |
| 32 | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) |
| 33 | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) |
| 34 | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216) |
| 35 | at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) |
| 36 | at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634) |
| 37 | at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445) |
| 38 | at java.lang.Thread.run(Thread.java:595) |
| 39 | Mar 6, 2007 9:26:03 AM org.apache.catalina.startup.ContextConfig applicationWebConfig |
| 40 | SEVERE: Parse error in application web.xml file at jndi:/localhost/yves/WEB-INF/web.xml |
| 41 | org.xml.sax.SAXParseException: The markup in the document following the root element must be well-formed. |
| 42 | at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1269) |
| 43 | at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1562) |
| 44 | at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:369) |
| 45 | at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1062) |
| 46 | at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261) |
| 47 | at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) |
| 48 | at org.apache.catalina.core.StandardContext.start(StandardContext.java:4238) |
| 49 | at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1177) |
| 50 | at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:542) |
| 51 | at org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:105) |
| 52 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) |
| 53 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) |
| 54 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) |
| 55 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) |
| 56 | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228) |
| 57 | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) |
| 58 | at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) |
| 59 | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) |
| 60 | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) |
| 61 | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) |
| 62 | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216) |
| 63 | at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) |
| 64 | at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634) |
| 65 | at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445) |
| 66 | at java.lang.Thread.run(Thread.java:595) |
| 67 | Mar 6, 2007 9:26:03 AM org.apache.catalina.startup.ContextConfig applicationWebConfig |
| 68 | SEVERE: Occurred at line 7 column 2 |
| 69 | Mar 6, 2007 9:26:03 AM org.apache.catalina.startup.ContextConfig start |
| 70 | SEVERE: Marking this application unavailable due to previous error(s) |
| 71 | Mar 6, 2007 9:26:03 AM org.apache.catalina.core.StandardContext start |
| 72 | SEVERE: Error getConfigured |
| 73 | Mar 6, 2007 9:26:03 AM org.apache.catalina.core.StandardContext start |
| 74 | SEVERE: Context [/test] startup failed due to previous errors |
I don't know if using the same name for the servlet and the class has anything to do with that, I'd use a different name.
SEVERE: Parse Fatal Error at line 7 column 2: The markup in the document following the root element must be well-formed.
org.xml.sax.SAXParseException: The markup in the document following the root element must be well-formed.
You must have messed up the syntax. Could you post the whole .xml file?
what i posted is the entire xml file
You forgot <web-app></web-app>?
thanks Infernic, now forgive my newbyness but when i run
http://localhost:8080/test/BookServlet
I get a 404
<url-pattern>/test</url-pattern>
The URL is: http://localhost:8080/test/test
thanks for putting up with me guys, last little bit
| 1 | /* |
| 2 | * BookServlet.java |
| 3 | * |
| 4 | * Created on March 6, 2007, 12:00 AM |
| 5 | */ |
| 6 | |
| 7 | import java.io.*; |
| 8 | import java.net.*; |
| 9 | |
| 10 | import javax.servlet.*; |
| 11 | import javax.servlet.http.*; |
| 12 | |
| 13 | /** |
| 14 | * |
| 15 | * @author Administrator |
| 16 | * @version |
| 17 | */// |
| 18 | public class BookServlet extends HttpServlet { |
| 19 | |
| 20 | /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. |
| 21 | * @param request servlet request |
| 22 | * @param response servlet response |
| 23 | */ |
| 24 | protected void processRequest(HttpServletRequest request, HttpServletResponse response) |
| 25 | throws ServletException, IOException { |
| 26 | response.setContentType("text/html;charset=UTF-8"); |
| 27 | PrintWriter out = response.getWriter(); |
| 28 | out.println("<html>"); |
| 29 | out.println("<head>"); |
| 30 | out.println("<title>Servlet BookServlet</title>"); |
| 31 | out.println("</head>"); |
| 32 | out.println("<body>"); |
| 33 | out.println("<h1>Servlet BookServlet at " + request.getContextPath () + "</h1>"); |
| 34 | out.println("</body>"); |
| 35 | out.println("</html>"); |
| 36 | out.close(); |
| 37 | } |
| 38 | |
| 39 | // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> |
| 40 | /** Handles the HTTP <code>GET</code> method. |
| 41 | * @param request servlet request |
| 42 | * @param response servlet response |
| 43 | */ |
| 44 | protected void doGet(HttpServletRequest request, HttpServletResponse response) |
| 45 | throws ServletException, IOException { |
| 46 | processRequest(request, response); |
| 47 | } |
| 48 | |
| 49 | /** Handles the HTTP <code>POST</code> method. |
| 50 | * @param request servlet request |
| 51 | * @param response servlet response |
| 52 | */ |
| 53 | protected void doPost(HttpServletRequest request, HttpServletResponse response) |
| 54 | throws ServletException, IOException { |
| 55 | processRequest(request, response); |
| 56 | } |
| 57 | |
| 58 | /** Returns a short description of the servlet. |
| 59 | */ |
| 60 | public String getServletInfo() { |
| 61 | return "Short description"; |
| 62 | } |
| 63 | // </editor-fold> |
| 64 | } |
echoes nothing
use out.flush() instead of out.close()
you guys are awesome
thanks
crap, i didnt select the give credits option
but thanks a lot