servlet的简单入门和介绍

Servlet的介绍

1.1servlet的介绍

定义:一个实现了servlet接口的普通类,在于交互式地浏览和修改数据,生成动态的web内容。

浏览器(www.xxxxx)向服务器里面的servlet发送请求

servlet//接受请求 //处理请求 //返回响应(返回的页面就是动态的页面)

1.2servlet的简易入门

1.2.1创建servlet的第一种方式

  1. 实现servlet的接口
  2. 重写接口提供的方法
  3. 映射servlet(name class)
  4. 绑定路径(url)

34为编写的配置文件

实现servlert的接口重写提供的方法

package com.dzu.cn;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class demo1 implements Servlet{

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public ServletConfig getServletConfig() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public String getServletInfo() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
	}

	@Override
	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("程序接受到请求");
	}
}

编写xml配置文件

<!-- 
  		映射servlet类
  		servlet-name给当前的servlet定义一个名字
  		servlet-class当前的servlet的带包的路径
   -->
  
   <servlet>
    	<servlet-name>Demo1</servlet-name>
    	<servlet-class>com.dzu.cn.Demo1</servlet-class>
    </servlet>
    
    <!-- 绑定路径 
    	servlet-name 对应的servlet的实体类的名称
    	url-pattern当前的servlet的路径
    -->
    <servlet-mapping>
    	<servlet-name>Demo1</servlet-name>  <!-- 文件访问的路径 -->
    	<url-pattern>/demo</url-pattern>
    </servlet-mapping>

测试的格式

协议://主机:端口号/项目名/绑定路径

1.2.2创建servlet的第二种方式(继承httpservlet)

httpservlet是tomcat中实现的源码

httpservlet继承了GenericServlet

而GenericServlet实现了Servlet的接口

结论:httpServlet间接的实现了servlet的接口所以可以运行实现servlet的功能

package com.dzu.cn;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/demo2")//注解直接配置路径
public class Demo2 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.getWriter().append("Served at: ").append(request.getContextPath());
		System.out.println("hellow");
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		doGet(request, response);
	}

}

1.3servlet的体系结构

1.3.1servlet接口方法

void init(ServletConfig config) :初始化方法

void service(ServletRequest req, ServletResponse res):服务方法

void destroy() :销毁方法

ServletConfig getServletConfig():获取当前的servlet的配置对象

String getServletInfo() :获取当前servlet的信息

1.3.2servlet的生命周期

void init(ServletConfig config) :初始化方法

void service(ServletRequest req, ServletResponse res):服务方法

void destroy() :销毁方法

这三个方法是servlet的初始 使用 销毁 称为servlet的生命周期

@Override
	/**
	 * 执行时机:服务器正常关闭或项目移除的时候
	 * 执行次数:1
	 * 执行者:服务器
	 */
	public void destroy() {
		// TODO Auto-generated method stub
		System.out.println("执行销毁");
	}
@Override
	/**
	 * 执行时机:第一次访问的时候
	 * 执行次数:1次
	 * 执行者:服务器
	 */
	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("执行初始化操作");
	}

	@Override
	/**
	 * 执行时机:每次访问的时候
	 * 执行次数:执行的次数=访问的次数
	 * 执行者:服务器
	 */
	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("执行服务");
	}

servlet只出生一次是单实例多线程的方法

默认第一次请求的时候服务器创建servlet的对象且调用init方法实现初始化的操作,且调用一次service方法,每当请求来的时候服务器获取一个线程,调用service方法完成具体的业务逻辑(编写的代码)当servlet被移除的时候或者服务器正常关闭的时候服务器调用destory方法实现销毁操作。

1.3.3servlet的具体实现

GenercServlet抽象类:实现了servlet接口除了service没有实现其他的都实现了

HttpServlet抽象类:实现了service方法:强转了两个参数调用了重载的servlet方法----获取请求方式的不同调用不同的doxxx方法

1.4web.xml文件的学习

url-pattern的配置

完全匹配:以"/"开始例如:/aa /bb /hellow /aa目前使用这种的形式

目录匹配:以“"/"开始以*结束 例如/aa / * / *

后缀名匹配:以“*”开始例如 *jsp *action *do

优先级:完全匹配>目录匹配>后缀名匹配

注意:一个路径对应一个servlet一个servlet对应多个路径

load-on-startup的配置

作用:修改servlet的初始化时机,会随着服务器启动而创建servlet

使用格式:

<load-on-startup>正整数</load-on-startup>

路径的写法

相对路径和绝对路径

http://localhost:8080/xxxx/xxx

/xxx/xxx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序小旭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值