当前位置:首页 » 网页前端 » web启动后执行
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

web启动后执行

发布时间: 2022-08-20 03:25:44

‘壹’ 如何在一个web系统启动之后,马上执行一个方法!怎么配置

web.xml配置
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
在servlet的Init里定义你要开始加载的方法 配置文件的意思http://www.blogjava.net/xzclog/archive/2011/09/29/359789.html

‘贰’ web服务器启动时执行一个动作,代码怎么写

不知道你要执行什么动作,也不讲清楚

‘叁’ spring定时器执行不了为什么是WEB程序启动后自动执行

我记得要加 task:annotation-driven 标签的

‘肆’ java Web 启动时自动执行代码的几种方式

Web容器启动后执行代码的几种方式
其执行顺序为:

4===>5===>1===>2===>3
即指定init-method的Bean开始执行
接着实现spring的Bean后置处理器开始执行
然后是Servlet的监听器执行
再接下来是Servlet的过滤器执行
最后才是Servlet执行

1、实现Servlet监听器接口ServletContextListener

[java] view plain
public class InitListener implements ServletContextListener {

@Override
public void contextDestroyed(ServletContextEvent context) {

}

@Override
public void contextInitialized(ServletContextEvent context) {
// 上下文初始化执行
System.out.println("================>[ServletContextListener]自动加载启动开始.");
SpringUtil.getInstance().setContext(
<span style="white-space:pre"> </span>WebApplicationContextUtils.getWebApplicationContext(arg0.getServletContext())
<span style="white-space:pre"> </span>);
}

}
然后在web.xml文件配置该监听器

[html] view plain
<listener>
<listener-class>com.test.init.InitListener</listener-class>
</listener>

2、实现Servlet的过滤器Filter

[html] view plain
public class InitFilter implements Filter {

@Override
public void destroy() {

}

@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException,
ServletException {

}

@Override
public void init(FilterConfig config) throws ServletException {
System.out.println("================>[Filter]自动加载启动开始.");
// 读取Spring容器中的Bean[此时Bean已加载,可以使用]
//写启动需要执行的代码
System.out.println("================>[Filter]自动加载启动结束.");
}

}
然后在web.xml文件配置过滤器即可

[html] view plain
<filter>
<filter-name>InitFilter</filter-name>
<filter-class>com.test.init.InitFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>InitFilter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>

3、编写一个Servlet,在web.xml里面配置容器启动后执行即可

[html] view plain
public class InitServlet extends HttpServlet {

/**
*/
private static final long serialVersionUID = 1L;

@Override
public void init(ServletConfig config) {
try {
super.init();
} catch (ServletException e) {
e.printStackTrace();
}
System.out.println("================>[Servlet]自动加载启动开始.");
// 读取Spring容器中的Bean[此时Bean已加载,可以使用]
//执行想要的代码
System.out.println("================>[Servlet]自动加载启动结束.");
}
}

然后在web.xml文件配置该Servlet的启动方式为:容器启动后执行
<servlet>
<servlet-name>InitServlet</servlet-name>
<servlet-class>com.test.init.InitServlet</servlet-class>
<init-param>
<param-name>username</param-name>
<param-value>test</param-value>
</init-param>
<!-- 此处指定加载顺序为2,表明还有优先级更高的Servlet要先执行 -->
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>InitServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
关于启动后执行,由load-on-startup指定:
(1)当值为0或者大于0时,表示容器在应用启动时就加载这个servlet。值越小,启动优先级越高;
(2)当是一个负数时或者没有指定时,表示该servlet被调用时才加载。

4、如果你使用Spring IOC作为Bean管理容器,那么可以指定init-method其中init-method表示bean加载成功后,立即执行某个方法。配置如下:start为要执行的方法名称

[html] view plain
<!-- service -->
<bean id="shopService" class="com.test.teach.service.ShopService" <span style="color:#33ffff;">init-method="start"</span>>
<property name="shopDao" ref="shopDao" />
</bean>

‘伍’ 我用spring的定时器隔半个小时去扒数据,但是我想web启动就立即执行,然后后隔半个小时执行,不知道怎么配

一起动的时候就调用,这个你可以写个监听,第一次调用在监听里调用。
以后每隔半小时调用可以使用定时器。

我们定时器是用的quartz.先引入这个的Jar包。

在application-context.xml中,进行相关的配置。

定义一个任务,用来调用方法执行指定的任务。
<bean id="hourTask"
class="org.springframework.scheling.quartz.">
<property name="targetObject" ref="方法所在的类的bean的ID"/>
<property name="targetMethod" value="指定的方法"/>
<property name="concurrent" value="false"/>
</bean>

然后定义一个表达式,定义什么时候执行调用指定的任务。
<bean id="cronReportTriggerHour" class="org.springframework.scheling.quartz.CronTriggerBean">
<property name="jobDetail" ref="hourTask"/>
<property name="cronExpression" value="0 0/30 0 * * ?"/>
</bean>

最后调用上面的定时器
<bean id="schelerFactory" class="org.springframework.scheling.quartz.SchelerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronReportTriggerHour"/>
</list>
</property>
</bean>
要先在相关的配置文件中配置类的bean,targetObject指向这个类,targetMethod指向执行任务的方法。
希望可以帮到你。

‘陆’ 如何让spring mvc web应用启动时就执行特定处理

一、ApplicationContextAware接口
package org.springframework.context;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.Aware;
import org.springframework.context.ApplicationContext;

public interface ApplicationContextAware extends Aware {
void setApplicationContext(ApplicationContext var1) throws BeansException;
}

二、ServletContextAware 接口
package org.springframework.web.context;

import javax.servlet.ServletContext;
import org.springframework.beans.factory.Aware;

public interface ServletContextAware extends Aware {
void setServletContext(ServletContext var1);
}

三、InitializingBean 接口
package org.springframework.beans.factory;

public interface InitializingBean {
void afterPropertiesSet() throws Exception;
}

四、ApplicationListener<ApplicationEvent> 接口
package org.springframework.context;

import java.util.EventListener;
import org.springframework.context.ApplicationEvent;

public interface ApplicationListener<E extends ApplicationEvent> extends EventListener {
void onApplicationEvent(E var1);
}

示例程序:
package test.web.listener;

import org.apache.logging.log4j.*;
import org.springframework.beans.*;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.*;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;
import org.springframework.web.context.ServletContextAware;
import javax.servlet.ServletContext;

@Component
public class StartupListener implements ApplicationContextAware, ServletContextAware,
InitializingBean, ApplicationListener<ContextRefreshedEvent> {

protected Logger logger = LogManager.getLogger();

@Override
public void setApplicationContext(ApplicationContext ctx) throws BeansException {
logger.info("1 => StartupListener.setApplicationContext");
}

@Override
public void setServletContext(ServletContext context) {
logger.info("2 => StartupListener.setServletContext");
}

@Override
public void afterPropertiesSet() throws Exception {
logger.info("3 => StartupListener.afterPropertiesSet");
}

@Override
public void onApplicationEvent(ContextRefreshedEvent evt) {
logger.info("4.1 => MyApplicationListener.onApplicationEvent");
if (evt.getApplicationContext().getParent() == null) {
logger.info("4.2 => MyApplicationListener.onApplicationEvent");
}
}

}

运行时,输出的顺序如下:

1 => StartupListener.setApplicationContext
2 => StartupListener.setServletContext
3 => StartupListener.afterPropertiesSet
4.1 => MyApplicationListener.onApplicationEvent
4.2 => MyApplicationListener.onApplicationEvent
4.1 => MyApplicationListener.onApplicationEvent

注意:onApplicationEvent方法会触发多次,初始化这种事情,越早越好,建议在setApplicationContext方法中处理。

‘柒’ 做java web项目,在tomcat启动后,执行某个功能,第一次执行会报错。以后不会。求解答~~

castexception应该是你强制转型出现的错误吧,上面指出了出错位置是在indexaction的57行,你可以试试扔出异常,或在try里面处理

‘捌’ 如何让spring mvc web应用启动时就执行特定处理

第一步:在spring的配置文件中增加一个bean配置,如:

<bean class="com.test.InitBean"></bean>
第二步:添加对应的bean类,实现org.springframework.beans.factory.InitializingBean接口,该接口只有一个afterPropertiesSet方法,应用启动时spring加载完成后,即会调用这个方法,在方法中调用你需要的操作即可,如:
@Override
public void afterPropertiesSet() throws Exception {
//TODO 你要做的操作

‘玖’ Java中如何让web服务器启动的时候自动运行web程序中某个类的某个

1、首先让需要自动运行的类继承javax.servlet.http.HttpServlet

2、把需要自动运行的类中写一个init方法。(servlet应用程序启动的入口就是init方法)

publicvoidinit(){
System.out.println("这样在web容器启动的时候,就会执行这句话了!");
}

3、在web.xml中新建一个servlet,如下:

<servlet>
<servlet-name>GenerateData</servlet-name>
<servlet-class>com.yq.javaSCADA.business.impl.GenerateData</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

4、启动的web服务器,tomcat,weblogic,jboss,就会自动运行类中的init方法了。

‘拾’ java web项目启动后执行某个方法

filter 拦截器是能这么做的,但是打字太费劲了;
和你说个简单的场景,web项目启动后,会跳转一个index.jsp吧,你用ajax 在jsp中调用一下;如果在index.jsp就要使用此方法返回的数据,让项目跳转到index0.jsp ajax跳转到index.jsp 就可以了;
说个思路,此方法也就取个巧