标签:init 单例 上下 web 全局 gen 构造方法 service --
一、配置
1.基于web.xml的方式
<servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.claudxyz.servlet.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myServlet</url-pattern> </servlet-mapping>
2.基于注解
@WebServlet("/demo") public class MyServlet implements Servlet { }
二、加载顺序
1.构造方法,web容器通过反射调用无参的构造方法创建对象
2.init(),类似于单例模式,只创建一次
3.service(),请求几次,访问几次
4.destroy(),web容器关闭调用
三、servletConfig
1.getInitParameter() 获取web.xml servlet下的init_param
<servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.claudxyz.servlet.MyServlet</servlet-class> <init-param> <param-name>name</param-name> <param-value>admin</param-value> </init-param> <init-param> <param-name>password</param-name> <param-value>root123</param-value> </init-param> </servlet>
2.getInitParameterNames() 获取参数名称
3.getServletName() 获取servlet全类名
4.getServletContext() 获取servlet上下文对象ServletContext对象。对象包括整个web服务器的信息。
5.ServletConfig和ServletContext区别:ServletConfig作用于单个serlvet,其中包括getInitParameter()取的是serlvet下的init-param,而ServletContext的getInitParameter()取的是全局的context-param的值
<context-param> <param-name>username</param-name> <param-value>bigadmin</param-value> </context-param>
四、servlet层次
Servlet --> GenericServlet --> HttpServlet
Servlet存在冗余的方法,GenericServlet实现了Serlvet并抽象了service方法,去除了用户不关心的方法。
HttpServlet extends GenericServlet,通过向下转型,使ServletRequest转换成HttpServletRequest,ServletReponse转换成HttpServletReponse,为的就是使用HttpServletRequest的getMethod方法,为的就是判断前台请求是GET、POST or 其他的类型。
后期使用servlet直接继承HttpServlet即可。
标签:init 单例 上下 web 全局 gen 构造方法 service --
原文地址:https://www.cnblogs.com/claduxyz/p/12322695.html