Xdoclet用于servlet
package com.xdocletbook.blog.servlet;import java.io.IOException;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Level;import org.apache.log4j.Logger;/*** @web.servlet* name="HomePage"* @web.servlet-init-param* name="LogLevel"* value="{LOG_LEVEL}"* @web.servlet-mapping* url-pattern="/home"** @web.security-role*role-name="{OwnerRole}"* @web.security-role-ref*role-name="blogowner"*role-link="{OwnerRole}"*/ public class HomePageServletextends HttpServlet {private static Logger LOGGER = Logger.getLogger(HomePageServlet.class);public void init() throws ServletException {String logLevel = getInitParameter("LogLevel");if (logLevel != null && logLevel.length() > 0) {LOGGER.setLevel(Level.toLevel(logLevel));}}public void service(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {LOGGER.debug("Displaying home page");request.getRequestDispatcher("jsp/home.jsp").forward(request, response);}}
<target name="generate-web"><taskdef name="webdoclet" classname="xdoclet.modules.web.WebDocletTask" classpathref="xdoclet.classpath"/><!-- Generate servlet and JSP Tag "stuff" --><webdoclet destdir="gen" mergeDir="merge"><fileset dir="src"><include name="**/*.java" /></fileset> <deploymentdescriptor destdir="web" distributable="false" /></webdoclet></target>
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app ><!--To use non XDoclet filters, create a filters.xml file thatcontains the additional filters (eg Sitemesh) and place it in yourproject's merge dir.Don't include filter-mappings in this file,include them in a file called filter-mappings.xml and put that inthe same directory.--> <!--To use non XDoclet filter-mappings, create a filter-mappings.xml file thatcontains the additional filter-mappings and place it in yourproject's merge dir.--> <!--To use non XDoclet listeners, create a listeners.xml file thatcontains the additional listeners and place it in yourproject's merge dir.--> <servlet><servlet-name>StrutsActionServlet</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class></servlet> <servlet><servlet-name>HomePage</servlet-name><servlet-class>com.xdocletbook.blog.servlet.HomePageServlet</servlet-class> <init-param><param-name>LogLevel</param-name><param-value>1</param-value></init-param> <security-role-ref><role-name>blogowner</role-name><role-link>aOwner</role-link></security-role-ref></servlet> <servlet-mapping><servlet-name>StrutsActionServlet</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping> <servlet-mapping><servlet-name>HomePage</servlet-name><url-pattern>/home</url-pattern></servlet-mapping> <!--To specify mime mappings, create a file named mime-mappings.xml, put it in your project's mergedir.Organize mime-mappings.xml following this DTD slice: <!ELEMENT mime-mapping (extension, mime-type)>--> <!--To specify error pages, create a file named error-pages.xml, put it in your project's mergedir.Organize error-pages.xml following this DTD slice: <!ELEMENT error-page ((error-code | exception-type), location)>--> <!--To add taglibs by xml, create a file called taglibs.xml and place itin your merge dir.--> <!--To set up security settings for your web app, create a file named web-security.xml, put it in your project's mergedir.Organize web-security.xml following this DTD slice: <!ELEMENT security-constraint (display-name?, web-resource-collection+, auth-constraint?, user-data-constraint?)><!ELEMENT web-resource-collection (web-resource-name, description?, url-pattern*, http-method*)><!ELEMENT web-resource-name (#PCDATA)><!ELEMENT url-pattern (#PCDATA)><!ELEMENT http-method (#PCDATA)><!ELEMENT user-data-constraint (description?, transport-guarantee)><!ELEMENT transport-guarantee (#PCDATA)> <!ELEMENT login-config (auth-method?, realm-name?, form-login-config?)><!ELEMENT auth-method (#PCDATA)><!ELEMENT realm-name (#PCDATA)><!ELEMENT form-login-config (form-login-page, form-error-page)><!ELEMENT form-login-page (#PCDATA)><!ELEMENT form-error-page (#PCDATA)>--><security-role><role-name>aOwner</role-name></security-role></web-app>
?