友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

JSP入门教程(DOC格式)-第15章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






我们提供了批处理文件编译这些 java 代码,双击 WEB…INF/src/pile。bat 即 

可对这三个 java 文件进行编译,编译后的 class 文件自动输出到 

WEB…INF/classes/对应的目录下。  



注意  



hsqldb 的数据库文件我们已经准备妥当,但我们也提供为数据库重新导入数据 

的脚本,执行WEB…INF/sql/run。bat 会执行 import。sql 中的 sql 脚本, 

sqltool。rc 中是连接数据库的配置。  



。java; 。sql; 。bat; 。rc 文件都可以用记事本打开查看,修改内容后直接保存 

即可。  



                                    57 / 148  


…………………………………………………………Page 58……………………………………………………………

                                     



                    第 6 章 贴近 servlet  



注意  



仅仅使用 jsp 做项目是难以想像的。难以维护,难以调试,难以分层设计,难以 

统一管理。现在我们要从 jsp 跨入 servlet 领域,从而得到更多的功能。因为从 

这里开始将进入中级部分,只想随便玩玩 jsp 的朋友可以到此为止了,期望以此 

为生的朋友请继续。  



如果你不满足以下任一条件,请继续阅读,否则请跳过此后的部分,进入下一章: 

第 7 章 使用 filter 过滤请求。  



   1。  了解 servlet。  

   2。  了解 servlet 与 jsp 的关系。  



6。1。 servlet 是什么  



sun 公司给自己产品定的名称都十分诡异,最早听说有 applet,是Application  

let (小应用程序)的意思。在jsp 中写的 java 代码叫做 scriptlet,Script let 

 (小脚本程序)。现在又有servlet,Server let (小服务程序)。  



简单来说,servlet 就是运行在服务器上的小程序。  



让我们通过一个简单示例来了解 servlet 是如何开发和运作的,把 

lingo…sample/06…01 目录复制到tomcat 的webapps 目录下,启动服务器并访问 

http://localhost:8080/06…01/,会看到如下效果。  



                                                      



页面效果非常简单,只是显示“hello”这个单词。为了让 servlet 实现这个效 

果,我们需要进行以下步骤。  



   1。  写一个名叫 HelloServlet。java 的类,编译成 class 放到 

      WEB…INF/classes 下。  



      记得要建立与包名对应的目录结构,比如 package anni;就对应着 

      WEB…INF/classes/anni/,因为需要引用 javax。servlet 包下的类,编译 



                                  58 / 148  


…………………………………………………………Page 59……………………………………………………………

                                        



    时要将tomcat 的mon/lib 目录下的servlet…api。jar 加入 classpath, 

    具体编译命令可参考 lingo…sample/06…01/WEB…INF/src/pile。bat。  



    package anni;  

      

    import java。io。IOException;  

    import java。io。PrintWriter;  

    import javax。servlet。ServletException;  

    import javax。servlet。http。HttpServlet;  

    import javax。servlet。http。HttpServletRequest;  

    import javax。servlet。http。HttpServletResponse;  

      

    public class HelloServlet extends HttpServlet {  

      

        public void doGet(HttpServletRequest request;  

    HttpServletResponse response)  

            throws ServletException; IOException {  

      

            PrintWriter out = response。getWriter();  

            out。println(〃hello〃);  

      

        }  

      

    }    



    HelloServlet 中实现的功能很简单,在 doGet()方法中先取得 response 

     (响应)的输出流,再向里面写入“hello”。  



2。  修改 WEB…INF 目录下web。xml,添加HelloServlet 的配置,让它负责处 

    理路径是 http://localhost:8080/06…01/的请求。  



      

      

      

          

            HelloServlet  

            anni。HelloServlet  

          

      

          



                                    59 / 148  


…………………………………………………………Page 60……………………………………………………………

                                    



              HelloServlet  

              /  

            

        

         



      只要注意 servlet 和 servlet…mapping 两部分就可以了。  



         a。  servlet 标签中定义一个了名字叫做 HelloServlet 的 servlet。  



            这个 HelloServlet 对应的 class 是 anni。HelloServlet,请注意 

            这里的 class 要写全名。  



         b。  servlet…mapping 标签则是把刚刚定义的HelloServlet 映射到“/” 

            这个请求路径上。  



            请回忆我们之前讲过的 第 3。4。1 节  “绝对路径与相对路径” 中 

            的部分,这里的“/”就代表当前应用的根路径,既 

            http://localhost:8080/06…01/,凡是有客户对此路径发出请求, 

            就会交由 HelloServlet 处理。  



例子在 lingo…sample/06…01 目录下,将整个目录放入tomcat 的webapps 即可使 

用。对应的源代码放在 lingo…sample/06…01/WEB…INF/src 目录下,要放到tomcat 

的webapps 目录下,才能使用pile。bat 脚本进行编译。  



6。2。 jsp 与 servlet 的关系  



通过上面的例子,我们可以看到 servlet 与 jsp 的功能差不多,都是处理请求并 

返回响应。甚至在操作时使用到的变量都极为相似,request,response,out 

这些在我们使用 jsp 的时候也遇到过。不同的时是,jsp 中这些变量拿来即用, 

servlet 中还要通过参数来获得。  



jsp 和 servlet 如此相似,它们之间难道有什么联系吗?为什么 sun 创造了两种 

功能相似的东西呢?  



其实 jsp 就是 servlet,你所写的 jsp 页面最终都会被服务器转换成 servlet。 

为了验证这一说法,我们编写一个效果与 HelloServlet 完全一样的 hello。jsp, 

它的内容就只有这么点儿。  



hello   



访问 http://localhost:8080/06…01/hello。jsp,会看到与刚刚一样的效果。  



                                 60 / 148  


…………………………………………………………Page 61……………………………………………………………

                                                                   



                                                                                                 



现在打开 tomcat 的work 目录。  



                                                                                              



在 Catalina/localhost/06…01/org/apache/jsp 目录下,可以看到两个文件,
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!