假设我要创建一个带有两个框的网页,分别用于输入用户ID和用户密码。然后,一旦我单击提交按钮,它将在后台检查数据库是否存在该用户。如果它与数据库中的任何人匹配,则用户ID和用户密码将被转发到另一个页面,同时它将重定向到该用户的主页面。
我可以使用servlet完成此任务吗?
我发现有request.Dispatcher API,但它是否足以完成任务?
String name = "Tom"
request.setAttribute("name",name);
RequestDispatcher dis = request.getRequestDispatcher
("Servlet2");
request.Forward(request,response);
第二个servlet文件中的
request.getAttribute("name");
//this line will display "Tom"
还有一个问题要问,如何点击链接(INSTEAD OF BUTTON)传递一些数据并重定向到其他servlet页面?任何的想法?非常感谢你的回复。
答案 0 :(得分:0)
是的,您可以使用servlet。调度员是否足够取决于具体的功能要求,这些要求在您的问题中并不完全清楚。但是,规范方法是将登录用户存储在会话范围中而不是请求范围中。否则,用户每次想要访问受限页面时都必须登录。
此外,您通常希望在登录成功后发送重定向。这样新的URL就会反映在浏览器的地址栏中。此外,这样按F5也不会引起任何可能的意外。从一个转发到另一个servlet本身也有点设计气味。包括本来是合理的,但不转发。如上所述,改为发送重定向。
至于使用链接提交表单,只需在点击事件中执行JS form.submit()
。
<form id="login">
...
<a href="#" onclick="document.getElementById('login').submit(); return false;">login</a>
</form>
另一种方法是将按钮设置为一个带有CSS帮助的链接。这样,它也适用于已禁用JS的客户端(例如,手持设备用户)。