zoukankan      html  css  js  c++  java
  • 1 Servlet 简介

    1 Servlet是sun公司提供的一门用于开发动态web资源的技术。用户若用Java技术开发一个动态web资源或者网页,需要完成以下2个步骤:
    ① 编写一个Java类,实现servlet接口
    ② 把开发好的Java类部署到web服务器中

    2 Servlet - Java 小程序

    ① servlet 就是java程序(java 类)

    ② servlet 遵循servlet 开发规范

    ③ servlet是运行在服务器端

    ④ 功能强大,几乎可以完成网站所有的需求

    ⑤ 学习jsp的基础

     

     

    3 Servlet 和 Tomcat 在网络中的位置

    4 Servlet 快速入门案例

    Servlet 开发有三种方式

    ① 实现servlet 接口

    ② 通过继承GenericServlet

    ③ 通过继承HttpServlet

     

    ① 实现servlet 接口 

    • 建立 web应用 TestWeb
    • 在 TestWeb 下建立 WEB-INF/web.xml
    • 在 WEB-INF 下建立 classes目录(servlet就要在这开发),建立lib目录
    • 实现 Servlet接口来开发 Servelt  编写FirstServlet.java 类然后编译
     1 import javax.servlet.*;
     2 import javax.servlet.http.*;
     3 
     4 public class FirstServlet implements Servlet
     5 {
     6     //该函数用于初始化Servlet,把Servlet加载到内存,整个Servlet生命周期只会被调用一次
     7     public void init(ServletConfig config) throws ServletException
     8     {
     9         
    10     }
    11     
    12     //获取ServletConfig对象
    13     public ServletConfig getServletConfig()
    14     {
    15         return null;
    16     }
    17     
    18     //该函数是服务函数,业务逻辑在这个函数实现
    19     public void service(ServletRequest request, ServletResponse response)
    20     {
    21         PrintWriter out = response.getWriter();
    22         
    23         out.println("Hello Servlet"+" "+ new java.util.Date());
    24     }
    25     
    26     //返回Servlet配置信息
    27     public String getServletInfo()
    28     {
    29         return null;
    30     }
    31     
    32     //destroy()方法只会被调用一次,在 Servlet 生命周期结束时被调用
    33     public void destroy()
    34     {
    35         
    36     }
    37 }

      

      根据 Servlet 规范部署 Servlet,打开WEB-INF/web.xml 添加如下代码部署 FirstServlet:

     1   <!--Deploys the servlet to here -->
     2     <servlet>
     3         <!-- 自己定义 -->
     4         <servlet-name>FirstServlet</servlet-name>
     5         <!--FirstServlet所在项目的全路径(非物理路径,而是以项目WEB-INFclasses为根目录开始计算) -->
     6         <servlet-class>FirstServlet</servlet-class>
     7     </servlet>
     8     
     9     <servlet-mapping>
    10         <!-- 与上面的servlet-name保持一致 -->
    11         <servlet-name>FirstServlet</servlet-name>
    12         <!-- 外部访问的url: 自己定义 -->
    13         <url-pattern>/First</url-pattern>
    14     </servlet-mapping>
    15     

      

      重启Tomcat,浏览器访问FirstServlet,输入的地址为:http://localhost:8080/TestWeb/First,最后的First就是web.xml 里配置的,可以随意定义。

      

      ③ 继承HttpServlet

       通过继承HttpServlet 开发 Servlet,需要重写 doGet,doPost方法。

      首先编写一个Login.html 用于访问SecondServlet,Login.html必须放在 LatinyWebWEB-INF下

    <html>
        <body>
            <form action="/TestWeb/Second" method="post">
            user:<input type="text" name="username"/>
            <input type="submit" value="login"/>
        </body>
    </html>

      

      然后编写SecondServlet.java 类,并在 web.xml配置外部访问的 url。

     1 public class SecondServlet extends HttpServlet
     2 {
     3     //在HttpServlet中,设计者对post与get提交分别处理
     4     //doGet()与doPost()调用Servlet的service方法
     5     protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
     6     {
     7         res.getWriter().println("This is doGet method!");
     8     }
     9     
    10     protected void doPost(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException
    11     {
    12         res.getWriter().println("This is doPost method!");
    13         res.getWriter().println(req.getParameter("username")+" visits.");
    14     }
    15 }

      

      浏览器访问

      

      

      

      Servlet生命周期

      

      

    Servlet生命周期简述

    ① 当Servlet第一次被调用时,首先会触发init 函数,该函数会把servlet实例加载到内存,它在整个生命周期只会被调用一次。

    ② 然后Servlet 的 service函数会被调用,后台业务逻辑都在此实现

    ③  第二次及以后调用Servlet,都是直接调用service函数。

    ④ 当web服务器停止或者reload时,tomcat关闭或者关机时,都会调用Servlet的destory函数销毁Servlet对象

    Servlet 运行过程

    Serlvet程序是由web服务器调用,web服务器接收到客户端请求后:

    ① Web服务器首先检查 Serlvet是否创建并且装载到内存,如果是则到第2步,如果未创建装载Serlvet 实例,则创建Servlet实例对象并且调用init函数装载该Servlet实例对象到内存中。

    ② 创建一个用于封装http请求消息的 HttpServletRequest 对象和一个代表http响应消息的 HttpServletResponse 对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。

    ③ Tomcat重启或者关闭时;reload 该webapp时;关闭电脑时;都会调用destroy()方法。

      

      

      

  • 相关阅读:
    前端开发在手机UC浏览器上遇到的坑
    前端开发在uc浏览器上遇到的坑
    object-fit 解决图片指定大小被压缩问题
    前端新手需要注意的几个问题
    利用apache搭建本地环境
    有简历,为何还要自我介绍?
    移动端项目总结
    JavaScript MVC框架PK:Angular、Backbone、CanJS与Ember(转载)
    Net Core 控制台程序使用Nlog 输出到log文件
    net core服务器缺包,如何在线安装?
  • 原文地址:https://www.cnblogs.com/Latiny/p/8361628.html
Copyright © 2011-2022 走看看