我正在尝试构建一个响应浏览器的Web服务。我是否必须将html
代码作为硬编码string
返回,或者有更好的方法?这是一种简单的身份验证服务,需要定向到考试的主页。我对网络上的所有教程和答案感到非常困惑,每个人都有不同的实现 Web 服务的方式。我在这里错过了什么?我在Wildfly 13上使用RestEasy。
Html 调用:
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<h1>Hello</h1>
<form method="POST" action="resources/login/userlogin" >
Username: <input type="text" name="Username">
<br>
Password: <input type="password" name="Password">
<br>
<input type="submit" value="Submit">
</form>
</body>
</html>
服务:
@POST
@Path("userlogin")
@Produces(MediaType.TEXT_HTML)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public String Authenticate(@FormParam("Username") String Username, @FormParam("Password") String Password) {
LoginToken token = LoginTokenSingleton.instance.getToken(Username, Password);
if (token == null) {
throw new RuntimeException("POST: User not found");
}
//return the html code for a succesfull login?
return null;
}
当您提交具有username
和password
的表单时,您正在调用POST request
。
一旦用户在后端通过身份验证,您就可以返回Success HTTP status code - 200
,并在此基础上将用户重定向到主页。如果用户未经身份验证,您可以发送Not Authenticated Status Code 401
并将用户重定向到其他页面。