【问题标题】:Dynamically set context-param in tomcat webapp?在tomcat webapp中动态设置上下文参数?
【发布时间】:2012-09-05 15:59:17
【问题描述】:

我在 tomcat_5.0.28, Linux 上部署了 webapp。

我的应用程序是多用户和配置文件(用户可以是管理员或只是简单用户)。

在我的web.xml 我有这些行

...
<web-app>
    <display-name>my-app</display-name>
    <context-param>
        <param-name>configFileName</param-name>
        <param-value>/WEB-INF/my-app-config.xml</param-value>
    </context-param>
    ...

如何在用户登录时根据他的个人资料设置参数configFileName的值

【问题讨论】:

  • 我的意思是如果用户的个人资料是管理员,那么 /WEB-INF/my-app-config-adm.xml 如果是简单用户 /WEB-INF/my- app-config-usr.xml
  • 您是否从 servlet 中获取参数值?如果是这样,为什么不通过获取用户主体来根据登录用户确定文件名?这篇文章可能会有所帮助。 stackoverflow.com/questions/5976921/…
  • 我在用户登录后使用request.getRemoteUser() 获取用户名,但是我更改了param-value 它为所有用户(不仅是活动用户)更改。
  • 不要更改参数值。也许将参数值设置为/WEB-INF/my-app-config-{username}.xml 之类的模板。获得远程用户后用它替换 {username} 。现在你有了用户配置文件的路径。

标签: xml jsp tomcat web-applications


【解决方案1】:

如果可以使用参数值作为模板

 <param-name>configFileName</param-name>
 <param-value>/WEB-INF/my-app-config-{username}.xml</param-value>

那你的jsp可以是​​这样的

 String userName = request.getRemoteUser()
 String temp = context.getInitParameter("configFileName");
 String fileName = temp.replace("{username}", userName);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    • 2012-03-05
    • 2011-07-06
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 2016-06-12
    相关资源
    最近更新 更多