Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的Servlet。如何检索属性?_Java_Jsp_Session_Servlets_Session Variables - Fatal编程技术网

Java中的Servlet。如何检索属性?

Java中的Servlet。如何检索属性?,java,jsp,session,servlets,session-variables,Java,Jsp,Session,Servlets,Session Variables,我真的在努力解决这个问题。我将用户的名称和地址作为会话变量存储在服务器上。在else-if语句中,我希望搜索以前输入的名称,以将地址字段为空的名称与为该名称输入的相应地址相匹配 For example: First entered details: Name=John, Address=Ireland, Second entered details: Name=Mary, Address=France, Third entered details: Name=John, Address=null

我真的在努力解决这个问题。我将用户的名称和地址作为会话变量存储在服务器上。在else-if语句中,我希望搜索以前输入的名称,以将地址字段为空的名称与为该名称输入的相应地址相匹配

For example:
First entered details: Name=John, Address=Ireland,
Second entered details: Name=Mary, Address=France,
Third entered details: Name=John, Address=null,(EMPTY FIELD)
当为“John”输入第三个详细信息时,我想检索之前为该用户输入的John ie:Ireland的地址。我不明白为什么它不起作用。感谢您的帮助。谢谢

@WebServlet("/Test2") // tells server under which URL to offer this servlet
public class UserRegistration extends HttpServlet {

    public void doGet(HttpServletRequest request,
            HttpServletResponse response) throws IOException {
        // set content-type header before accessing the Writer
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        // then write the response
        out.println("<html>" + "<head><title>Online Shopping Directory</title></head>");
        //Get the identifier of the book to display
        out.println("<body bgcolor=\"#ffffff\">"
                + "<h2>Please enter your name:</h2>" + "<form method=\"get\">"
                + "<input type=\"text\" name=\"username\" size=\"25\">"
                + "<p></p>"
                + "<h2>Please enter your address:</h2>" + "<form method=\"get\">"
                + "<input type=\"text\" name=\"useraddress\" size=\"25\">"
                + "<p></p>"
                + "<input type=\"submit\" value=\"Submit\">"
                + "<input type=\"reset\" value=\"Reset\">"
                + "</form>");

        String name = request.getParameter("username");
        String address = request.getParameter("useraddress");
        HttpSession session = request.getSession(true);

        if ((name != null) && (name.length() > 0) && (address != null) && (address.length() > 0)) {

            session.setAttribute("username", address);
            out.println("The username " + name + " has been saved for "
                    + "this session. The address of this user is "
                    + (String) session.getAttribute("username"));
        } else if ((name.equals("username")) && (address == null)) {
            out.println("The username " + name + " is already saved. "
                    + "The address of this user is "
                    + (String) session.getAttribute("username"));
        }
        out.println("</body></html>");
        out.close();
    }
}

如果要弹出列表,如果用户为已输入的文本输入某个前缀,则必须先存储文本。使用列表对象在信息提交到服务器时添加信息,并将其存储在用户会话中。请记住,当会话超时或被删除时,您的列表将不再可用。要以更持久的方式存储输入信息的列表,可以改用数据库


当用户请求输入信息的页面时,您从她的会话中检索列表,并将其写入页面“查找自动建议”框,以了解如何使用javascript进行操作。

您实际上每次都在创建一个新的会话实例,在需要检索属性时,应该获取与请求关联的会话实例


使用request.getSessionfalse;这将返回与请求关联的会话或返回null。管理会话时,在处理会话时应小心,即在创建新会话或检索为用户创建的会话时,必须执行以下操作:

 if ((name != null) && (name.length() > 0) ){

 session.setAttribute("username", name);

out.println("The username " + name  );


}else {
out.println("The username " + (String) session.getAttribute("username") );
}





if ((address != null) && (address.length() > 0)){
session.setAttribute("address", address);

  out.println("The address " + adress );

}else {
out.println("The address " + (String) session.getAttribute("address") );
}
请给我一些反馈


希望有帮助

你的目标是一个建议箱吗?我是编程新手,我只是想在一个我花了很多时间试图解决的问题上寻求一些帮助。如果像你说的那样以“建议”的形式提供帮助,那对我没关系,但是如果你不想帮助我,那对我也没关系。对不起,我错了。我指的是显示以前输入的数据和输入的信息的方法。请尝试request.getSessionFalse谢谢您的帮助。这帮了我很大的忙,很抱歉我这么迟迟没有向你表示感谢!