li1 と li2 によって読み取られた値を、ユーザーを認証するサーブレットに送信する必要があり (DB 呼び出しなし)、サーブレットは true または false で応答します。このブール値は .js ファイルで読み取る必要があり、DOM のみを変更する必要があります。無効なユーザーが適切なメッセージを表示した場合に、ページ全体をリロードせずに構造を変更します。
私のlogintom.jsは次のとおりです
goog.require('goog.dom');
goog.require('goog.events.EventType');
goog.require('goog.style');
goog.require('goog.ui.Control');
goog.require('goog.ui.Button');
goog.require('goog.ui.FlatButtonRenderer');
goog.require('goog.ui.LabelInput');
goog.require("goog.net.XhrIo");
goog.require("goog.structs.Map");
goog.require("goog.Uri.QueryData");
function setUp() {
var li1 = new goog.ui.LabelInput('USER NAME');
li1.render(goog.dom.getElement('d1'));
var li2 = new goog.ui.LabelInput('PASSWORD');
li2.render(goog.dom.getElement('d2'));
var val1;
var val2;
var fb1 = new goog.ui.Button('Login',goog.ui.FlatButtonRenderer.getInstance());
fb1.render(goog.dom.getElement('fb1'));
goog.events.listen(fb1,goog.ui.Component.EventType.ACTION,
function(e) {
val1 = li1.getValue();
val2 = li2.getValue();
var request = new goog.net.XhrIo();
goog.events.listen(request, "complete", function(){
if (request.isSuccess())
{
console.log("Satus code: ", request.getStatus(), " - ", request.getStatusText());
}
else {
console.log("Something went wrong in the ajax call. Error code: ", request.getLastErrorCode()," - message: ", request.getLastError());
}
});
var param = 'username='+val1+'&password='+val2;
var url = 'loginprocessortom?username='+val1+'&password='+val2;
request.send(url, "POST");
});
}
私のサーブレットは次のとおりです
public class loginprocessortom extends HttpServlet
{
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws
ServletException, IOException
{
String uname = (req.getParameter("username"));
String pword = (req.getParameter("password"));
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
if (uname == "xyz" && pword == "xyz")
{
tof = true;
}
else
{
tof = false;
}
}
}
私のHTMLは次のとおりです。
<html>
<head>
<script src="closure-library/closure/goog/base.js"></script>
<script src="logintom.js"></script>
</head>
<body onload="setUp();">
<fieldset>
<legend>
<strong>Authentication</strong>
</legend>
<div id="d1">User Name   </div>
<br>
<div id="d2">Password    
</div>
<br>
<div id="fb1"></div>
<br>
<span id="sp1"></span>
</fieldset>
</body>
</html>
この「tof」を.jsに送信する必要があります.jsでは、クロージャーを使用して読み取り、ページ全体をリロードせずに「tof」の値に基づいてページを変更できます(Ajax動作)