好的,我将在这里发布所有代码以及描述...
好的,这里是第一个索引的代码,称为.. indexnpro.jsp,它在获取值后将它们转发给 Servletnpro,就像这样。
<form class="form-class" name="myform" action="Servletnpro" method="POST">
注意:记住,因为这里的架构是 MVC,所以每个 jsp 都有自己的 servlet,所以值不会直接传递给另一个jsp 而是一个 servlet,然后将它们传递给下一个 jsp ......现在在 Servletnpro 的 dopost 方法中......
String connectionURL = "jdbc:mysql://localhost/secnok?"+ "user=root&password=";
Connection connection=null;
response.setContentType("text/html");
PrintWriter out = response.getWriter();
HttpSession session = request.getSession(true);
//这些是我从 indexnpro.jsp 获得的不同值,其中一些是下拉框,但我不应该真的很重要..
String exproject=request.getParameter("country");
String corrcust=request.getParameter("state");
String excust=request.getParameter("country1" );
String corrproject=request.getParameter("state1");
String corrtoepost= request.getParameter("corrtoe");
<--------------- 当按下返回按钮时,我不断丢失这个值。当它再次返回到这个 servlet 时,它变为 null 。
System.out.println(corrtoepost);
System.out.println("doPost is running");
System.out.println("Session id on dopost: " + session.getId() );
request.setAttribute("corrtoepost", corrtoepost);
<--------------- 在会话中存储价值,我仍然不断失去它..
////////// 从现在开始是数据库连接的简单代码,它将连接到数据库根据用户选择获取数据,即我刚刚存储在会话中的“corrtoepost”..然后将其显示回来在 indexa.jsp 上..
try{
int rs1;
// Load the database driver
Class.forName("com.mysql.jdbc.Driver");
// Get a Connection to the database
connection = DriverManager.getConnection(connectionURL);
//Add the data into the database
Statement stmt = connection.createStatement();
Statement stmt1 = connection.createStatement();
Statement stmt2 = connection.createStatement();
Statement stmt3 = connection.createStatement();
Statement stmt4 = connection.createStatement();
Statement stmt5 = connection.createStatement();
Statement stmt6 = connection.createStatement();
ResultSet rs = stmt.executeQuery( "Select * from toe_description where toe_id= '" + corrtoepost + "' " ) ;
ResultSet rs2 = stmt1.executeQuery( "Select * from toe_text where type_id=1 AND toe_id= '" + corrtoepost + "' " ) ;
ResultSet rs3 = stmt2.executeQuery( "Select * from toe_text where type_id=2 AND toe_id= '" + corrtoepost + "' " ) ;
ResultSet rs4 = stmt3.executeQuery( "Select * from toe_text where type_id=3 AND toe_id= '" + corrtoepost + "' " ) ;
ResultSet rs5 = stmt4.executeQuery( "Select * from toe_text where type_id=4 AND toe_id= '" + corrtoepost + "' " ) ;
ResultSet rs6 = stmt5.executeQuery( "Select * from toe_text where type_id=5 AND toe_id= '" + corrtoepost + "' " ) ;
ResultSet rs7 = stmt6.executeQuery( "Select * from toe_text where type_id=6 AND toe_id= '" + corrtoepost + "' " ) ;
while(rs.next()){
String toeid= rs.getString(1);
String toename= rs.getString(2);
String Intname= rs.getString(4);
String Assetname= rs.getString(5);
String Objname= rs.getString(6);
String ProjectID= rs.getString(7);
request.setAttribute("toeid", toeid);
request.setAttribute("toename", toename);
request.setAttribute("Intname", Intname);
request.setAttribute("Assetname", Assetname);
request.setAttribute("Objname", Objname);
request.setAttribute("ProjectID", ProjectID);
while(rs2.next()){
String purpose= rs2.getString(4);
request.setAttribute("purpose", purpose);
while(rs3.next()){
String scope= rs3.getString(4);
request.setAttribute("scope", scope);
System.out.println(scope);
while(rs4.next()){
String toe_desc= rs4.getString(4);
request.setAttribute("toe_desc", toe_desc);
System.out.println(toe_desc);
while(rs7.next()){
String toe_ass= rs7.getString(4);
request.setAttribute("toe_ass", toe_ass);
while(rs6.next()){
String enviroment= rs6.getString(4);
request.setAttribute("enviroment", enviroment);
while(rs5.next()){
String ass_env= rs5.getString(4);
request.setAttribute("ass_env", ass_env);
}
}
}
}
}
}
}
request.getRequestDispatcher("/WEB-INF/indexa.jsp").forward(request, response);
// 这里我将从 db 获取的所有数据发送到所需的 jsp,然后将显示数据。即“indexa.jsp”
System.out.println("Connected to the database");
connection.close();
System.out.println("Disconnected from database");
}
catch (Exception e) {
e.printStackTrace();
}
}
}
////////Indexa.jsp的现在代码
此页面将显示从前面讨论过的 Servletnpro 获取的数据。
在页面的正文标签下,我检索了我之前在会话中保存在 Servletnpro 中的“corrtoepost”的值。我现在可以看到这个值了。
String corrtoepost1=request.getParameter("corrtoepost");
String corrtoepost=(String) session.getAttribute("corrtoepost");
session.setAttribute("corrtoepost",corrtoepost);
然后将其显示在 jsp 页面上.. 目前显示正确的值..
现在这个页面中的下一个按钮的代码记住下一个按钮是假设带我到下一页,具有我从 servlet 获得的相同的正确toepost 值。
下一个
现在让我们进入下一页 indexb.jsp
在这里,我再次像这样从 indexa.jsp 获得“corrtoe”的值。
String corrtoe=(String) session.getAttribute("corrtoe");
session.setAttribute("corrtoe",corrtoe);
直到现在,即使在此页面上,我也得到了正确的值...一旦我按下此页面上的返回按钮,就会出现问题...。
现在为此页面上的后退按钮编写代码..
以前的
现在,当我按下上一个按钮时,我失去了 indexa.jsp 页面中的脚趾值,它在界面上显示 corrtoe 值为 null .....之后,我尝试使用 Servlets Get 方法来获取可以工作一次但之后的值在 indexa.jsp 上按 next 它将在 indexb.jsp 和其余页面上显示 null ......问题是为什么当我将它存储在会话中时我会丢失这个值。!!!请给我一些想法......
另一个问题是,当我在 indexnpro 页面上按下提交时,为什么它会在地址栏中显示 Servletnpro 而不是 indexa.jsp ...但是它确实显示页面 indexa.jsp 填充了 indexa.jsp 中的值 ...我认为这是我不断丢失jsp页面之间的“corrtoe”值的原因..