正文

javaWeb笔记(2)2008-04-01 19:57:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/ghlat520/33776.html

分享到:

第二章 Servlet使用入门
         在这一章里面我们将要学习以下几点内容:
           1:CGI与Servlet的区别
           2:Servlet体系结构
           3:Servlet的基础知识
           4:Servlet的输出
           5:Servlet的生命周期
           6:HttpServletResponse与HttpServletRequest几个重要方法


                           CGI与Servlet的区别
          1)在最早期的Web应用程序主要是CGI(Common GateWay Interface 通用网关接口)。
          2)这类Web应用程序是使用如Perl这样的语言来编写的。
          3)CGI有个致命的缺点,就是对每一个客户端,必须创建一个新的实例,这将占用大量的内存
          4)为了解决这个问题,Servlet出现了。
          5)Servlet是一个用Java编写的类,在服务器上运行,处理客户端的请求,并把结果放给客户端。
          6)对于每一个客户端的请求,只需要创建一个Servlet的实例。从而大大的节省了内存

     Servlet体系结构
               客户端:
                        客户端----------->Web服务器----->Web容器---->Servlet                     
                               http请求    
               服务器端:
                       Servlet------->Web容器----->Web服务器---->客户端                    
                          
            
              Servlet的基础知识
          1)要编写一个Servlet,一般继承自HttpServlet抽像类。所以一般要导入包javax.servlet.*与javax.servlet.http.*;
          2)自定义的Servlet一般要重写doGet()方法和doPost()方法
          3)doGet方法用来处理客户端通过Get方法发出的请求
                public void doGet(HttpServletRequest request, HttpServletResponse response) throws
                ServletException, IOException
          4)doPost()方法用来处理客户端通过Post方法发出的请求
  public void doPost(HttpServletRequest request, HttpServletResponse response) throws
                ServletException, IOException
          5)request参数用来表示客户端的请求,response参数用来服务器对客户端的响应
          6)为了让一个Serlvet能够处理Get请求与Post请求。一般会在doPost的方法里面写上
              doGet(request, response)表示把所有的请求转化成为Get请求

    Servlet的输出
                  1)Servlet可以通过两种方法来输出运算的结果
                     A:通过System.out.Print方法。此方法会把结果输出到Cmd中,也就是TomCat中。
                     B:通过response参数的getWriter()方法得到一个PrintWriter对像进行输出,
                       此输出会把计算结果输出到IE上,一般用此方法
                                 PrintWriter out = response.getWriter();
                                 out.println
             
              
                              Servlet的生命周期
              1)Servlet的生命周期是指从一个Servle的创建开始到消亡的全过程
              2)Servlet的生命周期各阶段如下:
                  A:实例化:也就是创建一个Servlet类的实例
                  B:初始化:向window申请资源。此时会自动去执行Init方法
                  C:服务:去不断地接受客户端的请求,并做出响应
                  D:释放:把以前分配的资源进行归还给操作系统,此时会自动执行destroy方法
               举例:
                        做一个servlet计数器,用来输出servlet被调用了多少次
                 步骤:
                   1)定义一个全局变量
                   2)在Init中赋初值为0
                   3)在doGet把变量加1, 并输出

                提问:
                  1)同时打开另外一个IE浏览器,做一个新的客户端,讨论计数器会不会清零
                    结论:不管有多少个客户端,都只有一份实例。
                  2)讨论什么时候计数器才会清零,关闭TomCat容器
                    结论:说明Web容器一旦关闭,则容器里面的servlet也就会消亡


     HttpServletResponse与HttpServletRequest几个重要方法                          
       1:HttpServletResponse
                        A:response.setContentType("编码")
                          设置向客户端输出的文本的编码,一般设为"text/html; charset=GBK"
                             response.setContentType("text/html; charset=GBK");
                           如果不设置,可能会出现乱码
                        B:PrintWriter out = response.getWriter();
                           产生一个PrintWriter对像,此对像能够把信息输入到网页中去
                           此对像不仅可以输出普通字符,还可以输出html标记
                           在不使用此对像时,应该关闭该对像。out.close();
                        C:response.sendRedirect("Index.html");
                            使页面进行跳转
                     2:HttpServletRequest
                          A:request.getParameter("变量名")
                          B:如果接受中文再输出会是乱码,为了解决这个问题,可以在接受之间加上
                            request.setCharacterEncoding("GBK");
                            request.getParameter("变量名")
                            可以得到客户端以Post或Get方法提交过来的变量

                  
                      举例:        
   1:创建一个登录的Html页面,通过Post提交到Servlet中,通过Servlet来判断数据库中用户名是否正确,
                          如果正确则跳到主页面,否则打印错误,并提供"返回"超链接
                        2:编写一个用于注册会员的html页面,让用户填写会员的资料后,能够把这些资料保存到数据库中去
                       

阅读(1585) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册