正文

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页面,让用户填写会员的资料后,能够把这些资料保存到数据库中去                       

阅读(1698) | 评论(0)


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

评论

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