⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 right10_1_8.htm

📁 清华大学JAVA教程
💻 HTM
字号:
<html><head><title>JAVA编程语言</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><link rel="stylesheet" href="../../../css/text.css" type="text/css"></head><body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" ><table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">  <tr>     <td valign="top">       <table width="90%" border="0" cellspacing="0" cellpadding="0" align="center" bgcolor="#FFFFFF">        <tr>          <td valign="top">             <p class="pt9-black">   Resin自带一个Servlet Runner和HTTP Server,因此要构建一个简单的Web环境,光有Resin已经足够了,不需要额外的支持软件。Resin不需要安装,解压之后即可使用。<br>              <br>                Resin目录下有几个子目录,bin目录存放的是可执行文件,要启动HTTP Server和Servlet Runner只需要分别点击其中的httpd.exe和srun.exe即可,启动后会出现四个窗口,分别对应HTTP               Server的标准输出,启/停控制和Servlet Runner的标准输出,启/停控制。conf目录下存放的是Resin Servlet               Runner的配置文件,这是配置整个Web环境的关键,包括Servlet的配置和后面要用到的JSP的配置。doc目录是默认的发布目录,即Resin自带的HTTP               Server是以这个目录为根目录的。<br>              <br>                下面我们以一个最简单的HelloWorld的例子,来讲解如何配置Resin,使其能运行Servlet程序,同时也做为Servlet编写的入门。程序如下:<br>                 <font color="339900">//HelloServlet.java</font><br>                 import java.io.*;<br>                 import java.util.*;<br>                 import javax.servlet.http.*;<br>                 import javax.servlet.*;<br>                 <font color="339900">//导入必要的包</font><br>                 public class HelloServlet extends HttpServlet { <br>                        <font color="339900">//所有Servlet必须从HttpServlet派生</font><br>                   public void doGet (HttpServletRequest req, HttpServletResponse               res) <br>                   throws ServletException, IOException <br>                   <font color="339900">//doGet()是这个Servlet的核心,真正处理请求的地方</font><br>                 {<br>                 res.setContentType(&quot;text/html&quot;); <br>                   <font color="339900">//设置相应的类型为text/html</font><br>                 PrintWriter pw = res.getWriter(); <br>                   <font color="339900">//从HttpServletResponse得到输出流</font></p>            <p> <span class="pt9-black">   pw.println(&quot;&lt;!DOCTYPE HTML               PUBLIC \&quot;-//W3C//DTD HTML 4.0 Transitional//EN\&quot;&gt;&quot;);<br>                 pw.println(&quot;&lt;head&gt;&quot;);<br>                 pw.println(&quot;&lt;meta http-equiv=\&quot;Content-Type\&quot;               content=\&quot;text/html; charset=ISO-8859-1\&quot;&gt;&quot;);<br>                 pw.println(&quot;&lt;!-- The Servlet expression tags interpolate               script variables into the HTML --&gt;&quot;);<br>                 pw.println(&quot;&lt;title&gt;Hello, world!&lt;/title&gt;&quot;);<br>                 pw.println(&quot;&lt;/head&gt;&quot;);<br>                 pw.println(&quot;&lt;body bgcolor=#cc99dd&gt;&quot;);<br>                 pw.println(&quot;&lt;h1&gt;Hello, world!&lt;/h1&gt;&quot;);<br>                 pw.println(&quot;&lt;/body&gt;&quot;);<br>                 <font color="339900">//上面的语句都是向客户端打印HTML文本</font><br>                 pw.close(); <br>                 <font color="339900">//关闭HttpServletResponse,使Web服务器知道相应结束</font><br>                }<br>                public HelloServlet() {} <font color="339900">//构造函数,可以不要</font><br>               }<br>              <br>                这是最简单的一个Servlet程序,整个类从HttpServlet派生,就跟Applet一样,这个派生关系是必须的。这个Servlet必须实现doGet()方法(因为它是作为静态页面通过地址访问的,这种方式在HTTP中称为GET请求,在后面还会有更具体的讲解),这是这个Servlet真正处理请求的地方,是整个Servlet的主体,就跟线程体的run()方法一样。doGet()有两个参数HttpServletRequest               req和 HttpServletResponse res。HttpServletRequest包含了客户请求的各种信息,HttpServletResponse则包装了服务器响应,主要处理对客户机的输出。这个程序是很简单的,如果对网络编程和HTML有一些概念的话,很容易就应该能理解。<br>              <br>                通过javac对以上程序进行编译,我们可以得到HelloServlet.class,下面我们就通过配置Resin来运行这个Servlet。前面说过如果你没有修改过Resin的配置文件的话,doc是Resin默认的发布目录。发布目录下的WEB_INF/classes是Resin默认的Classpath,读者只要把自己的Servlet拷贝到该目录下,Resin就能识别,当然只要拷贝的有效的系统的或用户的Classpath下,Resin都是能够找到的。我们把HelloServlet.class拷贝到WEB_INF/classes目录下。接下来就需要修改conf目录下的resin.conf文件,来配置我们的Servlet。读者可以使用任何一种自己所熟悉的文本编辑器来打开该配置文件。找到&lt;web-app               id='/'&gt;,在它和 &lt;/web-app&gt;之间任何地方添加以下的配置语句(可以参考已有的语句)<br>                 &lt;servlet-mapping url-pattern='Hello' servlet-name='Hello'               /&gt;<br>                 &lt;servlet servlet-name='Hello'<br>                  servlet-class='HelloServlet' &gt;<br>                 &lt;/servlet&gt;<br>              <br>                这样当客户端产生/Hello请求的时候,Resin就能把这个请求定向到HelloServlet上,该Servlet就能正常运行了,我们也可以采用以下的配置语句<br>                 &lt;servlet-mapping url-pattern='Hello' servlet-name='HelloServlet'               /&gt;<br>              <br>                这种情况下,没有对Servlet的名字进行映射,系统会默认的使用servlet-name作为servlet-class进行类的查找,所以servlet-name必须填写正确的类名,而不能是随意的名字。关于Resin更多的配置信息,有兴趣的读者可以参考Resin的帮助文档,这里就不再赘述了。<br>              <br>                下面我们启动Http Server和Servlet Runner(通过双击bin下的httpd.exe和srun.exe)。这样我们就可以通过浏览器访问这个Servlet了。打开浏览器,比如IE,在地址栏键入http://localhost:8080/Hello,我们可以打开如下的一个网页:<br>              </span><img src="../../../images/tu/ch10/10_1_8.gif" width="440" height="314"><br>              <br>               <span class="pt9-black">通过查看源码,我们可以得到如下的结果<br>                &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;<br>                &lt;head&gt;<br>                &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html;               charset=ISO-8859-1&quot;&gt;<br>                &lt;!-- The Servlet expression tags interpolate script variables               into the HTML --&gt;<br>                &lt;title&gt;Hello, world!&lt;/title&gt;<br>                &lt;/head&gt;<br>                &lt;body bgcolor=#cc99dd&gt;<br>                &lt;h1&gt;Hello, world!&lt;/h1&gt;<br>                &lt;/body&gt;<br>              <br>                很显然这些文本正是我们在Servlet中向客户端所打印的信息,在Http头部content=text/html也是我们在程序中所设置的。<br>              <br>                通过这样一个简单的HelloWorld的程序,读者对Servlet的工作原理的基本配置方法应该有了一个大概的了解,如果读者对这个例子还有疑问,务必搞清楚后再继续学习。</span></p>            </td>        </tr>      </table>    </td>  </tr></table></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -