如何让XML来配置Servlet

开发 后端
本文介绍如何让XML来配置Servlet,以及介绍如果不在XML中对Servlet配置,那么我们修改Servlet的属性的话就要重新启动服务器,而如果使用XML来配置的话就不需要重新启动服务器而可以自动生效。

我们在Web应用中可以使用xml来配置Servlet,给其提供初始化参数,如下例:

我们创建的Servlet为:ServletDemo.java,代码如下:

  1. /*  
  2. *Createdon2005-8-29  
  3. *  
  4. *TODOTochangethetemplateforthisgeneratedfilegoto  
  5. *Window-Preferences-Java-CodeStyle-CodeTemplates  
  6. */  
  7. packagezy.pro.wd.servlet;  
  8. importjava.io.IOException;  
  9. importjava.io.PrintWriter;  
  10. importjavax.sql.DataSource;  
  11. importjavax.servlet.ServletException;  
  12. importjavax.servlet.http.HttpServlet;  
  13. importjavax.servlet.http.HttpServletRequest;  
  14. importjavax.servlet.http.HttpServletResponse;  
  15. /**//**  
  16. *@authorzhangyi  
  17. *  
  18. *TODOTochangethetemplateforthisgeneratedtypecommentgoto  
  19. *Window-Preferences-Java-CodeStyle-CodeTemplates  
  20. */  
  21. publicclassServletDemoextendsHttpServlet...{  
  22. Stringmessage;  
  23. DataSourceds;  
  24. /**//**  
  25. *Constructoroftheobject.  
  26. */  
  27. publicServletDemo()...{  
  28. super();  
  29. }  
  30. /**//**  
  31. *Destructionoftheservlet.<br> 
  32. */  
  33. publicvoiddestroy()...{  
  34. super.destroy();//Justputs"destroy"stringinlog  
  35. //Putyourcodehere  
  36. }  
  37. /**//**  
  38. *ThedoGetmethodoftheservlet.<br> 
  39. *  
  40. *Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget.  
  41. *  
  42. *@paramrequesttherequestsendbytheclienttotheserver  
  43. *@paramresponsetheresponsesendbytheservertotheclient  
  44. *@throwsServletExceptionifanerroroccurred  
  45. *@throwsIOExceptionifanerroroccurred  
  46. */  
  47. publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)  
  48. throwsServletException,IOException...{  
  49. response.setContentType("text/html");  
  50. PrintWriterout=response.getWriter();  
  51. out.println("<!DOCTYPEHTMLPUBLIC\"-//W3C//DTDHTML4.01Transitional//EN\">");  
  52. out.println("<HTML>");  
  53. out.println("<HEAD><TITLE>AServlet</TITLE></HEAD>");  
  54. out.println("<BODY>");  
  55. out.print("Thisis");  
  56. out.print(this.getClass());  
  57. out.println(",usingtheGETmethod<br>");  
  58. out.println(this.getServletConfig().getInitParameter("message"));  
  59. out.println("</BODY>");  
  60. out.println("</HTML>");  
  61. out.flush();  
  62. out.close();  
  63. }  
  64. /**//**  
  65. *ThedoPostmethodoftheservlet.<br> 
  66. *  
  67. *Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost.  
  68. *  
  69. *@paramrequesttherequestsendbytheclienttotheserver  
  70. *@paramresponsetheresponsesendbytheservertotheclient  
  71. *@throwsServletExceptionifanerroroccurred  
  72. *@throwsIOExceptionifanerroroccurred  
  73. */  
  74. publicvoidinit()throwsServletException...{  
  75. //Putyourcodehere  
  76. }  

在此Servlet中我们定义了两个属性message和ds。我们现在在web.xml中作如下配置:

  1. <servlet> 
  2. <description> 
  3. ThisisthedescriptionofmyJ2EEcomponent  
  4. </description> 
  5. <display-name> 
  6. ThisisthedisplaynameofmyJ2EEcomponent  
  7. </display-name> 
  8. <servlet-name>ServletDemo</servlet-name> 
  9. <servlet-class>zy.pro.wd.servlet.ServletDemo</servlet-class> 
  10. <init-param> 
  11. <description>initializethefieldofmessage</description> 
  12. <param-name>message</param-name> 
  13. <param-value> 
  14. welcomehere,thankyouforvisiting!!!  
  15. </param-value> 
  16. </init-param> 
  17. </servlet> 
  18. <servlet-mapping> 
  19. <servlet-name>ServletDemo</servlet-name> 
  20. <url-pattern>/servlet/ServletDemo</url-pattern> 
  21. </servlet-mapping> 

加粗的部分是我们要作的配置。在其中我们给message属性设置了初始值:
welcomehere,thankyouforvisiting!!!

注意:此处我们不能同时给ds设置初始值,因为web.xml的DTD中约定了只能定义一个属性也就是在配置文件中只允许声明一个参数值对。这样,在我们的servlet中就可以这样来访问此属性:this.getServletConfig().getInitParameter("message")。但是,有时候我们需要同时对多个属性用XML来初始化,那么我们就需要自己来写XML文件,同时自己来解析了。

使用XML来配置Servlet的好处:
如果不在XML中对Servlet配置,那么我们修改Servlet的属性的话就要重新启动服务器,而如果使用XML来配置的话就不需要重新启动服务器而可以自动生效。服务器可以自动监视其改变而重新装入文档。对企业来说,系统的连续运营是很重要的。

XML来配置Servlet主要用在初始化参数在运行过程中需要改变的情况下。

【编辑推荐】

  1. Servlet引擎的安装
  2. 配置Servlet开发环境
  3. 标签库中JSP Servlet调用
  4. 学习Java Servlet时遇到的小问题
  5. Servlet在session中共享链接
责任编辑:佚名 来源: 51CTO.com
相关推荐

2009-07-07 14:27:32

Servlet配置web.xml

2009-01-04 16:58:48

LINQ to XMLLINQXML

2009-07-06 15:55:52

Servlet例子Ruby

2009-07-07 10:47:58

Servlet开发环境

2011-05-06 15:42:32

打印机管理颜色

2011-07-18 10:50:00

产品设计

2011-03-15 09:50:41

XMLWeb

2018-06-15 10:06:46

服务器配置行业

2009-07-06 09:49:26

Servlet JSP

2009-07-03 18:07:31

Servlet的运行环

2009-07-08 16:07:04

Servlet过滤器配

2009-06-05 10:55:07

struts2 web

2023-12-22 09:03:31

2022-10-11 08:37:43

Servlet配置版本

2018-04-09 23:08:33

数据全无线校园

2009-07-09 18:05:02

MyEclipse开发

2009-07-03 12:59:40

Servlet配置

2009-07-08 13:31:23

调用Servlet处理

2015-11-19 09:44:34

HTML5定位

2022-11-21 08:11:18

点赞
收藏

51CTO技术栈公众号