Java Servlet(一):创建工程(jdk7+tomcat7+eclipse)
本篇文件主要记录下怎么在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)相关推荐
- Java Servlet(六):HttpServlet实现原理(jdk7+tomcat7+eclipse)
本篇记录了HttpServlet的实现过程,主要讲述了如何依赖Servlet,GenericServlet实现的原理. HttpServlet实现过程: 1.是一个Servlet,继承自Generic ...
- java mvc tomcat_Java Servlet(七):JavaWeb MVC 操作(jdk7+tomcat7+eclipse)
之前一段时间一直忙于毕业设计,也没有空学习了,本篇继续学习. 本篇将开始学习java web下使用servlet下来操作数据库,并展示到界面上的使用方法. 新建工程ServletMvc001. 目录结 ...
- 如何创建java bean_eclipse如何创建javabean?怎样在eclipse当中创建?
下面要给大家讲到的就是在eclipse当中创建javabean的方法,对于javabean相信很多人都应该很清楚了,那么下面再一起来了解一下这个方面的内容吧. 其实还是比较的简单的,在在创建class ...
- java开发环境的建立过程_Java开发环境的搭建及第一个Java程序的创建
Java的几个基本概念: JVM:Java Virtul Machine(Java虚拟机) JRE:Java Runtime Environment(Java运行时环境) JDK:Java Devel ...
- java之jdk14安装和环境设置以及eclipse创建工程出现红叉
前言 在网上找的资源,都很不稳定,很多都不能用,所以我去官网下载了,eclipse有免费版,jdk是免费的. eclipse官网:https://www.eclipse.org/downloads/ ...
- 如何创建 Java Servlet 过滤器
Java servlet 过滤器是 Java Web 应用程序的基本组件,因为过滤器允许程序员拦截请求并转换响应以用于各种目的.即使您不创建任何过滤器,servlet 容器(如 Tomcat)和 We ...
- java servlet 获取路径问题_Java,JSP,Servlet获取当前工程路径(绝对路径)问题解析...
在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是webroot 在class文件中,根目录是webroot/web-inf/classes 当然你也可以用system.getpro ...
- Eclipse Java Oxygen不能创建动态的web项目(解决方法)
Eclipse Java Oxygen不能创建动态的web项目(解决方法) 一.eclipse安装J2EE插件 一.eclipse安装J2EE插件 Oxygen版本Eclipse没有toamct开发工 ...
- 使用Java Servlet,JSP标签和Stormpath快速构建Java Web App
建筑物身份管理,包括身份验证和授权? 尝试Stormpath! 我们的REST API和强大的Java SDK支持可以消除您的安全风险,并且可以在几分钟内实现. 注册 ,再也不会建立auth了! 我们 ...
最新文章
- 判断页面元素存在与否
- HttpClient(联网)
- oracle的隐式游标有哪些,Oracle隐式游标小例子
- 部署项目,所谓“部署”到底是在干什么?
- (接口)银联证书上传被修改的问题和读取证书的绝对路径问题
- Vertex and Fragment Shader
- Spring源码系列:BeanFactory的创建
- 将winform窗体钉在桌面上
- python常见安装
- Netty工作笔记0053---Netty核心模块梳理
- 如何利用用户业务行为画像,做套餐与用户之间个性化智能匹配模型?
- python关键词共现_python 共现矩阵的实现
- 正则表达式-入门资料
- java vcard解析,Python的Vcard解析器
- 线性同余法产生(0,1)均匀分布的随机数
- c语言bbs论坛管理系统,C语言编程论坛的设计与开发---论文.doc
- LVS-NAT基于NFS存储部署Discuz
- 传感器技术—湿敏电阻式传感器(学习笔记五)
- 贵如油的春雨都是润物细无声的么?——记2021年首场大范围雷雨强对流天气
- Java项目:医疗管理系统 (java+Springboot+Maven+Mybatis-plus+Vue+Mysql)