私は、ユーザーがセッション "session.setAttribute"に古典的にログインするspring mvc Webアプリケーションを持っています。ユーザーデータにログインする必要があるときはいつでも、私はこのデータを使用します。Spring MVC WebリクエストとAndroidの同じリクエストへのリクエスト
Androidアプリを追加したいと思いますが、それぞれのアンドロイドリクエストに対して追加のメソッドを追加して、その中にユーザーデータを送信する必要がありますか? または同じ方法をリクエストすることはありませんか。
この種のクラウドアプリケーションのコンセプトは何ですか?アンドロイドのリクエストにはさまざまな方法を記述する必要がありますか?アンドロイドリクエストを受信すると、session.getAttributeは実行できないため、nullを返します。
User user = userService.getByUserNameAndPassword(userName, password);
if (user != null) {
if (user.isActive()) {
Account account = new Account(user, request.getRemoteAddr());
HttpSession httpSession = request.getSession(true);
AccountRegistry.add(httpSession);
httpSession.setAttribute(Constant.ACCOUNT, account);
result.put(Constant.REF, Constant.SUCCESS);
}
パブリッククラスアカウント{
private UserRightsHandler userRightsService = null;
private User user;
private String ipAddress;
private boolean admin;
public Account(User user, String ipAddress) {
this.user = user;
this.ipAddress = ipAddress;
userRightsService = new UserRightsHandler(user);
setAdmin(userRightsService.isAdmin());
}
public UserRightsHandler getUserRightsService() {
return userRightsService;
}
public User getUser() {
return this.user;
}
public String getIpAddress() {
return ipAddress;
}
public boolean isAdmin() {
return admin;
}
private void setAdmin(boolean admin) {
this.admin = admin;
}
}
パブリッククラスAccountRegistry {
private static final Map<String, HttpSession> sessions = new HashMap<String, HttpSession>();
public static void add(HttpSession session) {
sessions.put(session.getId(), session);
}
public static void remove(HttpSession session) {
if (session != null) {
sessions.remove(session.getId());
session.setAttribute(Constant.ACCOUNT, null);
session.invalidate();
}
}
public static HttpSession getByHttpSessionID(String httpSessionID) {
Set<String> keys = sessions.keySet();
Iterator it = keys.iterator();
while (it.hasNext()) {
String sID = (String) it.next();
HttpSession session = sessions.get(sID);
if (sID.equals(httpSessionID)) {
return session;
}
}
return null;
}
public static void removeByHttpSessionID(String httpSessionID) {
HttpSession session = getByHttpSessionID(httpSessionID);
remove(session);
}
public static Account getCurrentAccount() {
HttpServletRequest request = ContextFilter.getCurrentInstance().getRequest();
HttpSession session = request.getSession();
return (Account) session.getAttribute(Constant.ACCOUNT);
}
}
@RequestMapping(値= "/ changeStatus" 方法= Req uestMethod.POST) 公共@ResponseBody 文字列changeStatus(HttpServletRequestのリクエスト、HttpServletResponseの応答)にUnsupportedEncodingExceptionをスロー{
User editor = AccountRegistry.getCurrentAccount().getUser();
}
@あなたはコードを書いてください –
あなたのコードで質問を編集する –