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了! 我们 ...
最新文章
- ICLR 2022初审你得了多少分?平均4.93浮动,预测6分才被接收
- 浅谈AJAX并实现使用pagehelper-5.1.10.jar分页插件实现异步从数据库中获取数据分页显示
- JAVA单字节读取,java资料读取。(单字节读取和按行读取读取)
- Java GC原理简单讲解
- bat批处理for /f命令
- 【hadoop】java.io.IOException: No FileSystem for scheme: hdfs
- 游戏中汉字显示的实现与技巧
- HTML表单颜色选择器
- RPGMAKER游戏引擎基于JavaScript的插件制作(一)——前期准备以及RPGMAKER内建逻辑
- mysql 多字段求和_sql数据库多字段求和
- 安卓识别身份证,自动提取身份证信息功能实现(附源码)
- python实现微信hook_GitHub - redtips/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...
- 华师大计算机科学与技术考研科目,2020华东师范大学计算机与软件工程考研初试科目、参考书目、招生人数汇总...
- 我对移动支付的看法_谈谈我对微信支付的看法
- go 语言的相对路径
- 探索Activity之启动Intent Flag和taskAffinity
- 甘肃兰州年内发行市民卡
- ijk播放器缓冲机制
- erp系统的服务器在哪里的,erp系统使用的云服务器
- 正则表达式匹配多个空格
热门文章
- Error format not a string literal and no format arguments解决方案
- linux内存映射函数mmap
- 使用临时文件mkstemp和输出errno对应的错误描述信息strerror
- [react] React怎样引入svg的文件?
- React开发(202):react代码分割之import导入导出
- [html] 如何放大点击的区域?
- [html] 请问60*80的canvas占多少内存?你是怎么计算的?
- [html] 如何给input的右上角加个清除的按钮?
- 前端学习(2389):项目初始化总结
- 前端学习(2249)注册 创建 拉取