当前位置: 首页 > 知识库问答 >
问题:

GWT中的“Servlet”(服务器端)初始化代码

万俟英锐
2023-03-14

如何在GWT应用程序的服务器端进行一次初始化?

我可能想的很像HttpServlet,您可以重写init(),但旧习惯很快就会消失;)

我想做的是:

> < li>

加载一组属性

建立与数据库的连接

共有2个答案

狄冠宇
2023-03-14

加载一堆属性?

注册ServletContextListener以在服务器启动时加载Init参数。

加载属性并使其对其他类静态可见。

我已经发布了一个示例代码 在servlet之外检索初始化参数

建立与数据库的连接?

使用JNDI绑定数据源。

使用Connection Utility类获取连接,并在连接完成后立即关闭连接。

下面是示例代码。

import java.sql.Connection;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import com.woodmac.datavisualizer.shared.DVConstants;

public class ConnectionUtil {

    private DataSource dataSource;

    private static ConnectionUtil instance = new ConnectionUtil();

    private ConnectionUtil() {
        try {
            Context initContext = new InitialContext();
            dataSource = (DataSource) initContext.lookup(JNDI_LOOKUP_NAME);

        } catch (NamingException e) {
            e.printStackTrace();
        }
    }

    public static ConnectionUtil getInstance() {
        return instance;
    }

    public Connection getConnection() throws SQLException {
        Connection connection = dataSource.getConnection();
        return connection;
    }

    public void close(Connection connection) throws SQLException {
        if (connection != null && !connection.isClosed()) {
            connection.close();
        }
        connection = null;
    }
}

如果您在独立模式下使用JBOSS。然后,只需在<code>standalone中执行一些条目。xml创建数据源。只需根据您的数据库连接更新它的一些值,例如<code>连接url</code>、<code>用户名</code>和<code>密码</code>。

在这种情况下JNDI_LOOKUP_NAME将是java: jBOSS/datas的来源/甲骨文

<datasource jta="true" jndi-name="java:jboss/datasources/oracle" pool-name="OracleDS" enabled="true" use-java-context="true" use-ccm="true">
    <connection-url>jdbc:oracle:thin:@ipaddress:1521/sid</connection-url>
    <driver>oracle</driver>
    <new-connection-sql>select * from dual</new-connection-sql>
    <pool>
        <min-pool-size>20</min-pool-size>
        <max-pool-size>50</max-pool-size>
        <prefill>true</prefill>
    </pool>
    <security>
        <user-name>username</user-name>
        <password>password</password>
    </security>
    <validation>
        <check-valid-connection-sql>select * from dual</check-valid-connection-sql>
        <background-validation>true</background-validation>
    </validation>
    <timeout>
        <blocking-timeout-millis>30000</blocking-timeout-millis>
        <idle-timeout-minutes>1</idle-timeout-minutes>
        <use-try-lock>60</use-try-lock>
        <allocation-retry>1</allocation-retry>
    </timeout>
</datasource>
奚卓
2023-03-14

您可以添加注释中提到的 ServletContextListener

public class ServerConfig implements ServletContextListener {

    public void contextInitialized(ServletContextEvent event) {
    // Do stuff on startup.
    }

    public void contextDestroyed(ServletContextEvent event) {
    // Do stuff on shutdown.
    }
}

现在将新类放在服务器端,您还必须在web.xml文件中注册侦听器:

<listener>
<listener-class>path.to.class.ServerConfig</listener-class> 
</listener>
 类似资料:
  • 在Servlet 3.0以上的环境下,你可以通过编程的方式来配置Servlet容器了。你可以完全放弃web.xml,也可以两种配置方式同时使用。以下是一个注册DispatcherServlet的例子: import org.springframework.web.WebApplicationInitializer; public class MyWebApplicationInitializer

  • 问题内容: 实施GWT服务器端国际化的最佳方法是什么? 使用本地Java属性文件(不确定如何读取以及如何找到正确的语言文件)(unicode字符串需要ASCII编码) 使用GWTI18N.java -GWT模块,该模块可让您在客户端和服务器上无缝使用GWT I18N,并使用“ java.lang.reflect.Proxy方法” 使用Kotori I18N -… 还有其他想法吗? 如何找到本地化并

  • 在jetty嵌入式服务器启动后,我需要运行自己的逻辑。由于类加载器问题,我不会从主类开始。理想的解决方案似乎是从servlet初始化运行我的服务器逻辑。但是在jetty服务器启动后,不会调用init函数和构造函数。在第一个HTTP请求期间,正在创建servlet的一个实例。有没有可能让jetty立即初始化我的servlet,或者我真的需要用我的自定义类加载器加载所有类,然后启动jetty服务器?

  • 我正在用Apache CXF 2.7.8开发web服务。我使用wsdl2java来生成SEI和实现。有数百个web服务endpoint。 我使用嵌入式码头。 当服务器启动时,初始化每个endpoint需要几个小时。 我曾经使用 Endpoint.publish(地址、实现器)方法发布endpoint,但我发现通过这种方式,可以为每个服务创建一个 JAXBContext 实例。我修复了为每个服务使用

  • Serenity 使用服务定位器模式(service locator pattern)抽象其依赖,以使其可以与你所选的库(libraries)和服务提供者(service providers)一起工作。 例如,Serenity 并不关心你是如何存储用户,但是它可以通过抽象(IAuthorizationService、IUserRetrieveService 等)查询当前用户。 与你在应用程序中使用

  • 我是GWT的新手,我有一个在GWT上开发的应用程序。我需要在服务器端集成一个用python开发的程序。用python开发的应用程序必须取一个MalLab文件,然后按格式生成一些文件。PNG。目前,我对python程序进行了更改,因为它必须将文件放在特定的网址上。你是如何在服务器端将GWT应用程序与python集成的?。 python中的程序是: