新建web项目
– new Web Project
– 选择:javaee 5.0
建包
– com.gzsxt.wang
新建class:FirstServlet
– 继承:HttpServlet(javax.servlet.http.HttpServlet)
重写service方法(两个service方法中选择带 HttpServletRequest、HttpServletResponse参数 的)
 
• 在web.xml中配置写好的servlet
– 配置Servlet作用有两个:
1. 让服务器知道这个Servlet类的存在。
2. 让URL和Servlet匹配,从而请求服务器上的servlet
 
<servlet>
<servlet-name>first</servlet-name>
<servlet-class>com.gzsxt.wang.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>first</servlet-name>
<url-pattern>/111</url-pattern>
</servlet-mapping>
安装和启动tomcat服务器
• 将TOMCAT压缩包解压。
• 设置环境变量:
  • – JAVA_HOME设置
• 进入TOMCAT子目录bin,点击:startup.bat,启动tomcat.
• 访问:http://localhost:8080/ – 如果出现tomcat主页,则安装成功。
• 手动发布项目:
  • – 在tomcat子目录:webapps中新建一个文件夹:abc
  • – 将web项目的WebRoot目录中所有的内容copy到abc中.
  • – 重启tomcat
• 访问刚刚写好的Servlet:
  • – http://localhost:8080/abc/one
  • – http://127.0.0.1:8080/abc/one
  • – http://自己机器的ip:8080/abc/one
 
 
servlet 生命周期
1.载入并初始化
调用init()方法,只执行一次
2.运行
当用户请求该servlet时,服务器创建一个新的线程,调用servlet的service方法-->父类的service方法-->父类的doPost/父类doGet方法
1)当执行父类的doGet/doPost时,会报405错误。解决办法:在子类中重写doGet/doPost
2)尽量不要在servlet中使用成员变量
3.销毁
在服务器关闭之前,调用destroy()方法,只执行一次
 
1)部署项目
1)myeclipse会将java代码编译过后的class文件,放在WebRoot/WEB-INF/classes文件夹下
2)只要将数据放在webapps的某个目录(项目名)下,就可以通过浏览器访问了!
2)启动服务器
1)运行bin/startup.bat
3)集成tomcat
1)将tomcat配置在myeclipse中:window-->prefrences-->输入“server”,在列表找tomcat-->将tomcat 8.x改为enabled --> 配置Tomcat Home Directory,在window找到Tomcat安装路径即可 -->ok
2)将项目部署在tomcat中:右键tomcat 8.x -->add Deployment-->在project选择要部署的项目名-->finish
 
3)启动:右键tomcat 8.x --> run Server
1.<welcome-file-list> 欢迎页的列表
<welcome-file> 欢迎页
 
表示,当用户访问了一个目录,而非一个html页面(或其他)时,会默认来welcome中寻找欢迎页来显示,如果没有该欢迎页时,会显示404页面或WebRoot目录的列表(取决于listings的值)
 
 
2.<load-on-startup> servlet启动时加载
如果在<servlet>标签下配置了该标签,则表示servlet将会在服务器启动时,加载servlet,并调用servlet的init()方法
 
/*
* servlet 生命周期 1.载入并初始化 init()方法,只执行一次 2.运行 每当用户发出一次请求时,调用service()方法。
* 1)当用户请求时
* ,服务器会创建一个线程,来调用servlet的service-->父类service-->父类的doGet/doPost方法:报405错
* 解决办法:重写doPost方法或doGet方法
* 2)servlet是单例(设计模式之单例模式)的,节约内存。不需要每次请求创建对象去处理。
*
* 3.销毁 destroy()方法,只执行一次
*/ int number = 0; @Override
public void init() throws ServletException {
System.out.println("servlet初始化!"); } @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("子类的doGet方法");
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("子类的doPost方法");
} /*
* @Override protected void service(HttpServletRequest req,
* HttpServletResponse resp) throws ServletException, IOException {
* System.out.println("servlet运行了!!!!"); number++;
* System.out.println(number);
*
* //super.service(req, resp); //调用父类的service方法 }
*/ @Override
public void destroy() {
System.out.println("servlet销毁");
}
子类一旦重写父类的方法之后只会调用子类的方法 ,而不会调用父类的方法
 
默认的欢迎文件列表
apache-tom-->conf-->web.xml打开底部设置
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
在启动时加载
<load-on-startup>1</load-on-startup>
数字小的先被加载
为负数或者其他字符将不被加载,直到被调用时--懒汉式
 
去除aaa
 <welcome-file-list>
<welcome-file>aaa</welcome-file>
</welcome-file-list>
去除first_web
apache-tomcat -->webapps-->修改first_web文件名为ROOT
去除8080
apache-tom-->conf-->server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改port为80
 
 
 

