zoukankan      html  css  js  c++  java
  • Servlet基础/概念

    Servlet Filter Listener是JavaWeb的三大组件。

    Servlet原理

    概念:是一个Java类,没有主方法,运行在服务器端的小程序,由Tomcat执行。

    本质:是一个接口,定义了Java类被服务器识别的规则。我们需要自定义类,实现Servlet接口,重写方法。

    快速入门(实现一个Servlet类):

    1. 创建JavaEE模块;

    2. 定义一个类,实现Servlet接口,重写方法

    3. 配置Servlet,在WEB-INF中的web.xml文件中

      注意,放在<web-app>标签内

      <!--配置servlet-->
      <!--给servlet起一个名-->
      <servlet>
          <servlet-name>demo1</servlet-name>
          <servlet-class>baidu.servlet.ServletDemo1</servlet-class>
      </servlet>
      <!--servlet的映射路径-->
      <servlet-mapping>
          <servlet-name>demo1</servlet-name>
          <url-pattern>/demo1</url-pattern>
      </servlet-mapping>
      

    Tomcat执行原理(Tomcat要访问Servlet的实现类,用到反射机制):

    1. 服务器收到客户端的请求,解析URL,获取访问Servlet的资源路径;
    2. 查找web.xml文件,找到对应的全类名;
    3. 将全类名对应的字节码文件加载进内存,并创建其对象;
    4. 调用其中的方法。

    Servlet方法

    五个方法:

    1. void init() 初始化方法,服务器开启时执行,加载资源
    2. void destroy() 销毁方法,服务器正常关闭时执行,释放资源
    3. void service() 提供服务方法,每次都执行
    4. ServletConfig getServletConfig() 获取ServletConfig对象
    5. String getServletInfo() 获取Servlet信息,一般不用。

    Servlet生命周期

    1. 被创建:执行init方法,只执行一次
    2. 被销毁:执行destroy方法,只执行一次
    3. 提供服务:执行service方法,执行多次

    init()

    1. 执行时刻:(可以在web.xml中的servlet标签下配置)

      • 启动服务器时创建(默认):

        <load-on-startup>0或正数<load-on-startup>

      • 第一次访问时创建:

        <load-on-startup>负数<load-on-startup>

    2. 多个用户访问时,可能存在线程安全问题:

      • 解决方法:尽量不要定义成员变量 或修改

    Servlet3.0

    好处:

    1. 支持注解配置,可以不用web.xml

    步骤:

    1. 创建JavaEE项目,选择Servlet的版本在3.0以上,不用选web.xml文件。
    2. 定义一个类,实现servlet接口,重写方法
    3. 在类上使用@WebServlet("/demo")注解,其中/demo表示资源路径名

    注意:

    1. 一个servlet可以定义多个访问路径:@WebServlet({"/demo1", "/demo2"})
    2. 两层路径:@WebServlet("/demo/*"),其中星号表示所有字符串都可以

    IDEA与Tomcat项目

    1. IDEA会为每一个web项目单独建立一份配置文件:
      • 具体位置:查看控制台的log:Using CATALINA_BASE: "C:Users..."
      • IDEA在run->edit config->tomcat的Deployment界面可实现配置
    2. IDEA的项目工作空间 Tomcat部署的web项目 分离:
      • Tomcat访问 Tomcat部署的web项目
      • Tomcat部署的web项目 (在项目out文件夹内)对应着 项目工作空间的web目录下所有资源
      • WEB-INF目录下的资源不能被浏览器直接访问。

    Servlet体系结构

    servlet接口的实现类:

    1. GenericServlet:只需要重写service方法,其他方法已经默认空实现。
    2. HttpServlet:对http协议的封装,简化操作:(推荐使用)
      • 定义类继承HttpServlet
      • 重写doGet/doPost方法

    原因:

    servlet中的service方法是为了处理http请求,第一步就要判断http请求是那种协议:

    get/post等一共7中,所以,我们要在HttpServlet继承类中重写常用的doGet/doPost方法。

  • 相关阅读:
    《深入浅出WPF》4.0x名称空间
    《深入浅出WPF》3.0 XAML语法
    DataGridview 自动切换到 下一行
    C# 生成条形码图片,效果不错
    将DataTable 导出为csv
    DataTable,DataGridVIew转换到xls 方法 (转)
    NPOI读取Excel 数据 转。。。
    修改 字段大小
    VC
    统计每天 指定 时间段内 的数据
  • 原文地址:https://www.cnblogs.com/mingriyingying/p/13469446.html
Copyright © 2011-2022 走看看