Java中的Servlet。如何检索属性?
我真的在努力解决这个问题。我将用户的名称和地址作为会话变量存储在服务器上。在else-if语句中,我希望搜索以前输入的名称,以将地址字段为空的名称与为该名称输入的相应地址相匹配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
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谢谢您的帮助。这帮了我很大的忙,很抱歉我这么迟迟没有向你表示感谢!