zoukankan      html  css  js  c++  java
  • Servlet-知识点

     

     1.JavaWeb开发的目录结构

     

    https://blog.csdn.net/u012661010/article/details/73381599

    2.web程序结构

     

    • 一个web应用程序是由一组Servlet,HTML页面,类,以及其他的资源组成的运行在web服务器上的完整的应用程序,以一种结构画的层次的目录形式存在
    • 组成web应用程序的这些文件要部署在相应的目录层次中,根目录代表整个web应用程序的“根”
    • 通常将web应用程序的目录放在webapps目录下,在webapps目录下的每一个子目录都是一个独立的web应用程序,子目录的名字就是web应用程序的名字,也即是web应用程序的“根”。用户通过web应用程序的“根”来访问应用程序的资源。

    3.第一个web应用程序:开发,并部署到Tomcat服务器下运行

    1.  
      1.在eclipse新建一个Java project
    2.  
      2.在Java项目下创建web开发的目录结构
    3.  
              -webContent
    4.  
                  -WEB-INF
    5.  
                      -classes(编译后的classes文件必须放在该目录下)
    6.  
                      -lib
    7.  
                      -web.xml(从D: omcat-7.0.70webappsdocsWEB-INF中复制过来的)
    8.  
                  html页面
    9.  
                  jsp页面
    10.  
                  图片
    11.  
      3.在src下新建一个person类
    12.  
              package com.atguigu.test;
    13.  
              public class Person{
    14.  
                  public String getPersonInfo(){
    15.  
                      return "person info...";
    16.  
                  }
    17.  
      4.手工的将person类对应的class文件(含包)复制到classes的目录下
    18.  
      5.在WebContent目录下新建一个jsp文件:
    19.  
              <%@page import="com.atguigu.test.Person"%>
    20.  
              <%@page language="java" contentType="test/html;><pageEncoding="ISO-8859-1"%>
    21.  
              
    22.  
              <%
    23.  
                  Person person=new Person();
    24.  
                  System.out.print(person.getPersonInfo());
    25.  
              %>
    26.  
      6.把webcontent目录复制到Tomcat的webapps目录下,并改名为:helloworld
    27.  
      7.在浏览器的地址栏中输入:http://localhost:8080/helloworld/hello.jsp即可看到命令行的打印信息

    4.使用javaee版的eclipse开发动态的web工程(Javaweb项目)

    1. 把开发选项切换到Javaee
    2. 可以在window -> show view 中找到package Explorer,并把其拖到开发取得左边
    3. 在servers 面板中新建Tomcat服务器。一定要关联到Tomcat安装的目录。
    4. 新建一个Dynamic Web Project,期中Trager Runtime需选择Tomcat6.0
    5. 开发Java web应用
    6. 可以通过run on server来运行web项目

    5.Servlet简介
    Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中。Servlet容器负责Servlet和客户的通信以及调用servlet的方法,Servlet和客户的通信采用“请求/相应”的模式。
    Servlet可完成如下功能:

    • 创建并返回基于客户请求的动态HTML页面。
    • 创建可嵌入到现有HTML页面中的部分HTML(HTML片段)。
    • 与其他服务器资源(如数据库或基于Java应用程序)进行通信。

    6.创建第一个Servlet程序

    1.  
      第一步:创建一个Servlet接口的实现类或者继承HttpServlet的实现类
    2.  
              public class HelloServlet implements Servlet{}
    3.  
      //方式二:public class HelloServlet extends HttpServlet{}
    4.  
       
    5.  
      第二步:在web.xml文件中配置和映射这个Servlet
    6.  
              <!--配置和映射Servlet--> 
    7.  
              <servlet>
    8.  
                  <!--Servlet注册的名字-->
    9.  
                   <servlet-name>helloServlet</servlet-name>
    10.  
                  <--Servlet的全类名-->
    11.  
                  <servlet-class>com.atguigu.HelloServlet</servlet-class>    
    12.  
              </servlet>
    13.  
           
    14.  
               <servlet-mapping>
    15.  
                  <!--需要和上面的注册名一致-->
    16.  
                   <servlet-name>helloServlet</servlet-name>
    17.  
                  <!--映射具体的访问路径:/ 代表当前web应用的根目录(http://localhost:8080/day_8-4/)-->
    18.  
                   <url-pattern>/hello</url-pattern>
    19.  
               </servlet-mapping>

    7.Servlet容器:运行Servlet、jsp、filter等的软件环境。

    8.Servler生命周期方法:以下方法都是由Servlet容器负责调用。

    1. 构造器:只被调用一次,只有第一次请求Servlet时,创建Servlet的实例,调用构造器。这说明Servlet是单实例的!
    2. init方法:只被调用一次,在创建好实例后立即被调用,用于初始化当前Servlet。
    3. service:被多次调用,每次请求都会调用service方法,实际用于响应请求的。
    4. destroy:只被调用一次,在当前Servlet所在的web应用被卸载前调用,用于释放当前Servlet所占用的资源。
    5.  最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

    9.servlet容器响应客户请求的过程

    1. Servlet引擎检查是否已经装在并创建了该Servlet的实例对象。如果是,则直接执行第4步,否则,执行第2步。
    2. 装载并创建该Servlet的一个实例对象:调用该Servlet的构造器。
    3. 调用Servlet实例对象的init()方法。
    4. 创建一个用于封装请求的ServletRequest对象和一个代表service()方法并将请求和响应作为参数转递进去。
    5. web应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。

    10.load-on-startup参数:配置在servlet节点中
    load-on-startup:可以指定Servlet被创建的时机。若为负数,则在第一次请求时被创建,若为0或正数,则在当前web应用被Servlet容器加载时创建实例,且数字越小越早被创建。

    1.  
      <!--配置和映射Servlet--> 
    2.  
      <servlet>
    3.  
      <!--Servlet注册的名字-->
    4.  
      <servlet-name>helloServlet</servlet-name>
    5.  
      <--Servlet的全类名-->
    6.  
      <servlet-class>com.atguigu.HelloServlet</servlet-class>    
    7.  
      <!--可以指定Servlet被创建的时机-->
    8.  
      <load-on-startup>2</load-on-startup>
    9.  
      </servlet>>

    11.Servlet的注册与运行

    • Servlet程序必须通过servlet容器来启动运行,并且储存目录特殊要求,通需要存储在<WEB应用程序目录>WEB-INFclasses目录中。
    • Servlet程序必须在web应用程序的web.xml文件中进行注册和映射其访问路径,才可以被Servlet引擎加载和被外界访问。
    • 一个<servlet>元素用于注册一个Servlet,它包含有两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和Servlet的完整类名。
    • 一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含两个子元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外访问路径。

    12.servlet映射的细节

    • 同一个Servlet可以被映射到多个URL上,即多个<servlet-mapping>元素的<servler-name>子元素的设置值可以是同一个Servlet的注册名。
    • 在servlet映射到URL中也可以使用*通配符,但是只能有两种固定的格式:一种格式是“*.扩展名(如html)”,另一种格式是以正斜杠(/)开头并以“/*”结尾。
    • 注意:既带/又带扩展名的不合法
  • 相关阅读:
    TextView 显示内容时出现 ArrayIndexOutOfBoundsException 的解决方法(Android 4.1)
    Android Activity 启动模式和任务栈
    Android 坐标系和 MotionEvent 分析、滑动
    Android 控件架构及View、ViewGroup的测量
    Android Studio 3.0 及以上版本使用技巧总结
    移动端开发网络优化建议
    Netty系列之Netty高性能之道
    并发框架Disruptor译文
    Python轻量Web框架Flask使用
    修改MySQL的时区,涉及参数time_zone
  • 原文地址:https://www.cnblogs.com/shoshana-kong/p/10585578.html
Copyright © 2011-2022 走看看