java - 使用Java Server Pages,提交后如何制作 "register"表单数据

标签 java jsp

我从 Java Server Pages 开始。我想制作一个登记表,由三个步骤组成。第一页index.jsp 是一个注册表单,有两个字段:Name 和Surname。完成这两个字段后,我按“下一步”并转到下一页 PaginaDoi.jsp,在其中填写“地址”和“电话”字段。之后,我进入第三页 PaginaTrei.jsp,其中显示所有数据,然后发送到数据库或后退一步修改数据。

我想做的主要事情是在使用“下一步”和“后退”按钮前后移动后存储所有未修改的字段。为此,我进行了一次 session ,工作正常,但是当我从第三页返回到第二页时,我的姓名和姓氏重置为空。 我呆了大约一天来了解我在哪里犯了错误,但没有成功。请帮助我。

我提供以下代码:

index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"      "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="main.css" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script language="javascript" type="text/javascript">
function validateForm(){
var x=document.forms["formular"]["nume","prenume"].value;
if(x==null||x==""){
    alert("Toate campurile sunt necesare");
    return false;
}

}
</script>
<title>Formular de inregistrare</title>
</head>
<body>
<h1>Introduceti datele in campurile respective</h1>
<form name="formular" action="PaginaDoi.jsp" onsubmit="return validateForm()"   method="post">
Nume: <input type="text" name="nume" value="<%=session.getAttribute("FirstName")!=null? session.getAttribute("FirstName"):""%>" maxlength="15"></br>
Prenume: <input type="text" name="prenume" value=" <%=session.getAttribute("LastName")!=null?session.getAttribute("LastName"):""%>"  maxlength="10"></br>
<div id="subm"><input type="submit" value="Inainte"></div>
</form>
</body>
</html>

第二页 (PaginaDoi.jsp)

<%String fname=request.getParameter("nume");
session.setAttribute("FirstName",fname);
String lname=request.getParameter("prenume");
session.setAttribute("LastName",lname); 
%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="main.css" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script language="javascript" type="text/javascript">
function validateForm(){
var x=document.forms["formular"]["telefon","adresa"].value;
if(x==null||x==""){
    alert("Toate campurile sunt necesare");
    return false;
}   
}
</script>
<title>Formular de inregistrare</title>
</head>
<body>
<h1>Introduceti datele in campurile respective</h1>
Nume: <%=session.getAttribute("FirstName")%></br>
Prenume: <%=session.getAttribute("LastName")%></br>
<form name="formular" action="PaginaTrei.jsp" onsubmit="return validateForm()"   method="post">
Telefon: <input type="text" name="telefon" value="   <%=session.getAttribute("ThePhone")!=null?session.getAttribute("ThePhone"):""%>"      maxlength="10"></br>
Adresa: <input type="text" name="adresa" value="  <%=session.getAttribute("TheAddress")!=null?session.getAttribute("TheAddress"):""%>"   maxlength="20"></br>
<div id="subm"><input type="submit" value="Inainte"></div>
</form>
<form action="index.jsp" method="post">
<div id="submInapoi"><input type="submit" value="Inapoi"></div>
</form>
</body>
</html>

第三页 (PaginaTrei.jsp)

<%
String tel=request.getParameter("telefon");
session.setAttribute("ThePhone",tel);
String add=request.getParameter("adresa");
session.setAttribute("TheAddress",add);
%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="main.css" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Datele introduse</title>
</head>
<body>
<h1>Introduceti datele in campurile respective</h1>
Nume: <%=session.getAttribute("FirstName")%></br>
Prenume: <%=session.getAttribute("LastName")%></br>
Telefon: <%=session.getAttribute("ThePhone")%></br>
Adresa: <%=session.getAttribute("TheAddress")%></br>
<form action="Salveaza.jsp" method="post">
<div id="subm"><input type="submit" value="Trimite"></div>
</form>
<form action="PaginaDoi.jsp" method="post">
<div id="submInapoi"><input type="submit" value="Inapoi"></div>
</form>
</body>
</html>

最佳答案

虽然我不建议您这样做,但如果您在第二页中查看,您将根据请求参数在 session 中设置属性。如果第三个表单上有一个指向第二个表单的链接,则您的请求参数将为空,并且您实际上是在此时从 session 中删除信息。

你必须这样做:

if (tel != null) session.setAttribute("ThePhone",tel);

等等

关于java - 使用Java Server Pages,提交后如何制作 "register"表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23524507/

相关文章:

javascript - 如何获取像这样的字符串删除Java中的重复字符串

mysql - 如何在Tomcat 7中使用Servlet和JSP在MySQL数据库中插入图像

javascript - 如何将输入 datetimepicker.js 中的数据发送到 jsp 并将该数据保存在 db 中

java - 如何重新加载我的类以使该堆栈跟踪消失?

java - 找不到包名称 'com.example.pc.fireApp' 的匹配客户端

java - Android:下载 .html 并将其转换为 String

java - while 循环创建无限循环,尽管条件在 java 中变为 false

java - 绝对 uri : http://www. springsource.org/tags/form 无法在 web.xml 或随此应用程序部署的 jar 文件中解析

java - 子类问题(JAVA)

java - 在多线程应用中使用LinkedHashMap的get()方法安全吗