📄 ws-j2x-2-1.html
字号:
<pre>
<code style="font-family: Courier New, Courier, monospace; font-size: 12">
/*
* BasicServlet.java
*
*/
package rickhightower.servlet;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.sql.*;
import java.sql.*;
import javax.naming.*;
/**
*
* @author Rick Hightower
*
* @version 1.0
* @web.servlet name="BasicServlet"
display-name="Basic Servlet"
load-on-startup="1"
* @web.servlet-init-param name="hi" value="Ant is cool!"
* @web.servlet-init-param name="bye" value="XDoc Rocks!"
* @web.resource-ref description="JDBC resource"
* name="jdbc/mydb"
* type="javax.sql.DataSource"
* auth="Container"
* @web.servlet-mapping url-pattern="/Basic/*"
* @web.servlet-mapping url-pattern="*.Basic"
* @web.servlet-mapping url-pattern="/BasicServlet"
*/
public class BasicServlet extends HttpServlet {
/** Initializes the servlet.
*/
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
/** Destroys the servlet.
*/
public void destroy() {
}
/** Processes requests for both HTTP GET and POST methods.
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, java.io.IOException {
ServletConfig config = this.getServletConfig();
String hi = config.getInitParameter("hi");
String bye = config.getInitParameter("bye");
try{
response.setContentType("text/html");
java.io.PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Basic Servlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1> bye:" + bye + "</h1>");
out.println("<h1> hi:" + hi + "</h1>");
getJdbcPool(out);
out.println("</body>");
out.println("</html>");
out.close();
}catch(Exception e){
throw new ServletException(e);
}
}
/** Handles the HTTP GET method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, java.io.IOException {
processRequest(request, response);
}
/** Handles the HTTP POST method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, java.io.IOException {
processRequest(request, response);
}
/** Returns a short description of the servlet.
*/
public String getServletInfo() {
return "XDoc Rules";
}
private void getJdbcPool(java.io.PrintWriter out)throws Exception{
out.println("</ br>");
Object obj = new InitialContext().
lookup("java:comp/env/jdbc/mydb");
DataSource pool = (DataSource)obj;
if (pool == null) return;
Connection connection = pool.getConnection();
out.println("<table>");
try{
ResultSet rs =
connection.getMetaData().
getTables(null,null,null,null);
while(rs.next()){
out.println("<table-row><table-cell>");
out.println(rs.getString("TABLE_NAME"));
}
}finally{
connection.close();
}
out.println("</table>");
out.println("</ br>");
}
}
</code>
</pre>
</p>
<p>当您把 XDoclet Ant 任务 <b>webdoclet</b> 应用于以上源文件时,您将获取以下部署描述符。
<pre>
<code style="font-family: Courier New, Courier, monospace; font-size: 12">
<?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>
...
<servlet>
<servlet-name>BasicServlet</servlet-name>
<display-name>Basic Servlet</display-name>
<servlet-class>rickhightower.servlet.BasicServlet</servlet-class>
<init-param>
<param-name>hi</param-name>
<param-value>Ant is cool!</param-value>
</init-param>
<init-param>
<param-name>bye</param-name>
<param-value>XDoc Rocks!</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>BasicServlet</servlet-name>
<url-pattern>/Basic/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>BasicServlet</servlet-name>
<url-pattern>*.Basic</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>BasicServlet</servlet-name>
<url-pattern>/BasicServlet</url-pattern>
</servlet-mapping>
...
<resource-ref>
<description>JDBC resource</description>
<res-ref-name>jdbc/mydb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
...
</web-app>
</code>
</pre>
</p>
<p>下面几页将循序渐进地解释什么标记对应于 Web 应用程序部署描述符的哪些部分。</p>
<br>
</font></td>
</tr>
</table>
<TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
<TR>
<TD background="../i/sw-gold.gif"><a border="0" href="index.html" onMouseOver="iOver('topmain'); iOver('bottommain'); self.status=mainblurb; return true;" onMouseOut="iOut('topmain'); iOut('bottommain'); self.status=''; return true;"><img alt="主菜单" border="0" src="../i/main.gif" name="bottommain"></a></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topsection'); iOver('bottomsection'); self.status=sectionblurb; return true;" onMouseOut="iOut('topsection'); iOut('bottomsection'); self.status=''; return true;" href="index2.html"><img alt="章节菜单" border="0" src="../i/section.gif" name="bottomsection"></a></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topfeedback'); iOver('bottomfeedback'); self.status=feedbackblurb; return true;" onMouseOut="iOut('topfeedback'); iOut('bottomfeedback'); self.status=''; return true;" href="ws-j2x-6-3.html"><img alt="给出此教程的反馈意见" border="0" src="../i/feedback.gif" name="bottomfeedback"></a></TD><TD width="100%" background="../i/sw-gold.gif"><img src="../i/c.gif"></TD><TD background="../i/sw-gold.gif"><img border="0" src="../i/xprevious.gif"></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topnext'); iOver('bottomnext'); self.status=nextblurb; return true;" onMouseOut="iOut('topnext'); iOut('bottomnext'); self.status=''; return true;" href="ws-j2x-2-2.html"><img alt="下页" border="0" src="../i/next.gif" name="bottomnext"></a></TD>
</TR>
<TR>
<TD width="150" height="1" bgcolor="#000000" colspan="6"><IMG alt="" height="1" width="150" src="../i/c.gif"></TD>
</TR>
</TABLE>
<TABLE width="100%" cellpadding="0" cellspacing="0" border="0">
<TR>
<TD width="100%">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td><img alt="" height="1" width="1" src="../i/c.gif"></td>
</tr>
<tr valign="top">
<td class="bbg" height="21"> <a class="mainlink" href="/developerWorks/cgi-bin/click.cgi?url=http://www-900.ibm.com/cn/ibm/index.shtml">关于 IBM</a><span class="divider"> | </span><a class="mainlink" href="/developerWorks/cgi-bin/click.cgi?url=http://www-900.ibm.com/cn/ibm/privacy/index.shtml">隐私条约</a><span class="divider"> | </span><a class="mainlink" href="/developerWorks/cgi-bin/click.cgi?url=http://www-900.ibm.com/cn/ibm/legal/index.shtml">法律条款</a><span class="divider"> | </span><a class="mainlink" href="/developerWorks/cgi-bin/click.cgi?url=http://www-900.ibm.com/cn/ibm/contact/index.shtml">联系 IBM</a></td>
</tr>
</table>
</TD>
</TR>
</TABLE>
<script src="//www.ibm.com/common/stats/stats.js" language="JavaScript1.2" type="text/javascript"></script>
<noscript>
<img border="0" alt="" height="1" width="1" src="//stats.www.ibm.com/rc/images/uc.GIF?R=noscript"></noscript>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -