2016-03-08 38 views
1

我想讓simle jersey爲例。我有login form,servletweb service。在servlet - post要求datajsonweb service控制登錄密碼並返回OKUNAUTORIZED作爲Response澤西島發送登錄密碼請求

登錄頁面

<form method="POST" action="login"> 
     Login <input type="text" name="login"/> 
     Password <input type="password" name="password"/> 
     <input type="submit" value="enter"/>   
    </form> 

登錄的servlet

​​

服務

@POST 
@Path("/login") 
@Consumes(MediaType.APPLICATION_JSON) 
public Response isUser(String login) { 
    //return super.find(id); 
    JSONObject pb = new JSONObject(login); 
    if (pb.get("login").equals("admin")) { 
     return Response.status(Response.Status.OK).build(); 
    } else { 
     return Response.status(Response.Status.NOT_FOUND).build(); 
    } 
} 

但不要work.Always返回狀態500.Where是我的錯誤

+0

是有錯誤代碼所附的任何消息?像無效的數據輸入或東西? –

+0

現在工作謝謝。我的另一個錯誤是: String json =「{\」login:\「」+「\」「+ log +」\「,\」password \「:」+「\」「+ pass +」\「}」; be String json =「{\」login \「:」+「\」「+ log +」\「,\」password \「:」+「\」「+ pass +」\「}」; – Beginner

+0

@VikrantKashyap你有Facebook我需要一些幫助:/ – Beginner

回答

2

試試這個..

if (((String)pb.get("login")).equals("admin")) { 
     return Response.status(Response.Status.OK).build(); 
    } else { 
     return Response.status(Response.Status.NOT_FOUND).build(); 
    } 

OR(任意兩個按您的方便) 。

if (pb.getString("login").equals("admin")) { 
      return Response.status(Response.Status.OK).build(); 
     } else { 
      return Response.status(Response.Status.NOT_FOUND).build(); 
     } 

而不是

if (pb.get("login").equals("admin")) { 
     return Response.status(Response.Status.OK).build(); 
    } else { 
     return Response.status(Response.Status.NOT_FOUND).build(); 
    } 

原因: - get("")JSONObject回報功能Object類對象的話,equals()意志屬於Object類沒有到String類。因此,更改代碼重新編譯代碼並查看其差異。

另一個改變你應該對你的方法做的是給你的Parameter添加一個@RequestBody。可能它會解決。

public Response isUser(@RequestBody String login); 

謝謝:)