本篇文件主要记录下怎么在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. 判断页面元素存在与否
  2. HttpClient(联网)
  3. oracle的隐式游标有哪些,Oracle隐式游标小例子
  4. 部署项目,所谓“部署”到底是在干什么?
  5. (接口)银联证书上传被修改的问题和读取证书的绝对路径问题
  6. Vertex and Fragment Shader
  7. Spring源码系列:BeanFactory的创建
  8. 将winform窗体钉在桌面上
  9. python常见安装
  10. Netty工作笔记0053---Netty核心模块梳理
  11. 如何利用用户业务行为画像,做套餐与用户之间个性化智能匹配模型?
  12. python关键词共现_python 共现矩阵的实现
  13. 正则表达式-入门资料
  14. java vcard解析,Python的Vcard解析器
  15. 线性同余法产生(0,1)均匀分布的随机数
  16. c语言bbs论坛管理系统,C语言编程论坛的设计与开发---论文.doc
  17. LVS-NAT基于NFS存储部署Discuz
  18. 传感器技术—湿敏电阻式传感器(学习笔记五)
  19. 贵如油的春雨都是润物细无声的么?——记2021年首场大范围雷雨强对流天气
  20. Java项目:医疗管理系统 (java+Springboot+Maven+Mybatis-plus+Vue+Mysql)

热门文章

  1. RTP/RTCP/RTSP协议初探
  2. Android 系统使用USB OTG功能/打开USB Host API功能
  3. dup和dup2的使用方法
  4. [Redux/Mobx] redux的thunk作用是什么?
  5. [react] 什么渲染劫持?
  6. react(94)--时间搜索传值规范
  7. 前端学习(3110):react-hello-函数式组件
  8. 前端学习(3087):vue+element今日头条管理-关于接口的使用
  9. [js] js的循环结构有哪些?
  10. 前端学习(2845):秒杀基本介绍