Java 服务器页面.如何将参数从一个 JSP 页发送到另一个 JSP 页
Java Server Pages. How to send parameters from one JSP page to another
所以我有两个JSP页面一种是注册.jsp由注册表组成。当用户单击注册页面上的提交按钮时,我正在调用第二个 JSP 页面.jsp。第二个 JSP 页用于将数据添加到数据库中。我想做的是从第二页回到上一页,并在注册成功与否时显示一条消息。其他一切都很好。正在将数据添加到数据库中。这是我的注册表,在单击提交按钮时调用其他jsp页面。
<head>
</head>
<%!
String val;
%>
<article class="registrationform">
<%
//Here m trying to access the attribute val which is set in the 2nd jsp page and whose value is true or false depending on data is added successfully or not.
val=(String)request.getSession().getAttribute("val");
if(val.equals("true"))
{
%>
<h2 color="blue">Registration Successfull </h2>
<%
}else if(val.equals("false"))
{
%>
<h2 color="red">Registration Failed. Please Try Again</h2>
<%
} else{
}
%>
<h2>Registration form</h2>
<form class="registration form-horizontal" name="regform" method="post" action="http://localhost:8080/mysrc/vt/components/jsp/RegisterDataBase.jsp">
<fieldset id="personalinfo">
<legend>Personal Info</legend>
<section class="row">
<label class="col col-lg-4 control-label" for="myfirstname">First Name</label>
<div class="controls">
<input class="col col-lg-8" type="text" name="myfirstname" id="myfirstname">
</div><!-- controls -->
</section><!-- row -->
<section class="row">
<label class="col col-lg-4 control-label" for="mylastname">Last Name</label>
<div class="controls">
<input class="col col-lg-8" type="text" name="mylastname" id="mylastname" >
</div><!-- controls -->
</section><!-- row -->
<section class="row">
<label class="col col-lg-4 control-label" for="myemail">Email</label>
<div class="controls">
<input class="col col-lg-8" type="email" name="myemail" id="myemail" required autocomplete="off" />
</div><!-- controls -->
</section><!-- row -->
<section class="row">
<label class="col col-lg-4 control-label" for="mypassword">Password</label>
<div class="controls">
<input class="col col-lg-8" type="password" name="mypassword" id="mypassword" required autocomplete="off" />
</div><!-- controls -->
</section><!-- row -->
</fieldset><!-- personal info -->
<fieldset id="otherinfo">
<legend>Other Info</legend>
<section class="row">
<label class="col col-lg-4 control-label" for="dateofbirth">D.O.B</label>
<div class="controls">
<input class="col col-lg-8" type="date" name="dateofbirth" id="dateofbirth" />
</div><!-- controls -->
</section><!-- row -->
<section class="row">
<label class="col col-lg-4 control-label">Gender</label>
<div class="controls col col-lg-8">
<label class="radio">
<input type="radio" name="gender" value="male" /> Male
</label>
<label class="radio">
<input type="radio" name="gender" value="female" /> Female
</label>
</div><!-- controls -->
</section><!-- row -->
<section class="row">
<label class="col col-lg-4 control-label" for="collegename">College</label>
<div class="controls">
<input class="col col-lg-8" type="text" name="college" id="collegename" />
</div><!-- controls -->
</section><!-- row -->
<section class="row">
<label class="col col-lg-4 control-label" for="myaddress">Address</label>
<div >
<textarea class="col col-lg-8" type="text" name="address" id="myaddress" rows="3"></textarea>
</div><!-- controls -->
</section><!-- row -->
</fieldset>
<button class="btn" type="submit" >Submit</button>
</form>
</article>
这是具有数据库连接的第二个 JSP 页面,其中数据被添加到数据库中。现在我想再次重定向回上一页并显示一个弹出窗口,指出注册成功是数据添加成功,否则失败。
<%@ page language="java" %>
<%@ page import="java.sql.*" %>
<%!
String myfirstname, mylastname, myemail, mypassword, dateofbirth, gender,college, address;
Connection con;
PreparedStatement pst;
%>
<%
myfirstname=request.getParameter("myfirstname");
mylastname=request.getParameter("mylastname");
myemail=request.getParameter("myemail");
mypassword=request.getParameter("mypassword");
dateofbirth=request.getParameter("dateofbirth");
gender=request.getParameter("gender");
college=request.getParameter("college");
address=request.getParameter("address");
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:vtdsn");
pst=con.prepareStatement("insert into studentdetail values(?,?,?,?,?,?,?,?)");
}
catch(Exception e)
{
e.printStackTrace();
}
try{
pst.setString(1,myfirstname);
pst.setString(2,mylastname);
pst.setString(3,myemail);
pst.setString(4,mypassword);
pst.setString(5,dateofbirth);
pst.setString(6,gender);
pst.setString(7,college);
pst.setString(8,address);
int i=pst.executeUpdate();
if(i>=1)
{
//this is what i tried to set an attribute as true is data is added successfully which is being accesses at the previous page but m getting errors.
//request.getSession().setAttribute("val", "true");
response.sendRedirect("http://localhost:8080/mysrc/vt/register.jsp");
}
else
{
response.sendRedirect("http://localhost:8080/mysrc/vt/error.html");
}
}
catch(Exception e){
e.printStackTrace();
}
%>
将参数从一个 jsp 发送到另一个 jsp 有三种方式:1.将参数存储在会话中,然后重定向,就像您所做的那样。2.在URL中设置参数,然后重定向。3. 将参数存储在请求中,并将请求转发到下一个 jsp。
据我所知,你的方式应该没问题,那么你得到了什么具体的错误?
此外val=(String)request.getSession().getAttribute("val");此值可能为空所以if(val.equals("true")) 可以抛出 NullPointer 异常尝试if("true".equals(val)) 代替
相关文章:
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 如何将输入类型值或id从一个jsp传递到另一个jsp页面
- 如何将日期id从一个jsp传递到另一个jsp页面
- 一个jsp中有两个操作URL
- 在jsp中,隐藏一个基于其他具有日期选择器的字段的字段
- 如何根据 jsp 中数据库中的值在下拉列表中选择一个值
- 在不重新加载页面的情况下,从JSP(服务器端)b设置一个JavaScript变量
- 如何在jsp页面中包含一个拖放交互UI
- 声明一个js变量,该变量将被我的2个jsp访问
- Dropdown基于jsp Struts中的另一个下拉列表
- 方法以打开Javascript中的另一个jsp页面
- 调用一个不返回任何内容的servlet..加载时从jsp
- 点击jsp页面上的链接打开一个文件
- 使用Onclick将参数从一个jsp页面传递到另一个页面
- 使用PHP和JSP在另一个网页中获取cookie值
- 从javascript调用一个jsp方法
- 如果要使用 JSP 和 Java 脚本删除数据,则需要一个确认框
- 如何将 JS 变量从一个 jsp 页面传递到另一个页面
- 如果在第一个 jsp 页面设置了刷新参数,则会刷新所有 jsp 页面
- 使用 ajax 和 JSP Servlet 根据选择的上一个下拉列表填充下拉列表