本篇文件主要记录下怎么在jdk7+tomcat7下,使用eclipse创建并运行一个servlet工程。

安装具体步骤从网上搜索就可以找到,这里不再赘述。

在eclipse中切换到j2ee下,

从导航菜单windows下找到show view选项,并在show view下找到server。

在server中创建tomcat server。

并从导航菜单file下找->new->dynamic web project.

在project name中输入工程名称MyServlet001

一直下一步,一直到如下步骤:

这里一定要记得勾选Generate web.xml deployment description选项,否则在/WebContent/Web-INF/下会缺少web.xml文件。

新建好的工程结构如下:

我们在src中添加包com.dx.hello,并创建java类HelloServlet.class,并让该类实现servlet的init,service,distory,getServletConfig,getServletInfo函数,并添加HelloServlet类的构造函数,并在每个函数内部输出函数的名称。

 1 package com.dx.hello;
 2
 3 import java.io.IOException;
 4 import javax.servlet.Servlet;
 5 import javax.servlet.ServletConfig;
 6 import javax.servlet.ServletException;
 7 import javax.servlet.ServletRequest;
 8 import javax.servlet.ServletResponse;
 9
10 public class HelloServlet implements Servlet {
11     public HelloServlet() {
12         System.out.println("HelloServlet constructor");
13     }
14
15     public void init(ServletConfig config) throws ServletException {
16         System.out.println("init");
17     }
18
19     public void destroy() {
20         System.out.println("destroy");
21     }
22
23     public ServletConfig getServletConfig() {
24         System.out.println("getServletConfig");
25         return null;
26     }
27
28     public String getServletInfo() {
29         System.out.println("getServletInfo");
30         return null;
31     }
32
33     public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
34         System.out.println("service");
35     }
36
37 }

修改配置文件web.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xmlns="http://java.sun.com/xml/ns/javaee"
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 5     id="WebApp_ID" version="3.0">
 6
 7     <!-- 配置和映射 servlet -->
 8     <servlet>
 9         <!-- Servlet注册的名字 -->
10         <servlet-name>helloServlet</servlet-name>
11         <!-- Servlet全类名 -->
12         <servlet-class>com.dx.hello.HelloServlet</servlet-class>
13     </servlet>
14     <servlet-mapping>
15         <!-- 对应servlet节点下的servlet-name的注册名字一致 -->
16         <servlet-name>helloServlet</servlet-name>
17         <!-- 映射具体的访问路径,其中/代表当前web的根目录 -->
18         <url-pattern>/hello</url-pattern>
19     </servlet-mapping>
20
21 </web-app>

启动tomcat,在浏览器中输入http://localhost:8080/MyServlet001/hello.回车将会在浏览器中出现一个空白页面。

这是我们在eclipse中查看tomcat日志信息会发现如下信息:

。。。
INFO: Command line argument: -Dfile.encoding=GBK
二月 27, 2016 10:10:44 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\java\jdk1.6\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;D:/Program Files/Java/jdk1.7.0_79/bin/../jre/bin/server;D:/Program Files/Java/jdk1.7.0_79/bin/../jre/bin;D:/Program Files/Java/jdk1.7.0_79/bin/../jre/lib/amd64;E:\SourceCode\lihui\Network\LTEPlanDesktop\LTEPlanDesktop-ZJ\DTGroup.LTEPlanDesktop.WinUI\References\SuperMap\;D:\Program Files\Java\jdk1.7.0_79\bin;D:\Program Files\Java\jdk1.7.0_79\jre\bin;D:\java\axis2-1.6.3\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;D:\Program Files\Microsoft SQL Server\100\Tools\Binn\;D:\Program Files\Microsoft SQL Server\100\DTS\Binn\;D:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;D:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;D:\Program Files (x86)\scala\bin;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\scala\bin;C:\Program Files\Microsoft\Web Platform Installer\;%USERPROFILE%\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;d:\AppServ\php5.5;;D:\java\eclipse-jee-mars-1-win32-x86_64\eclipse;;.
二月 27, 2016 10:10:44 下午 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
二月 27, 2016 10:10:44 下午 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
二月 27, 2016 10:10:44 下午 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1481 ms
二月 27, 2016 10:10:44 下午 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
二月 27, 2016 10:10:44 下午 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.65
二月 27, 2016 10:10:46 下午 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
二月 27, 2016 10:10:46 下午 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
二月 27, 2016 10:10:46 下午 org.apache.catalina.startup.Catalina start
INFO: Server startup in 1379 ms
HelloServlet constructor
init
service

之后,再eclipse中停止tomcat server服务,将会发下tomcat server日志信息:

二月 27, 2016 10:12:45 下午 org.apache.catalina.core.StandardServer await
INFO: A valid shutdown command was received via the shutdown port. Stopping the Server instance.
二月 27, 2016 10:12:45 下午 org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-bio-8080"]
二月 27, 2016 10:12:45 下午 org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["ajp-bio-8009"]
二月 27, 2016 10:12:45 下午 org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service Catalina
destroy
二月 27, 2016 10:12:45 下午 org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["http-bio-8080"]
二月 27, 2016 10:12:45 下午 org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["ajp-bio-8009"]
二月 27, 2016 10:12:45 下午 org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["http-bio-8080"]
二月 27, 2016 10:12:45 下午 org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["ajp-bio-8009"]

不错,上边日志信息标示为红色的字体信息,正是HelloServlet.java函数中打印出来的信息,这整个过程也就是从一个servlet的初始化,到结束的整个生命周期,而tomcat正是管理servlet生命周期的一个容器。

