gpt4 book ai didi

javascript - 从 struts 操作类返回结果时的 jQuery 弹出框

转载 作者:行者123 更新时间:2023-12-03 11:20:23 25 4
gpt4 key购买 nike

我有一个 jsp 页面,它映射到 struts.xml,其中在操作类中,它从数据库检查 Id 和密码是否正确。如果它们正确,则会映射到正确的页面。我希望如果它没有映射,那么应该会出现一个 jQuery 弹出窗口,提示“ID 或密码不正确!”

HTML 代码

    <form action="alreadylogin" method="post">
Enter your Email Id&nbsp;<input type="email" name="loginemail" placeholder="Enter Your Email Id" required ><br><br>

Enter your Password&nbsp;<input type="password" name="loginpass" placeholder="Enter your Password" required ><br><br>

<input type="reset" value="Reset">&nbsp;&nbsp;
<input type="submit" value="Submit">

ACTION CLASS:此处的操作类显示从 STRUTS.XML 映射的操作

    public String execute()
{
String check=null;

try {
ResultSet r = st.executeQuery("select userpass,firstname from register where usermail='"+ loginemail +"'");

while (r.next()) {
String psw=r.getString(1);
String name=r.getString(2);

jname=name;

if(psw.equals(loginpass))
{
session.put("S3CRET", "S3CRET");
session.put("USERNAME", jname);
check="success";
}
else
{
check="input";
}
}
}
finally
{
return check;
}

如何在这里应用 jQuery 弹出窗口?

最佳答案

您已经提交到一个页面;使用 jQuery 弹出窗口不再有任何意义因为无论如何您都会转发或重定向回来 - 只需显示输入结果页面中的相应消息。

如果您确实认为额外的工作是必要的,那么 Jorge 的回答是合适的。如果您想避免页面刷新,请使用 JSON 插件并仅返回 JSON 响应。这增加了一定程度的复杂性,但您似乎还没有做好准备。

<小时/>

这里有一堆不相关的评论。

ResultSet r = 
st.executeQuery("select userpass, firstname from register where usermail='" + loginemail + "'");

这是 SQL 注入(inject)的邀请。不要这样做;使用准备好的语句。

String name = r.getString(2);
jname = name;

if (psw.equals(loginpass)) {
session.put("S3CRET", "S3CRET");
session.put("USERNAME", jname);

这里没有理由使用jname。您已有姓名;将其放入 session 中,例如

String name = r.getString(2);
if (psw.equals(loginpass)) {
session.put("USERNAME", name);

根本没有理由将密码放入 session 中。

我认为在这么短的方法中只有一个 return 语句是没有值(value)的。只需尽快返回适当的结果并允许更快的推理方法。

public String execute() { 
String name;
ResultSet r = st.executeQuery("select userpass,firstname from register where usermail='" + loginemail + "'");
while (r.next()) {
if (!psw.equals(loginpass)) {
return INPUT;
}

name = r.getString(2);
}

session.put("USERNAME", name);
return SUCCESS;
}

这些都不应该发生在 execute 方法中。方法应该全部在同一级别运行抽象化,只做一件事,并且完整地做。执行方法应该做更多的事情比检查有效登录并返回适当的结果,更接近于:

public String execute() {
return loginService.login(email, password) ? SUCCESS : INPUT;
}

login 应该存在于注入(inject)到操作中的服务中,或者至少存在于该操作中的单独方法中 Action 类。我不推荐后者;有关更多详细信息,请搜索与“反转”相关的任何内容控制”、“依赖注入(inject)”、“编写可测试的 Java 代码”等等。

关于javascript - 从 struts 操作类返回结果时的 jQuery 弹出框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27143989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com