Servlet
Servlert概念
是javaEE十三个规范中的一个,规范就是借口,使用java语言编写的运行在服务器端的小程序
2.快速入门
1.实现Servlet借口,并实现五个方法
init():---->初始化当前Servlet信息,只会调用一次
getServletConfig():--->获取当前Servlet配置信息
Servlet():--->获取当前Servlet类对外提供的具体服务,就在Service里面,每次请求都会调用一次
getServletinfo():---->获取Servlet类的相关信息
destory():--->销毁Servlet类对象信息,当Servlet对象用多个的时候就会被销毁
web.xml代码演示
<!--ServletDemo01,要关联项目中对应的Servlet服务类-->
<servlet>
<servlet-name>Test</servlet-name><!--关联起来就不会报红了-->
<servlet-class>demo01.Test</servlet-class><!--是一个全限定类名,类的全路径=包名+类名 刻画u但窗口i西安市的就是这个类里面的Servlet方法中的数据-->
<load-on-startup>1</load-on-startup><!--手动指定服务类加载的时机,数字越小越先被加载-->
</servlet>
<!--对于Tomcat服务器来说,默认打开的页面是以index开头的页面,index.html或者index.jsp,就是欢迎页面-->
<welcome-file-list> <!--是一个欢迎界面列表--><!--优先级别,从上往下赵,前面没找到才会找后面的-->
<!--但是一般是不指定的使用Tomcat默认的欢迎界面-->
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
**Servlet实现类代码演示**
//让该类变成一个Servlet类,需要遵从Servlet规范--->实现Servlet接口
//用于链接客户端和服务端的中间器件 需要借助Tomcat
//首先把项目部署到Tomcat中
public class ServletDemo01 implements Servlet {
//init()--->初始化当前Servlet信息
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
//getServletConfig-->获取当前Servlet配置信息
@Override
public ServletConfig getServletConfig() {
return null;
}
//Service()-->获取当前Servlet类对外提供的具体服务,就在Service里面,每次请求都会调用一次
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
//请求改服务,让页面显示一句话
System.out.println("请求成功!"); //这个只会显示子在服务窗口不会显示在客户端,就要使用流操作
//数据传输 使用流 打印流 打印到客户端中
servletResponse.getWriter().write("aiaiaiia");
}
//getServletInfo()-->获取Servlet类的相关信息
@Override
public String getServletInfo() {
return null;
}
//destory--->销毁Servlet类对象信息,当Servlet对象调用多个时候就会被销毁
@Override
public void destroy() {
}
}
2.部署步骤
1.先部署到当前项目到Tomcat中
2.让浏览器刻画段找到项目对外提供的服务--->就是路径的映射:url-pattern,在web.xml中注册服务:目的就是映射浏览器客户端的url地址,就是具体某个服务请求
3.启动Tomcat服务器--->点击运行小图标--->会运行默认的页面--->对于Tomcat服务器来说,默认打开的页面就是index开头的html或者jsp页面,也就是我们的欢迎页面
4.启动Tomcat页面,并把url田家玮我们之前设定的url-pattern标签地址,就能显示我们指定的servlet-class标签类,Servlet方法里面的数据了
3.内部实现原理
1.Servlet是一套javaEE的规范:约束服务端的请求,包含三个技术点:Servlet技术(服务),filter技术(过滤器),listener技术(监听器)
2.原理:当客户端发送请求过来,Tomcat会先解析请求的url路径,在web.xml文件中去找对应的url- pattern标签地址,找到了就去读取在servlet-name标签里面的类名,找到对应的服务类,加载服务类信息,Tomcat会创建找到的类对象,再调用里面的servlet方法,执行里面的内容,如果该服务类是第一次被请求,就会调用init()方法初始化该类对象的信息,然后再调用service方法里面的内容
4.Servlet生命周期
nit()::::::服务类第一次请求的时候,创建对象就会调用init()方法初始化类对象信息
service():::::每次发送请求的时候会被执行。
ServletRequest:代表请求,会把Http请求的所有信息装配到ServletRequest对象中
ServletResponse:代表响应,会把Http响应中的信息装配到ServletReponse对象中
destory():Servlet类对象被销毁的时候就会被调用--->比如代码该了,类对象就被销毁了,服务器被销毁