本篇文件主要记录下怎么在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类的构造函数,并在每个函数内部输出函数的名称。

 package com.dx.hello;

 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 HelloServlet implements Servlet {
public HelloServlet() {
System.out.println("HelloServlet constructor");
} public void init(ServletConfig config) throws ServletException {
System.out.println("init");
} public void destroy() {
System.out.println("destroy");
} public ServletConfig getServletConfig() {
System.out.println("getServletConfig");
return null;
} public String getServletInfo() {
System.out.println("getServletInfo");
return null;
} public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
System.out.println("service");
} }

修改配置文件web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0"> <!-- 配置和映射 servlet -->
<servlet>
<!-- Servlet注册的名字 -->
<servlet-name>helloServlet</servlet-name>
<!-- Servlet全类名 -->
<servlet-class>com.dx.hello.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<!-- 对应servlet节点下的servlet-name的注册名字一致 -->
<servlet-name>helloServlet</servlet-name>
<!-- 映射具体的访问路径,其中/代表当前web的根目录 -->
<url-pattern>/hello</url-pattern>
</servlet-mapping> </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怎么使用及它的工作原理相关细节。

Java Servlet(一):创建工程(jdk7+tomcat7+eclipse)的更多相关文章

  1. Java Servlet(二):servlet配置及生命周期相关(jdk7+tomcat7+eclipse)

    该篇文章记录了Servlet配置相关用法及Servlet在Servlet容器中生命周期方法. Tomcat是一个Servlet容器: 1.Servlet容器管理了Servlet的整个生命周期,并调用s ...

  2. Java Servlet(四):Servlet接口service工作(ServletRequest,ServletResponse对象)(jdk7+tomcat7+eclipse)

    本篇将会记录,Servlet接收客户端传递来的参数信息,并返回信息使用的对象,及这些对象的函数相关用法. 还是在java ee工程中进行操作,在WebContent目录下创建一个login.jsp文件 ...

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

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

  4. Java Servlet(五):GenericServlet与Servlet、HttpServlet之间的关系(jdk7+tomcat7+eclipse)

    本篇主要记录下,对GenericServlet的作用理解,及其与Servlet/HttpServlet之间的关系. 示例完成业务: 1.新建一个login.jsp页面,要求改页面能输入username ...

  5. Java Servlet(七):JavaWeb MVC 操作(jdk7+tomcat7+eclipse)

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

  6. Java Servlet(十一):一个servlet被10个浏览器客户端访问时会创建几个servlet实例?

    一般Servlet只初始化一次(只有一个实例).对于更多的客户端请求,Server创建新的请求和响应对象,仍然激活此Servlet的service()方法,将这两个对象作为参数传递给该方法.如此重复以 ...

  7. WIN7系统JavaEE(java+tomcat7+Eclipse)环境配置

    https://jingyan.baidu.com/article/3a2f7c2e62d25e26afd611fa.html WIN7系统JavaEE(java+tomcat7+Eclipse)环境 ...

  8. Ubuntu 16.04下使用Eclipse:创建工程时卡死的解决方法

    问题如下: Ubuntu 16.04下使用Eclipse创建工程时出现卡顿和卡死,新建一个MapReduce项目卡了一下午,鼠标变成了圆圈进度条转了一下午,还关不掉. 当我直接去关闭新建项目的窗口时, ...

  9. JSP、Java和Servlet获取当前工程的路径

    JSP.Java和Servlet获取当前工程的路径: 1.JSP中取得路径: 以工程名为TEST为例: (1)得到包含工程名的当前页面全路径:request.getRequestURI()结果:/TE ...

随机推荐

  1. ESXi云管理平台

    实验室有多台使用ESXi实现虚拟化的服务器,平时管理不便,便通实验室其他同学一起编写了一个基于ESXi的云平台管理系统. 对物理服务器进行管理,实现增加.删除.修改.性能监控. 对虚拟机进行管理,实现 ...

  2. egrep 查找IP

    1. egrep '([^0-9]|\<)(([0-1]?[0-9]{0,2}|([2]([0-4][0-9]|[5][0-5])))\.){3}([0-1]?[0-9]{0,2}|([2]([ ...

  3. 【转】全面解析Unity3D自动生成的脚本工程文件

    http://blog.csdn.net/jjiss318/article/details/7632041 我们在Unity3D开发的时候,经常会看到它会产生不少固定命名工程文件,诸如: Assemb ...

  4. lisp分支

    newLISP http://www.ituring.com.cn/article/110968 clojure             http://clojure.org/             ...

  5. 低功耗蓝牙4.0BLE编程-nrf51822开发(4)

    蓝牙是一种短距离的通讯方式,它设计的意图是取代电子便携设备之间的有线电缆连接.蓝牙的主要特性是健壮性.低功耗.成本低,它工作于免费的2.4无线传输频段. 蓝牙有两种技术系统:基本速率Basic Rat ...

  6. JavaScript判断文件的大小

    function getFileSize(obj) {//obj 需要传入的参数为Input的对象   var objValue = obj.value; if (objValue == " ...

  7. 过滤android应用列表(区分系统应用、第三方应用、sd卡中的应用)

    if ((app.flags & ApplicationInfo.FLAG_SYSTEM) != 0) { // 系统程序 }else if ((app.flags & Applica ...

  8. 20145211 《Java程序设计》实验报告三:敏捷开发与XP实践

    实验内容 使用 git上传代码 使用 git相互更改代码 实现代码的重载 XP基础 XP核心实践 相关工具 一.git上传代码 这一部分是与我的partner合作的,详见他的博客- 20145326蔡 ...

  9. MVC 中的 ViewModel

    此文章总结自:http://rachelappel.com/use-viewmodels-to-manage-data-amp-organize-code-in-asp.net-mvc-applica ...

  10. rabbitMq 转自 http://gaoyangang.iteye.com/blog/1566600

    rabbitMq  转自 http://gaoyangang.iteye.com/blog/1566600