存储变量以在java中的视图/页面之间安全传递

时间:2018-01-08 04:17:42

标签: java

我想将变量存储在一个java页面/视图中,然后在另一个页面/视图中检索它。到目前为止,我已经找到了(在服务器端):

存储变量供以后使用:

public static void setViewDataState(String state) {
    ViewData viewData = new ViewData();

    //getThreadLocalRequest().getSession(true).setAttribute("viewData", viewData);
    viewData.setState(state);
    System.out.println("state2 = " + state);
}

检索变量:

public static String getViewDataState() {
    ViewData viewData = new ViewData();
    System.out.println("state3 = " + viewData.getState());
    return viewData.getState();
}

State2显示正确的值,State3显示null。请问这是正确的方法。我可以在GWT中做到这一点;但是,我是java的新手。

这就是我在GWT中的表现:

public ViewData setViewData(String accountId, String accountLevel,
        String ymId, String awId, String adAwardGroup, String adScoutGroup,
        String caId, Integer numberOfGroupsStarted, String groupSection,
        String hikeRecordID, String hikeMealID, String e1ActivityID,
        String penPalID, String groupNAS) {
    ViewData viewData = new ViewData();

    getThreadLocalRequest().getSession(true).setAttribute("viewData", viewData);
    viewData.setaccountId(accountId);
    viewData.setaccountLevel(accountLevel);
    viewData.setymId(ymId);
    viewData.setawId(awId);
    viewData.setadAwardGroup(adAwardGroup);
    viewData.setadScoutGroup(adScoutGroup);
    viewData.setcaId(caId);
    viewData.setnoGroupsStarted(numberOfGroupsStarted);
    viewData.setsection(groupSection);
    viewData.sethikeRecordID(hikeRecordID);
    viewData.sethikeMealID(hikeMealID);
    viewData.setactivityE1ID(e1ActivityID);
    viewData.setpenPalID(penPalID);
    viewData.setGroupNAS(groupNAS);
    return viewData;
}

public ViewData getViewData() {
    return (ViewData) getThreadLocalRequest().getSession().getAttribute("viewData");
}

2 个答案:

答案 0 :(得分:0)

您需要某种外部存储空间。 Redis可能是跟踪这类事情的最常用方法,但如果你有一个数据库或其他一种存储对象的方法,你可以使用它(取决于你在性能方面的需要)。

答案 1 :(得分:0)

答案是:

ViewData viewData = new ViewData();

用于存储和检索到类下面:

public class MySQLConnection implements Serializable {
    private static final long serialVersionUID = 1L;
    static ViewData viewData = new ViewData();
    //other code including the store and retrieve
}