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

举报
brucexiaogui 发表于 2021/12/30 01:39:47 2021/12/30
【摘要】 开发第一个Servlet类 一、 前言 开发Servlet类前需要先导入Tomcat源码包,才能实现开发Servlet类。导入Tomcat源码包详见这个教程。 http://blog.csdn.net/m0_38039437/article/details/75082888 二、创建一个...
开发第一个Servlet类
一、 前言
开发Servlet类前需要先导入Tomcat源码包,才能实现开发Servlet类。导入Tomcat源码包详见这个教程。
http://blog.csdn.net/m0_38039437/article/details/75082888

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

三、实现Servlet接口所有方法

   
  1. package test05;
  2. import java.io.IOException;
  3. import javax.servlet.Servlet;
  4. import javax.servlet.ServletConfig;
  5. import javax.servlet.ServletException;
  6. import javax.servlet.ServletRequest;
  7. import javax.servlet.ServletResponse;
  8. public class OneServlet implements Servlet {
  9. private ServletConfig con;
  10. @Override
  11. /**
  12. * init方法只会被调用一次,这个类只会被初始化一次
  13. * tomcat会传递ServletConfig这个对象
  14. */
  15. public void init(ServletConfig config) throws ServletException {
  16. this.con = config;
  17. System.out.println("OneServlet被初始化了"+con);
  18. }
  19. @Override
  20. /**
  21. * 获取这个OneServlet的配置信息
  22. * 由程序员调用,
  23. */
  24. public ServletConfig getServletConfig() {
  25. System.out.println("获取OneServlet配置信息"+con);
  26. return con;
  27. }
  28. @Override
  29. /**
  30. * 只用户每一次向这个servlet发出request请求时,
  31. * 被service接收到时,就会调用这个方法
  32. *
  33. */
  34. public void service(ServletRequest req, ServletResponse res)
  35. throws ServletException, IOException {
  36. System.out.println("用户请求信息:"+req+"服务器返回信息:"+res);
  37. }
  38. @Override
  39. /**
  40. * 返回自己叫什么名
  41. */
  42. public String getServletInfo() {
  43. return "OneServlet";
  44. }
  45. @Override
  46. /**
  47. * 当tomcat正常停止时,tomcat先会终止所有service的对象
  48. * 就会调用所有servlet的destotry方法
  49. */
  50. public void destroy() {
  51. System.out.println("停止servlet"+this);
  52. }
  53. }

四、配置web.xml文件

   
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  5. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  6. <!-- 配置第一个servlet -->
  7. <servlet>
  8. <!-- 给servlet取一个名字,名字按照变量命名规范可以自定义名字。 -->
  9. <servlet-name>OneServlet</servlet-name>
  10. <!-- 说明这个类在项目中的路径 ,包含这个类所在的包名和这个类的类名如下面的配置:
  11. test05是类所在的包名,OneServlet是类名-->
  12. <servlet-class>test05.OneServlet</servlet-class>
  13. </servlet>
  14. <!-- 配置如何访问这个servlet -->
  15. <servlet-mapping>
  16. <!-- 引用上面servlet类定义的名字 -->
  17. <servlet-name>OneServlet</servlet-name>
  18. <!-- 配置url访问这个servlet类的名字,名字按照变量命名规范可以自定义名字。
  19. 如下配置:/one,这个名字会在访问OneServlet类时候使用
  20. 例如:127.0.0.1:8080/项目名称/one-->
  21. <url-pattern>/one</url-pattern>
  22. </servlet-mapping>
  23. </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将返回的相应直接发送给浏览器。

文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/75151669

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。