一.Tomcat:
- web服务软件,中小型的JavaEE服务器,仅仅反对大量的JavaEE标准servlet/jsp。
- 批改端口号:在conf/server.xml,也能够在idea中批改
部署web我的项目的办法有三种
- 间接将我的项目放到webapps目录下即可。
- 配置conf/server.xml文件
- 在confCatalinalocalhost创立任意名称的xml文件。在文件中编写<Context docBase="D:hello" />* 虚拟目录:xml文件的名称
部署我的项目到idea中,new project,java ee。而后去配置tomcat的配置文件
二.Servlet:
实现:
- 定义一个类,实现Servlet接口:public class ServletDemo1 implements Servlet
- 实现接口办法
- 去web.xml去配置Servlet
<!--配置Servlet --> <servlet> <servlet-name>demo1</servlet-name> <servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class> </servlet> <servlet-mapping> <servlet-name>demo1</servlet-name> <url-pattern>/demo1</url-pattern> </servlet-mapping>
执行原理:
- 当服务器承受到客户端浏览器的申请后,会解析申请URL门路,获取拜访的Servlet的资源门路
- 查找web.xml文件,是否有对应的<url-pattern>标签体内容。
- 如果有,则在找到对应的<servlet-class>全类名
- tomcat会将字节码文件加载进内存,并且创立其对象
- 调用其办法
也能够用Servlet3,在创立我的项目时能够抉择,
用Servlet3就比较简单,不必去配置web.xml文件,只须要注解配置,其中/demo就是urlPatterns(),和在web.xml配置的原理一样。
@WebServlet("/demo")public class ser implements Servlet{ @Override public void init(ServletConfig servletConfig) throws ServletException { System.out.println("init"); }
Servlet中的生命周期办法:
被创立:执行init办法,只执行一次
- 默认状况下,第一次被拜访时,Servlet被创立
能够配置执行Servlet的创立机会。在<servlet>标签下配置
1. 第一次被拜访时,创立: `<load-on-startup>`的值为正数
- 在服务器启动时,创立:
<load-on-startup>
的值为0或正整数
- 在服务器启动时,创立:
- Servlet的init办法,只执行一次,阐明一个Servlet在内存中只存在一个对象,Servlet是单例的。
多个用户同时拜访时,可能存在线程平安问题。
解决:尽量不要在Servlet中定义成员变量。即便定义了成员变量,也不要对批改值。比方买票,定义个成员变量,他就会共享。如果同时买票,或者退票,就会呈现问题。 - 提供服务:执行service办法,执行屡次:每次拜访Servlet时,Service办法都会被调用一次。
被销毁:执行destroy办法,只执行一次。
Servlet被销毁时执行。服务器敞开时,Servlet被销毁,只有服务器失常敞开时,才会执行destroy办法。destroy办法在Servlet被销毁之前执行,个别用于开释资源。