JavaWeb—Servler基础入门

什么是Servlet

Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口)

  • servlet接收响应请求
  • filter过滤器
  • listener监听器

用来处理客户端请求、响应给浏览器的动态资源,servlet的实质就是java代码,通过java的API动态的向客户端输出内容,以后写的程序就不在是在本地执行了。而是编译成字节码,放到服务器上来去执行。编写程序时, 不需要有main函数了。因为写完后,就把编写的程序编译成字节码,放到服务器上面。当前发送就一个请求的时候,服务器就会按照一定规则调用编写的代码。

Servlet快速入门

创建一个类Hello,实现Servlet接口

package org.youyuan.servlet;

import javax.servlet.*;
import java.io.IOException;

public class Hello implements Servlet {

	//访问servlet时调用
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("init");
    }

    public ServletConfig getServletConfig() {
        return null;
    }
	
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("hello service");
    }

    public String getServletInfo() {
        return null;
    }
	//服务器关闭或者web应用移除容器时调用
    public void destroy() {
        System.out.println("destroy");
    }
}

在web.xml中配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
        <servlet>
            <servlet-name>youyuan</servlet-name>
            <servlet-class>org.youyuan.servlet.Hello</servlet-class>
            <!--设置servlet在web应用启动时初始化-->
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>youyuan</servlet-name>
            <url-pattern>/Hello</url-pattern>
        </servlet-mapping>
</web-app>

启动tomcat,在浏览器中输入
在这里插入图片描述
输出结果:
在这里插入图片描述

生命周期

Servlet什么时候被创建:

  • 默认情况下第一次访问的时候创建。
  • 可以通过配置文件设置服务器启动的时候就创建。

init:servlet对象创建的时候调用,默认第一次访问时创建。
service:每次请求都会执行一次。
destroy:servlet对象销毁的时候执行,默认服务器关闭时销毁。
load-on-startup:对象在服务器启动时就创建,值为数字代表优先级,数据越小,优先级越高,不能为负数。

Servlet配置信息

init-params:


1.<init-name>名称</init-name>
2.<init-value>值</init-value>
3.config参数
 -该servlert的配置信息
 -获得web.xml当中参数
 -初始化参数
 -获取servletContext对象

url-patten

  1. 完全匹配
  2. 目录匹配
  3. 扩展名匹配

缺省Servlet:访问的资源不存在时,就会找缺省的地址。

<url-patten>/</url-patten>

全局Web.xml:

  • 对于部署在服务器上的所有应用都有效。
  • 先到自己工程当中找web.xml配置。
  • 再到全局web.xml当中去找配置。
  • 如果两个当中有相同的配置,自己当中配置的内容会生效

静态资源加载过程:

  • 在path后面写的静态资源名称index.html或者是其它的.html它都是会找ur-patten当中有没有匹配的内容。
  • 如果有,就加载对应的servlet,如果没有就到自己配置当中找缺省的url-patten。
  • 如果自己配置文件当中没有缺省的,就会找全局配置缺省的url-patten,在全局配置当中有一个缺省的url-patten。
  • 对应的是default的Servlet,defaultServlet内部会到当前访问的工程根目录当中去找对应的名称的静态资源。
  • 如果有,就把里面的内容逐行读出。响应给浏览器。如果没有,就会报404错误
发布了25 篇原创文章 · 获赞 0 · 访问量 282

猜你喜欢

转载自blog.csdn.net/qq_42219004/article/details/105279058
今日推荐