首页 > 编程知识 正文

servlet 初始化,servlet初始化阶段

时间:2023-05-04 11:07:03 阅读:215612 作者:658

servlet大致分为2.5版本和3.0版本的,两者都需要继承Httpservlet!
这两个版本的最大区别就是,前者需要在web.xml配置相关信息,后者直接写到注解里面。但现在大部分编译软件已经帮我们解决了这个麻烦,可以直接通过创建不同版本的servlet,后台自动帮你配置。
而本文讲的是编译器无法自动完成初始化参数的操作。
首先,我们得知道servlet可以继承父类的init和destroy方法。
init方法
在收到第一次请求时会自动执行,和dopost/doget的最大区别就是,后者是每次接受到请求就会执行。
当然我们通过一定的设置,可以使得init正在tomcat启动时就执行
具体请看下方
2.5在web.xml的相应《servlet》标签体中加上《load-on-startup》

<servlet> <servlet-name>WelcomeServlet2</servlet-name> <servlet-class>org.lanqiao.servlet.WelcomeServlet2</servlet-class> <load-on-startup>1</load-on-startup><!-- 设置servlet中的初始化在tomcat运行时执行 --></servlet>

3.0方式是在注解里面写

@WebServlet(value="/WelcomeServlet",loadOnStartup=1)

destroy方法
在关闭tomcat服务器的时候,程序会默认执行。

现在回归正题*

初始化参数分为局部和全局的
局部的参数只能当前serverlet可以使用,全局的参数是整个项目都能使用,下来具体来讲具体怎么配置和使用。
2.5方式的局部配法

<servlet> <servlet-name>WelcomeServlet2</servlet-name> <servlet-class>org.lanqiao.servlet.WelcomeServlet2</servlet-class> <load-on-startup>1</load-on-startup><!-- 设置servlet中的初始化在tomcat运行时执行 --> <init-param><!-- 局部初始化参数 --> <param-name>servletparamname</param-name> <param-value>servletparamvalue..</param-value> </init-param> </servlet>

3.0方式的局部

@WebServlet(value="/WelcomeServlet",loadOnStartup=1,initParams= {@WebInitParam(name="servletparamname30",value="servletparamvalue")})

值得注意的是,无论是2.5还是3.0,全局的初始化参数都必须配置web.xml文件!例如下方的:

<context-param> <param-name>globalParam</param-name> <param-value>global value...</param-value> </context-param>

最后给大家举个2.5使用的例子:(3.0也是一样的,只是我2.5前面的信息写的比极全面,便于读者联系上下文)

public void init() throws ServletException {//第一次访问servlet会被执行 System.out.println("init....."); //获取当前servlet的初始化参数 String value = super.getInitParameter("servletparamname"); System.out.println("当前servlet的参数servletparamname的值是:"+value); //获取当前Web容器的初始化参数 ServletContext servletContext = super.getServletContext() ; String globalValue = servletContext.getInitParameter("globalParam"); System.out.println("当前Web容器的 参数globalValue的值是:"+globalValue); }

好了,以上就是我的一些看法。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。