代码改变世界

[原]Java web学习系列之 Java web开发中的servlet类

2012-02-28 00:47  雪夜&流星  阅读(449)  评论(0编辑  收藏  举报

 到今天为止Servlet、Hibernate、Struts、Spring及Struts-Hibernate整合、Spring-Hibernate整合和Struts-Spring-Hibernate整合(SSH)全部学习完了,在这里把这些知识做一个回顾。

     Servlet作为一个作为类来使用,必须在资源文件下面新建。当新建一个Servlet时就对应在WEB—INF文件夹下面的web.xml中创建一个Servlet和servlet-mapping(Servlet映射路径)。比如新建一个Servlet,对应的web.xml中的名称和映射路径:

        <!-- 新建Servlet  -->

       <servlet>
                 <description>
                              This is the description of my J2EE component
                 </description>
                 <display-name>
                             This is the display name of my J2EE component
                 </display-name>

                  <!-- Servlet类的名称及包名  -->
                 <servlet-name>ClarckServlet</servlet-name>
                 <servlet-class>org.clarck.demo.MyServlet</servlet-class>
       </servlet>

                  <!-- Servlet类映射路径  -->

      <servlet-mapping>
                <servlet-name>ClarckServlet</servlet-name>
                <url-pattern>/clarck</url-pattern>
    </servlet-mapping>

     在Servlet中使用映射路径是为了更好的隐藏文件的类名,提高工程的安全性。

     在创建Servlet的同时包含了init()、destroy()、service() 等方法,其中init()方法用来初始化Servlet类,而destroy()回收机制,能够更好的回收和销毁过时资源。

         public MyServlet() {
                      super();
          }

                       <!--销毁对象 -->  

      public void destroy() {
                  super.destroy();
                System.out.println("销毁");
        }

    public void doGet(HttpServletRequest request, HttpServletResponse response)
                 throws ServletException, IOException {

                      response.setContentType("text/html");

                           <!--得到上下文请求对象 -->  
                     String name = request.getParameter("name");
                     System.out.println(name);

                           <!--将请求响应对象封装到request中去 -->  
                     request.setAttribute("name", name);

                          <!--将请求响应对象转发到"show.jsp"页面去 -->  
                    request.getRequestDispatcher("show.jsp").forward(request, response);
      }

                      

    public void doPost(HttpServletRequest request, HttpServletResponse response)
              throws ServletException, IOException {

               doGet(request, response);
     }

                    <!--初始化对象 -->  

      public void init() throws ServletException {
              System.out.println("初始化");
    }

注释:Servlet中不存在session隐式对象,但是存在HttpSession,功能和session相同,都是用来保存对象。分三步来完成:

       获得请求对象   String name=request.getParemeter("name");

       创建session对象  HttpSession  session=request.getSession();

       将对象保存到session中去  session.setAttribute("name",name);

 Servlet的目的是实现MVC模式中的控制层的功能。

 

写于2010-8-23 23:25 笔记。