为什么需要用到tomcat服务器?
web应用(开发好的web项目)必须部署到web服务器(如tomcat)上,别人才能通过浏览器访问到。
Tomcat:Apache组织提供一个免费开源的小型的服务器软件。支持Servlet和JSP规范。
因为tomcat技术先进,性能稳定,而且免费。因而深受Java爱好者的喜爱,是目前比较流行的Web应用服务器。
【作用】 运行web项目。
tomcat目录
将下载的zip文件解压后,可以看到如下的目录结构:
bin:脚本目录
启动脚本:startup.bat
停止脚本:shutdown.bat
conf:配置文件目录 (config /configuration)
核心配置文件:server.xml
用户权限配置文件:tomcat-users.xml
所有web项目默认配置文件:web.xml
lib:依赖库,tomcat和web项目中需要使用的jar包
logs:日志文件.
localhost_access_log..txt tomcat记录用户访问信息,..表示时间。
例如:localhost_access_log.2017-04-28.txt
temp:临时文件目录,文件夹内内容可以任意删除。
webapps:默认情况下发布WEB项目所存放的目录。
work:tomcat处理JSP的工作目录。
如何直接访问tomcat中的项目?
如何直接发布?必须将静态文件等放在webapps中的ROOT文件夹内.否则访问不到.(根目录)
访问地址:localhost:8080/文件名
用ideal发布:
方式二:IDEA配置tomcat直接发布项目
第一步:配置JRE
在Run Configurations中,选择JRE。
第二步:启动项目
什么是Servlet
Servlet 运行在服务端的Java小程序,是sun公司提供一套规范,用来处理客户端请求、响应给浏览器的动态web资源。
Servlet 的作用
Servlet入门开发步骤
创建一个普通java类实现Servlet接口;
重写Servelt接口中的所有抽象方法;
注册这个类;过程:
a. 在web.xml中配置这个类的信息;
b. 配置这个类的映射路径;
在service方法中处理请求和响应的业务逻辑;
发布项目,启动项目之后,通过映射路径访问这个类;
执行步骤:
1.浏览器访问路径
2.路径映射到对应的类上
3.执行里面的service方法(第一次会先执行初始化init方法)
Servlet生命周期
. Servlet对象的创建:
1. 创建者:tomcat;创建时机:在Servlet第一次被访问的时候;
2. 特点:
1. 只会创建一次(单例);
2. 对象创建完成之后,会调用init()方法;
2. Servlet运行:
1. service()方法接收用户的请求,和处理响应;
2. 特点:
1. 每次对这个Servlet的访问都会由service()方法来处理;
2. service()方法的两个参数:request和response对象专门用来处理请求和响应;
3. Servlet销毁:
1. Servlet对象在服务器正常关闭的时候销毁;
2. 特点:
1. 销毁的时候会调用destory()方法;
url-pattern中的映射路径配置存在以下几种方式:
【关于缺省路径】
URL输入http://localhost:8080/servlet_test/index.html 如何读取文件? //localhost 是本地计算机的默认WEB发布路径,8080是端口号。 如果你访问这个URL,就可以看到你本机上WEB服务器发布的内容。
1)到当前day10应用下的web.xml文件查找是否有匹配的url-pattern。
2)如果没有匹配的url-pattern,则交给tomcat的内置的DefaultServlet处理。
3)DefaultServlet程序到day10应用的根目录下查找是否存在一个名称为index.html的静态文件。
4)如果找到该文件,则读取该文件内容,返回给浏览器。
5)如果找不到该文件,则返回404错误页面。
<servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>com.heima.servlet.HelloServlet</servlet-class> </servlet> <!--2.配置映射路径,映射到HelloServlet--> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping>
普通的Servlet对象在我们第一次访问的时候创建, 开发中,如果我们需要在服务器启动的时候,初始化Servlet对象应该如何编写呢?
解决:此时的业务场景,我们需要在web.xml文件中给指定的Servlet添加一个标签
实现步骤:在web.xml中在
注解开发:Servlet3.0新特性
创建完成后,Servlet类上面会默认添加一个注解@WebServlet(name="Servlet3Demo") 。这个@WebServlet注解就是用来配置当前这个Servlet的。这个注解中常用的有两个属性:
package com.heima.servlet;
@WebServlet(name = "Servlet3Demo",urlPatterns = "/servlet3")
或者
@WebServlet("/servlet3")