02 servlet基础 生命周期 tomcat web.xml的更多相关文章

  1. WEB基础(二)--servlet的生命周期

    Servlet的生命周期一般可以用三个方法来表示: init():仅执行一次,负责在装载Servlet时初始化Servlet对象 service() :核心方法,一般HttpServlet中会有get ...

  2. Spring,SpringMVC,MyBatis,Hibernate,Servlet的生命周期,jsp有哪些内置对象,Tomcat,Cookie和Session的作用以及区别,oracle,MYSQL等面试题总结

    1. 什么是Spring,谈谈你对Spring的理解 Spring是我们JAVA开发人员在搭建后台时选用的一个轻量级的开源框架,Spring框架目前也是功能丰富,十分优秀企业级采用最多的一个框架. S ...

  3. Servlet 生命周期与web容器的关系

    servlet生命周期由web容器(如tomcat)管理,初始化一次,直到web容器关闭才会被销毁.1.servlet是单例多线程,每个请求过来容器都会启用一个新线程 2.servlet在容器中保持单 ...

  4. Servlet基础(二) Servlet的生命周期

    Servlet基础(二) Servlet的生命周期 Servlet的生命周期可以分为三个阶段: 1.初始化阶段 2.响应客户请求阶段 3.终止阶段 Servlet的初始化阶段 在下列时刻Servlet ...

  5. java基础78 Servlet的生命周期

    1.Servlet的生命周期 简单的解析就是: 创建servlet实例(调用构造器)---->调用init()方法---->调用service()方法----->调用destroy( ...

  6. j2ee基础(1)servlet的生命周期

    Servlet的生命周期 Servlet 生命周期规定了 Servlet 如何被加载.实例化.初始化. 处理客户端请求,以及何时结束服务. 该生命周期可以通过 javax.servlet.Servle ...

  7. Java Web -- Servlet(5) 开发Servlet的三种方法、配置Servlet具体解释、Servlet的生命周期(2)

    三.Servlet的生命周期 一个Java servlet具有一个生命周期,这个生命周期定义了一个Servlet怎样被加载并被初始化,怎样接收请求并作出对请求的响应,怎样被从服务中清除.Servlet ...

  8. IT兄弟连 Java Web教程 Servlet的生命周期

    JavaWeb应用的生命周期由Servlet容器来控制,而Servlet作为JavaWeb应用的最核心的组件,其生命周期也由Servlet容器来控制.Servlet的生命周期可以分为3个阶段:初始化阶 ...

  9. JavaWeb学习之Servlet(二)----Servlet的生命周期、继承结构、修改Servlet模板

    [声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4140466.html 一.http协议回顾: 在上一篇文章中:JavaW ...

随机推荐

  1. Sollin算法的C++实现 BY gremount

    Sollin算法可以看作是Kruskal算法和Prim算法的综合 基本思想是: 1. 从所有节点都孤立的森林开始,通过合并树来得到最小生成树 2. 每次合并树的边都是用最小权重的割边 程序具体实现思路 ...

  2. ArcGIS超级工具1.6升级说明

    ArcGIS超级工具1.6升级说明:多了:7个工具,总82工具,只支持ArcGIS10.2以上的版本 1.6 Excel转点支持Excel的xls和xlsx,自动识别工作表和字段名,生成点 5.6 M ...

  3. webpack介绍和使用

    一webpack介绍1由来2介绍3作用4拓展说明5webpack整体认知二webpack安装1安装node2安装cnpm3安装nrm的两种方法4安装webpack三webpack配置0搭建项目结构1初 ...

  4. mac下如何安装python3?

    1. 安装homebrew $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/insta ...

  5. PHP根据传入的经纬度,和距离范围,返回所有在距离范围内的经纬度的取值范围

    /** * 根据传入的经纬度,和距离范围,返回所有在距离范围内的经纬度的取值范围 * @param float $lng 经度 * @param float $lat 纬度 * @param floa ...

  6. Docs-.NET-C#-指南-语言参考-预处理器指令:#if 预处理指令

    ylbtech-Docs-.NET-C#-指南-语言参考-预处理器指令:#if 预处理指令 1.返回顶部 1. #if(C# 参考) 2018/06/30 如果 C# 编译器遇到 #if 指令,最终是 ...

  7. Android:StateMachine 之 WifiStateMachine

    一.状态图: 二.代码分析: \frameworks\opt\net\wifi\service\java\com\android\server\wifi\WifiStateMachine.java 1 ...

  8. SQL SERVER SELECT语句中加锁选项的详细说明

    共享锁(读锁)和排他锁(写锁)   共享锁(S锁):共享 (S) 用于不更改或不更新数据的操作(只读操作),如 SELECT 语句. 如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能 ...

  9. Qt编写自定义控件49-飞机仪表盘

    一.前言 飞行仪表是测定和表示飞机数据的工具,飞机中必不可少的一部分,飞行员根据飞行仪表表示的数据才能正确地做出判断.一般飞机仪表包括高度表+空速表+垂直速率表+姿态仪+航向指示表+转弯协调表. 这次 ...

  10. matlab学习——04图与网络(最短路,最小生成树,最大流)

    04图与网络 1.最短路 (1) 自己写的dijstra算法 format compact; clc,clear all a=zeros(6); a(1,2)=50;a(1,4)=40;a(1,5)= ...