【问题标题】:show alert on servlet redirect to another jsp在 servlet 重定向到另一个 jsp 时显示警报
【发布时间】:2015-03-10 16:59:39
【问题描述】:

我正在做一个关于休眠、jsp 和 servlet 以及数据库的最终项目 我的主题是制作食谱的网络应用程序

现在,我要注册

我用这个方法检查uname是否已经被使用(这个方法很好用,没有错误)

public boolean unameMember (String namaTabel,String uname)
{
    this.session = NewHibernateUtil.getSessionFactory().openSession();
    ArrayList<Member> hasil = null;
    boolean uyey = true;
    Transaction tx = session.beginTransaction();
    Query q = session.createQuery("from "+namaTabel);
    hasil = (ArrayList<Member>) q.list();
    for (Member m : hasil) 
    {
        if(m.getIdMember().equals(uname))
            uyey=false;
    }
    session.close();

    return uyey;
}

这是 register.jsp 的表单

<form action="MemberServlet" method="post" id="regform">


                    <div class="form" >

                        <div class="form_row">

                            <label>Username:</label>
                            <input type="text" name="id_member" required />
                        </div>

                        <div class="form_row">
                            <label>Password:</label>
                            <input type="password" name="pw"  required />
                        </div> 


                        </div> 

                        <div class="form_row">
                            <label>Name:</label>
                            <input type="text" name="nama" required/>
                        </div>

                        <div class="form_row">
                            <label>Alamat:</label>
                            <input type="text" name="alamat" required/>
                        </div>




                        <input type="submit" value="Register" /> 
                    </div>
                </form>

现在是 MemberServlet.java 中的问题

String id_member = request.getParameter("id_member");
    String pw = request.getParameter("pw");
    String nama = request.getParameter("nama");
    String alamat = request.getParameter("alamat");
    DataAkses da = new DataAkses();
try {

        out.println("<html>");
        out.println("<head>");
        out.println("</head>");
        out.println("<body>");

            if (da.unameMember("Member", nama)) {
                da.addMember(id_member, pw, nama, alamat);

                out.println("<script type=\"text/javascript\">");
                out.println("alert('You can sign in with your new account');");
                out.println("</script>");
                request.getRequestDispatcher("home.jsp").include(request, response);
            } else {
                out.println("<script type=\"text/javascript\">");
                out.println("alert('User or password incorrect');");
                out.println("location='register.jsp';");
                out.println("</script>");
            }  } catch (Exception e) {

        out.println("<html>");
        out.println("<head>");
        out.println("</head>");
        out.println("</b>");
        out.println("<body>");
        out.println("<center>");
        out.println("<h1>haha ga bisa </h1>");
        out.println("</center>");
        out.println("</body>");
        e.printStackTrace();
    } 

如果我想添加具有不同 unname 的成员,它工作得很好 除此以外 它总是在 catch 异常中显示“haha ga bisa”

请帮帮我

【问题讨论】:

  • 能否请您从控制台提供您的错误堆栈跟踪?
  • 如何显示错误堆栈跟踪?对不起,我是编程初学者

标签: java hibernate jsp servlets


【解决方案1】:

代码在很多层面上都是错误的,我觉得你最好采用另一种方法。本质上,检查详细信息,如果出现错误,则返回注册页面,并酌情显示错误消息。否则,转发到另一个页面。

大概是这样的:

表单处理程序:

public void doPost(HttpServletRequest request, HttpServletResponse response){

    String nextPage;

    if(problemWithDetails){
        nextPage = "register.jsp";
        request.setAttribute("errorMessage", "Invalid Details");
    }
    else{
        nextPage = "success.jsp";
    }

    request.getRequestDispatcher(nextPage).forward(request, response);
}

register.jsp

<!-- Import JSTL tag library >
<%@ taglib prefix="c" 
           uri="http://java.sun.com/jsp/jstl/core" %>   
<html>

    <!-- Use JSTL to check for the error message we set on form submission if invalid data -->
    <c:if test="${not empty errorMessage}">
        There was an error: ${errorMessage}.
    </c:if>

    <form action="MemberServlet" method="post" id="regform">

        <!-- form as before -->

    </form>
</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多