创建第一个Servlet类配置web.xml文件

JavaWEB 同时被 2 个专栏收录
29 篇文章 0 订阅
29 篇文章 1 订阅
开发第一个Servlet类
一、 前言
开发Servlet类前需要先导入Tomcat源码包,才能实现开发Servlet类。导入Tomcat源码包详见这个教程。
http://blog.csdn.net/m0_38039437/article/details/75082888

二、创建一个servlet
首先在myeclipse中创建一个webproject项目,新建一个包--新建一个Servlet类并实现Servlet接口。如下截图:

三、实现Servlet接口所有方法
package test05;

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 OneServlet implements Servlet {
	private ServletConfig con;
	
	@Override
	/**
	 * init方法只会被调用一次,这个类只会被初始化一次
	 * tomcat会传递ServletConfig这个对象
	 */
	public void init(ServletConfig config) throws ServletException {
		this.con = config;
		System.out.println("OneServlet被初始化了"+con);
	}

	@Override
	/**
	 * 获取这个OneServlet的配置信息
	 * 由程序员调用,
	 */
	public ServletConfig getServletConfig() {
		System.out.println("获取OneServlet配置信息"+con);
		return con;
	}

	@Override
	/**
	 * 只用户每一次向这个servlet发出request请求时,
	 * 被service接收到时,就会调用这个方法
	 * 
	 */
	public void service(ServletRequest req, ServletResponse res)
			throws ServletException, IOException {
			System.out.println("用户请求信息:"+req+"服务器返回信息:"+res);
	}

	@Override
	/**
	 * 返回自己叫什么名
	 */
	public String getServletInfo() {
		return "OneServlet";
	}

	@Override
	/**
	 * 当tomcat正常停止时,tomcat先会终止所有service的对象
	 * 就会调用所有servlet的destotry方法
	 */
	public void destroy() {
		System.out.println("停止servlet"+this);
		
	}

}

四、配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	
	<!-- 配置第一个servlet -->
	<servlet>
		<!-- 给servlet取一个名字,名字按照变量命名规范可以自定义名字。 -->
		<servlet-name>OneServlet</servlet-name>
		<!-- 说明这个类在项目中的路径 ,包含这个类所在的包名和这个类的类名如下面的配置:
		test05是类所在的包名,OneServlet是类名-->
		<servlet-class>test05.OneServlet</servlet-class>
	</servlet>
	
	<!-- 配置如何访问这个servlet -->
	<servlet-mapping>
		<!-- 引用上面servlet类定义的名字 -->
		<servlet-name>OneServlet</servlet-name>
		<!-- 配置url访问这个servlet类的名字,名字按照变量命名规范可以自定义名字。
		如下配置:/one,这个名字会在访问OneServlet类时候使用 
		例如:127.0.0.1:8080/项目名称/one-->
		<url-pattern>/one</url-pattern>
	</servlet-mapping>
</web-app>

五、访问Servlet类

1、在myeclipse中发布该项目(如何发布项目参照这个链接:http://blog.csdn.net/m0_38039437/article/details/70187364)


2、在myeclips中启动Servlet项目。
 3 、访问servlet,测试结果。
在浏览器输入访问地址:127.0.0.1:8080/day/one   其中day05是项目的名字,/one是web.xml配置的servlet-mapping访问servlet类的路径。
    4、测试结果:


六、Servlet 在tomcat中的工作原理

1、浏览器发送请求
2、tomcat接收到请求,检查自己的缓存中是否将OnServlet实例化
3、如果没有实例化,读取web.xml配置文件,且根据/one这个路径找到OneServlet类,通过反射将这个类实例化。
4、调用OneServlet的init()方法
5、将这个类缓存到自己的容器中Map()
6、请求OneServlet类的service()方法,返回相应到tomcat容器。
7、tomcat将返回的相应直接发送给浏览器。
  • 4
    点赞
  • 0
    评论
  • 13
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:撸撸猫 设计师:马嘣嘣 返回首页

打赏作者

Bruce小鬼

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值