Servel项目:
1、步骤:
1)创建servlet类,继承于httpservlet
2)配置web.xml文件
3)项目发布到tomcat(webapps)中
4)访问路径:http://localhost:8080/站点名称/Servlet映射路径
2、路径匹配:
精确匹配:/FiveServlet
模糊匹配:*.do、*.xxx、/*
优先级:精确匹配>模糊匹配(/* > *.do)
Servlet路径 一般都是精确匹配!!!,模糊匹配主要应用在后面过滤器中!
3、Servlet层次关系:
Servlet是一个接口,定了前后端如何交互
public interface Servlet {
void init(ServletConfig var1);
//初始化方法,Servlet对象创建成功后,默认只调用一次,仅一次
ServletConfig getServletConfig();//获取Servlet配置对象
void service(ServletRequest var1, ServletResponse var2) ;
//服务方法、核心方法(实现前后端交互)
String getServletInfo();//获取Servlet信息
void destroy();//摧毁方法 释放内存空间
}
GenericServlet:扩展了servlet接口功能,但是没有实现 最为核心servlet();GenericServlet不能直接使用
HttpServlet:基于http协议实现了servlet规范
HttpServlet实现了servlet(),可以直接使用;复写doGet/dopost方法
注:目前只有HttpServlet实现了servlet规范,所以我们只能继承该HttpServlet,没有其他选择
5、Servlet生命周期:
三阶段:init()初始化阶段;service()处理客户端请求阶段;destroy()终止阶段
过程:第一次访问servlet时候,创建servlet对象(单例),只创建一次(构造函数只执行一次);并且调用初始化方法init(),一直到服务器关闭;调用destory(),释放空间。
单例:指内存中只有一个对象 单个实例(对象)
5、获取数据:
服务端获取:指从服务端获取数据,
ServletConfig:Servlet配置对象;所有Servlet配置信息,都在该对象中
ServletContext:整个应用上下文环境,也就是说,web.xml中所有信息都在这个对象中 <web-app>...</web-app>
public void init() throws ServletException {
System.out.println("-----NineServlet-----init----");
ServletConfig servletConfig = this.getServletConfig();
System.out.println(servletConfig.getServletName());
System.out.println(servletConfig.getInitParameter("name"));
System.out.println(servletConfig.getInitParameter("age"));
System.out.println("*****************************");
Enumeration<String> initParameterNames = servletConfig.getInitParameterNames();
//枚举
while (initParameterNames.hasMoreElements()){
String nextElement = initParameterNames.nextElement();
System.out.println(nextElement+"->"+servletConfig.getInitParameter(nextElement));
}
System.out.println("------------------------------------");
ServletContext servletContext = this.getServletContext();
System.out.println(servletContext.getInitParameter("name"));
System.out.println(servletContext.getInitParameter("age"));
System.out.println(servletContext.getServletRegistrations());
}