WEB编程中,我们通常需要一些数据,来标记我们的控制流程,比如,用来区分“未点击按钮的处理”和“点击按钮的处理”。
方法(1):使用隐含域
隐含域
概念:隐含域,其实和正常的输入域一样,只是不会将数据显示到页面上。
特点:放到隐含域中的数据,没有必要让用户看,因为这些数据大部分是控制数据。
作用:保持数据。
用法:
(a)设计隐含域
<form name="userForm" target="_self" id="userForm"> … <input type="hidden" name="command" value="add"> … </form>
(b)提交到服务器
with (document.getElementById("userForm")) { action="user_add.jsp"; method="post"; submit(); }
(c)在服务器端(servlet中)判断标记,控制数据
//if (command != null && command.equals("add")) { if ("add".equals(command)) { //防止空指针错误 //out.println("保存用户!"); userId = request.getParameter("userId"); userName = request.getParameter("userName"); contactTel = request.getParameter("contactTel"); email = request.getParameter("email"); if (UserManager.getInstance().findUserById(userId) == null) { User user = new User(); user.setUserId(userId); user.setUserName(userName); user.setPassword(request.getParameter("password")); user.setContactTel(contactTel); user.setEmail(email); UserManager.getInstance().addUser(user); out.println("添加用户成功!"); } else { out.println("添加的用户代码已经存在,代码 = [ " + userId + " ]"); } }
方法(2):通过url传递数据
使用示例:
with (document.getElementById("userForm")) { method = "post"; action = "user_modify.jsp?command=add"; submit(); }
后续步骤同方法(1)中的(c)步骤。