Servlet工作原理:

web.xml是一个必须必须配置的,如果访问的路径:http://localhost:8080/MyServlet001/hello,tomcat会根据配置的web.xml信息找到对应的servlet-mapping集合,并根据该集合中的servlet-name找到servlet节点下的servlet-class选项,并调用该类的中的对应函数信息,实现与客户端接收与相应工作。

从Servlet工作原理中我们也可以发下,tomcat就是servlet的一个运行容器,它控制了servlet的整个生命周期。

下章节,我们记录servlet怎么使用及它的工作原理相关细节。

转载于:https://www.cnblogs.com/yy3b2007com/p/5223825.html

Java Servlet(一):创建工程(jdk7+tomcat7+eclipse)相关推荐

  1. Java Servlet(六):HttpServlet实现原理(jdk7+tomcat7+eclipse)

    本篇记录了HttpServlet的实现过程,主要讲述了如何依赖Servlet,GenericServlet实现的原理. HttpServlet实现过程: 1.是一个Servlet,继承自Generic ...

  2. java mvc tomcat_Java Servlet(七):JavaWeb MVC 操作(jdk7+tomcat7+eclipse)

    之前一段时间一直忙于毕业设计,也没有空学习了,本篇继续学习. 本篇将开始学习java web下使用servlet下来操作数据库,并展示到界面上的使用方法. 新建工程ServletMvc001. 目录结 ...

  3. 如何创建java bean_eclipse如何创建javabean?怎样在eclipse当中创建?

    下面要给大家讲到的就是在eclipse当中创建javabean的方法,对于javabean相信很多人都应该很清楚了,那么下面再一起来了解一下这个方面的内容吧. 其实还是比较的简单的,在在创建class ...

  4. java开发环境的建立过程_Java开发环境的搭建及第一个Java程序的创建

    Java的几个基本概念: JVM:Java Virtul Machine(Java虚拟机) JRE:Java Runtime Environment(Java运行时环境) JDK:Java Devel ...

  5. java之jdk14安装和环境设置以及eclipse创建工程出现红叉

    前言 在网上找的资源,都很不稳定,很多都不能用,所以我去官网下载了,eclipse有免费版,jdk是免费的. eclipse官网:https://www.eclipse.org/downloads/ ...

  6. 如何创建 Java Servlet 过滤器

    Java servlet 过滤器是 Java Web 应用程序的基本组件,因为过滤器允许程序员拦截请求并转换响应以用于各种目的.即使您不创建任何过滤器,servlet 容器(如 Tomcat)和 We ...

  7. java servlet 获取路径问题_Java,JSP,Servlet获取当前工程路径(绝对路径)问题解析...

    在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是webroot 在class文件中,根目录是webroot/web-inf/classes 当然你也可以用system.getpro ...

  8. Eclipse Java Oxygen不能创建动态的web项目(解决方法)

    Eclipse Java Oxygen不能创建动态的web项目(解决方法) 一.eclipse安装J2EE插件 一.eclipse安装J2EE插件 Oxygen版本Eclipse没有toamct开发工 ...

  9. 使用Java Servlet,JSP标签和Stormpath快速构建Java Web App

    建筑物身份管理,包括身份验证和授权? 尝试Stormpath! 我们的REST API和强大的Java SDK支持可以消除您的安全风险,并且可以在几分钟内实现. 注册 ,再也不会建立auth了! 我们 ...

最新文章

  1. ICLR 2022初审你得了多少分?平均4.93浮动,预测6分才被接收
  2. 浅谈AJAX并实现使用pagehelper-5.1.10.jar分页插件实现异步从数据库中获取数据分页显示
  3. JAVA单字节读取,java资料读取。(单字节读取和按行读取读取)
  4. Java GC原理简单讲解
  5. bat批处理for /f命令
  6. 【hadoop】java.io.IOException: No FileSystem for scheme: hdfs
  7. 游戏中汉字显示的实现与技巧
  8. HTML表单颜色选择器
  9. RPGMAKER游戏引擎基于JavaScript的插件制作(一)——前期准备以及RPGMAKER内建逻辑
  10. mysql 多字段求和_sql数据库多字段求和
  11. 安卓识别身份证,自动提取身份证信息功能实现(附源码)
  12. python实现微信hook_GitHub - redtips/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...
  13. 华师大计算机科学与技术考研科目,2020华东师范大学计算机与软件工程考研初试科目、参考书目、招生人数汇总...
  14. 我对移动支付的看法_谈谈我对微信支付的看法
  15. go 语言的相对路径
  16. 探索Activity之启动Intent Flag和taskAffinity
  17. 甘肃兰州年内发行市民卡
  18. ijk播放器缓冲机制
  19. erp系统的服务器在哪里的,erp系统使用的云服务器
  20. 正则表达式匹配多个空格

热门文章

  1. Error format not a string literal and no format arguments解决方案
  2. linux内存映射函数mmap
  3. 使用临时文件mkstemp和输出errno对应的错误描述信息strerror
  4. [react] React怎样引入svg的文件?
  5. React开发(202):react代码分割之import导入导出
  6. [html] 如何放大点击的区域?
  7. [html] 请问60*80的canvas占多少内存?你是怎么计算的?
  8. [html] 如何给input的右上角加个清除的按钮?
  9. 前端学习(2389):项目初始化总结
  10. 前端学习(2249)注册 创建 拉取