默然说话

一个异想天开的人做着异想天开的梦

牟勇ID:mouyong
61761次访问,排名1575好友4人,关注者5
我快乐,我存在
mouyong的文章
原创 108 篇
翻译 4 篇
转载 29 篇
评论 12 篇
默然的公告
如果要联系我,希望能说明来意,谢谢.

点击这里给我发消息

Google

最近评论
peigen:又~~~~为什么是又呢???
dcopperfield:顶下
gaoyunpeng:无意中进入到这个博客,很快就被里面的内容所吸引,感觉很有意思,不知道为什么会有这样的感觉,或许只是一种直觉上的吸引吧,一直在看博客里的文章,觉得很不错,天天等更新,哈哈,终于看到新的文章啦~
我会一直关注的~
mouyong:谢谢你的鼓励,我会更加努力。
了祝愿你实现自己的理想,达成自己的目标
wsspy007:牟老师,我发现你是我见过最好的老师了,为学生考虑最多,一切为学生着想,不知道牟老师还记得我么,张伟(无名小辈肯定你是忘记了),第一期跟杨大宇他们在一个班的,补考两次都没有及格,我现在不在昆明了,在胜利油田,这里一切都很好,一个月的薪金能顶得上昆明3-5个月的薪水,但是我不喜欢这份工作,钱固然多,但是从学校出来步入社会以后才发现,我还是应该走软件开发这条路,现在每天我只睡4-6个小时,工作12……
文章分类
收藏
    相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 教案:开发基于JSPServletJavaBean的网上交易系统-第2章 Servlet基础收藏

    新一篇: 教案:《开发基于JSPServletJavaBean的网上交易系统》教案—第3章 基于Servlet的会话跟踪(一) | 旧一篇: 教案:二学年JSPServletJavaBean第一章:JavaEE概述

      由于种种原因,部分内容被隐藏,请大家原谅。

    如果有什么问题,可以与我联系,我会尽快解答。

    如果你觉得这篇文章对你有用,请回贴,谢谢。

    授课教师:牟勇
    课时:100分钟
     
    本章技能目标
    n理解Servlet的生命周期
    n会使用Servlet处理Get,Post请求
    n会使用Servlet处理页面转向
    n会配置web.xml文件
    本章重点
    nServet处理GET,POST请求
    nServlet在web.xml文件中的配置
    本章难点
    nServlet处理页面的转向
    nServlet的生命周期
    本章工作任务
    n使用Servlet实现E-Book电子书店用户验证
    如果用户名或密码错误,则给出提示
    如果输入数据正确,则显示登录成功
    l   整章授课思路
    n本章依次课讲解五个问题:Servlet定义,Servlet的创建,Servlet生命周期,Servlet部署和转向控制。
    nServlet的定义:使用JSP技术编写动态网页,提出在JSP技术出现之前如何实现动态网页的编写?从而引入Servlet,并说明Servlet是一个运行的服务器端的Java程序。强调Servlet的作用是处理客户端请求并作出响应。
    nServlet的创建:首先创建一个前台页面HTML文件或者JSP文件,并把FORM表单的action属性指向一个Servlet,然后创建该Servlet,用以接收前台页面传入的请求值,并介绍Servlet的方法:doGet(),doPost()。
    nServlet生命周期:说明Servlet的实例化-初始化-服务-销毁的过程。
    nServlet部署:Servlet与JSP一样,都需要部署到容器(在本书中指tomcat)上才能运行。这就要遵循容器的特定的规定:web.xml文件的配置要求。说明各种元素的配置和作用。
    n转向控制:主要讲解重定向以及转发的方式和它们的区别,重定向丢失数据,而转发不丢失,是服务器端行为。
    Get请求和Post请求有什么差异?
    JavaEE的体系结构分几层?
    如何理解HTTP协议?
    Servlet与JSP之间的关系?
    页面跳转有哪几种方式?
    如何理解Servlet的生命周期?
    Servlet的定义:[15分钟]
    为什么要需要Servlet
    提问:在JSP技术出现之前如何编写服务器动态网页?
    答案:使用Servlet。
    什么是Servlet
    定义:Servlet 是一个 Java程序,是在服务器上运行以处理客户端请求并做出响应的程序
    初识Servlet

    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    public class HelloServlet    extends HttpServlet {
          public void doGet(HttpServletRequest request,    
                                         HttpServletResponse    response)   
                                         throws ServletException, IOException {            response.setContentType("text/html;charset=gb2312");
           PrintWriter out = response.getWriter();
           out.println("<html>");
           out.println(" <head><title>Servlet</title></head>");
           out.println(" <body>");
           out.println("你好,欢迎来到Servlet世界");
           out.println(" </body>");
           out.println("</html>");
           out.close();
         }
    }

    教员重点说明写一个servlet需要导入的包,继承的类,以及doGet方法的一般写法思路。
    Servlet与JSP之间的关系
    JSP转译后的.java文件与Servlet的处理方式一样
    Servlet是JSP技术的基础
    Servlet的创建[15分钟]
    前台页面的创建:
    FORM表单的编写
     
    后台Servlet的创建:
    使用Eclipse的Servlet向导创建Servlet代码模板
    根据表单提交方法,确定接收方法
    接收请求数据、处理数据、返回响应页面
    教员演示在Eclipse中创建Servlet的步骤
    Servlet编程模式
    处理get和post请求(强调doGet()和doPost()方法)

    import java.io.IOException;
    import javax.servlet.*;
    import javax.servlet.http.*;
     
    public class HelloServlet extends HttpServlet {
         public void doGet(HttpServletRequest request, HttpServletResponse
                                         response) throws ServletException, IOException {
           //doGet方法体内容
         }   
         public void doPost(HttpServletRequest request, HttpServletResponse 
                                          response) throws ServletException, IOException {
           //doPost方法体内容
         }
    }

    如何接收请求参数(强调getParameter方法)

    String userName = request.getParameter("userName");
    String userPass = request.getParameter("userPass");
     

    根据结果,转向其他页面或资源(强调response.sendRedirect()方法)

    if (userName == "accp" && userPass == "123")
           response.sendRedirect("success.jsp");
    else
           response.sendRedirect("failure.jsp");

    教员应详细说明上述代码
    Servlet的生命周期[15分钟]
    通过上图说明一次请求响应过程中,Servlet如何诞生的。
    教员应按顺序详细说明Servlet生命周期,以及生命周期过程中,Servlet将被调用的方法。注意强调以下三点:
    Servlet各方法的调用均由容器调用,我们写Servlet的程序员并不负责Servlet方法的调用,所以在写一个Servlet时,我们只需要考虑Servlet“要做什么”,而不需要去考虑“何时做”。
    当客户提交请求到容器时,容器将先调用了service方法,而service方法再根据客户端请求调用相应的doGet方法或doPost方法,所以,一般情况下,不要重写service方法。
    Servlet的init()方法在一次生命周期中只会被调用一次,而service方法会被多次调用。
    生命周期相关方法

    public class HelloServlet extends HttpServlet {
               public void init() throws ServletException {
              System.out.println("初始化时第一次调用!");
               }             
              public void doGet(HttpServletRequest request, HttpServletResponse
                                             response)   throws ServletException, IOException {
              PrintWriter out=response.getWriter();      
              out.println("<HTML>");
              out.println(" <HEAD><TITLE>HelloServlet</TITLE></HEAD>");
              out.println(" <BODY>");
              out.println("你好!ACCP "+new Date());
              out.println(" </BODY></HTML>");  
              } 
             public void doPost(HttpServletRequest request, HttpServletResponse
                                              response) throws ServletException, IOException {
               doGet(request,response);
             }   
             public void destroy() {System.out.println(“释放资源!"); }
    }
     

    教员重点说明各方法的用处即可。
    程序演示:
    演示示例3:HelloServlet,重点说明Servlet的整个生命周期
    现场编程:
    请使用Servlet编写在页面显示“你好, ACCP!”的程序代码
    教员可以请一到二位学员来完成编程。
    常见错误:
    如果程序运行结果如下:
    原因:中文乱码
    解决方案:根据具体情况,选择以下的三种方案之一进行乱码转换
    方案一:使用response.setContentType(“text/html;charset=GBK”)

    public class HelloServlet extends HttpServlet {
                        
       public void doGet(HttpServletRequest request, HttpServletResponse
                                      response)   throws ServletException, IOException {
           response.setContentType("text/html;charset=GBK");//设定中文
           PrintWriter out = response.getWriter(); //使用输出流,输出信息
       }      
    }

           方案二:使用request.setCharacterEncoding()

    public class HelloServlet extends HttpServlet {
                        
       public void doGet(HttpServletRequest request, HttpServletResponse
                                      response)   throws ServletException, IOException {
           request.setCharacterEncoding(“GBK”);
           response.setContentType("text/html;charset=GBK");//设定中文
           PrintWriter out = response.getWriter(); //使用输出流,输出信息
       }      
    }

           方案三:使用new String(),重构字符串编码

    public class HelloServlet extends HttpServlet {
                        
       public void doGet(HttpServletRequest request, HttpServletResponse
                                      response)   throws ServletException, IOException {
           request.setCharacterEncoding(“GBK”);
           response.setContentType("text/html;charset=GBK");//设定中文
           String name=new String(request.getParameter(“name”).getByte(“ISO-8859-1”));
           PrintWriter out = response.getWriter(); //使用输出流,输出信息
       }      
    }

    Servlet部署[25分钟]
    文件结构:
    Web应用下必须存在WEB-INF文件夹,里面必须有一个web.xml文件,它是一个配置文件,描述所有关于Web应用的信息都存放在这个文件中。
    第三方的jar文件存放在lib下面。
    Servlet,JavaBean等的class文件存放在classes下面
    web.xml文件中配置Servlet

    <web-app>
    <servlet>
        <servlet-name> HelloServlet </servlet-name>
        <servlet-class> y2javaee.sg.ch02.HelloServlet </servlet-class>
    </servlet>
     
    <servlet-mapping>
        <servlet-name> HelloServlet </servlet-name>
        <url-pattern> /HelloServlet </url-pattern>
    </servlet-mapping>
    </web-app>

    如何访问Servlet
    教员应详细介绍servlet的配置文件web.xml里两个标记的意义。
    常见错误
    web.xml文件常见错误
    servlet-mapping中的name与servlet-name中的name不一致
    添加多个mapping映射
    转向控制[10分钟]
    数据的传递方式
    从页面到Servlet
    request.getParameter(“param”);
    从Servlet到Servlet或JSP页面
    RequestDispatcher对象的forward()方法
    JSP的forward动作实质是RequestDispatcher技术

    String pass = request.getParameter("password");
    String user = request.getParameter("loginName");
     
    if (user.equals("accp") && pass.equals("accp")) {       request.setAttribute("loginname", user);
           RequestDispatcher dispatcher =                
                         request.getRequestDispatcher("/ch02/ok.jsp");
           dispatcher.forward(request, response);
    }
    else { response.sendRedirect("/ch02/register.jsp");           }

    如何理解Servlet程序?Servlet的作用是什么?
    request、response对象有哪些常用方法?
    实现页面跳转有几种方式?它们之间有哪些区别?
    如何理解Servlet的生命周期?
    web.xml文件在Web项目中的作用是什么?
    servlet的生命周期
    如何获得JSP页面的请求参数
    跳转页面的两种方式
     暂无
     暂无
     习题1:48页至49页选择题
     习题2:49页第1,2,3,4题
     习题3:预习第三章,试做课后的选择题

    发表于 @ 2008年05月04日 14:33:32|评论(loading...)|编辑

    新一篇: 教案:《开发基于JSPServletJavaBean的网上交易系统》教案—第3章 基于Servlet的会话跟踪(一) | 旧一篇: 教案:二学年JSPServletJavaBean第一章:JavaEE概述

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 默然