如何修改servlet中的String类型?

时间:2012-10-22 13:59:55

标签: java servlets

假设我有一个基于java servlet的Web应用程序,该应用程序读取文件系统上的文件。

现在这些文件不断变化,因此有一个VERSION变量用于引用正确的子文件夹:

/app-files/version0001/....

如果修改了某些文件,则会创建一个新版本的子文件夹,并且servlet应该在这里查找:

/app-files/version0002/....

如何在我的servlet中创建这个VERSION变量,使其可全局访问,当我需要修改它时,我可以以线程安全的方式?

该变量将被修改为我的互联网服务,该服务将发出如下的HTTP请求:

www.example.com/updateVersion?v=0003&secretKey=asdf23908234asdjf234

1 个答案:

答案 0 :(得分:0)

要解决这个问题,你可以通过多种方式解决这个问题。

1从selvlet创建一个应用程序变量。

ServletContext context = request.getSession().getServletContext();
context.setAttribute("myversionvariable", "version");//to set it
Object attribute = context.getAttribute("someValue");//to get it

2创建一个静态字符串数组来放置您的版本号,并为此变量创建并声明一个get和set方法。只要访问权限是公开的,您就可以在应用中的任何位置更改此变量。防爆。来自JSP

<%@ page import="com.servlets.MyServlet" %>   
<% MyServlet.getMyServletVarible(); %>

如果您需要使其线程安全,您只能通过一个同步方法Ex。

访问和更改此变量
private static String myvarVersion;
private static final int  SET = 1;
public static synchronized String Operation (String value, int operation){
    if(operation == SET){
        myvarVersion = value;
        return "";
    } else{
        return myvarVersion;
    }
}

*有可能使用Atomic组件,不同的同步方式等方式来做这些事情。

我希望这会有所帮助。