我有一个三层应用程序,我必须进行修改。我对Java的整个Web知识都是陌生的,所以请多多包涵。
当前,应用程序具有UI,应用程序和数据库层,但是我试图使用依赖注入将SQL数据库与数据库层分离。
因此,在某些时候,我不需要在应用程序中使用SQL Server凭据,因为数据库后端可能是纯文本。
关键是当前的SQL凭据作为init参数存储在web.xml文件中。这些是通过servlet代码获取的,如下所示:
String cfgfile = getInitParameter("config_file");
properties.load(new FileInputStream(cfgfile));
//Some code..
properties.getProperty("dbUser");
这发生在前端,传递给applicationlayer构造函数,然后将其传递给数据库构造函数。
这样就可以了,但是凭据只是传递给数据访问层,然后创建一个SQLDatabase。
所以我想我只是将这些凭据放入SQL特定类中。但是,我一直在坚持如何将它们从web.xml文件中删除。
我尝试使用,getServletContext()
但这似乎不起作用。
我可以想象在DAL级别上没有任何servlet的概念,因此我坚持如何解决这个问题。
注册 ServletContextListener 以在服务器启动时加载Init参数。
加载属性并使它对其他类静态可见。
样例代码:
public class AppServletContextListener implements ServletContextListener {
private static Properties properties;
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
String cfgfile = servletContextEvent.getServletContext().getInitParameter("config_file");
properties.load(new FileInputStream(cfgfile));
//Some code..
properties.getProperty("dbUser");
}
public static Properties getProperties(){
return properties;
}
}
web.xml:
<listener>
<listener-class>com.x.y.z.AppServletContextListener</listener-class>
</listener>
<context-param>
<param-name>config_file</param-name>
<param-value>config_file_location</param-value>
</context-param>
问题内容: 我有一个第三方表单解决方案,可以通过导入javascript文件将其嵌入到我的网站中。嵌入脚本的说明实际上与“复制并粘贴以下内容”类似: 看一下实际的javascript文件,它基本上只是一组 现在,我尝试了几件事…我有一个带有模板URL的指令,该指令命中包含该脚本的简单部分。看起来像这样: 指示: form.html 发生的一切只是呈现了html,但脚本的内容却没有… 我尝试了一个请
`我试图用laravel从外部api检索一些数据:这是我的控制器 使用Illumbite\Http\请求;使用Illumb\Support\Facades\Http;
在我的请求中,我有一个参数名“accessToken”,如何从ProceedingJoinPoint获取请求参数值? 调用方法: 我想在AOP中获得这个访问令牌。 提前谢谢。
消息 说明服务器遇到内部错误(),无法运行 根本原因 根本原因 当我将浏览器用作http://localhost:8080/sample/rest/app/test将返回一个json数据类型。。 产品类 StringService类 StringServiceApplication 我的网络。xml 我的jboss网站。xml 构建路径上的我的库——javassist-3.12.1。GA-json
在eclipse中运行此程序时出现异常。Servlet。servlet示例的init()引发了异常描述服务器遇到了一个内部错误,使其无法满足此请求。
问题内容: 给定如下所示的URL,如何解析查询参数的值?例如,在这种情况下,我需要的值。 我在我的环境中使用Django;有没有一种方法可以帮助我? 我尝试使用,但它没有返回ghi我希望的值。 问题答案: Python 2: Python 3: 返回值列表,因此上述代码将打印。