首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将jsp表单重定向到“成功”页面

将jsp表单重定向到“成功”页面
EN

Stack Overflow用户
提问于 2014-02-07 08:10:08
回答 2查看 2.9K关注 0票数 0

我有一个jsp注册表单,在提供有效输入和成功验证时,应该将其定向到WEB/WebPag.jsp,并使用DTO将此jsp传递给servlet- service和DAO,然后将数据插入数据库中。但现在注册成功后,如何将其重定向到successPage。

以下是我的源代码:

AffiliateServlet

代码语言:javascript
复制
 Affiliate af= new Affiliate();
    af.setFisrtName(request.getParameter("txtFname"));
        af.setLastName(request.getParameter("txtLname"));
        af.setGender(request.getParameter("txtGender"));
        af.setCategory(request.getParameter("txtCategory"));
        String dob=(request.getParameter("txtDob"));

        try {
            SimpleDateFormat formatter=new SimpleDateFormat("MM/dd/yyyy");
            formatter.setLenient(false);
            Date date=formatter.parse(dob);
            af.setDate(date);
        } catch (ParseException e) {
           e.printStackTrace();
        }

        af.setAge(Integer.parseInt(request.getParameter("txtAge")));
        af.setAddress(request.getParameter("txtAddr"));
        af.setCountry("India");
        af.setState(request.getParameter("txtState"));
        af.setCity(request.getParameter("txtCity"));
        af.setPinCode(Integer.parseInt(request.getParameter("txtPin")));
        af.setEmailId(request.getParameter("txtEmail"));
        String std=request.getParameter("txtStd");
        int Std=Integer.parseInt(std);
        String con=request.getParameter("txtPhone");
        int contactNo=Integer.parseInt(con);
        af.setContactNo(Std+"-"+contactNo);
        String mob=request.getParameter("txtMobile");
        Long mobileNo=Long.parseLong(mob);
        af.setMobileNo("+91-"+mobileNo);

    AffiliateService afs=new AffiliateService();
    afs.createAffiliate(af);
request.getRequestDispatcher("/WEB-INF/WebPages/success.jsp").forward(request, response);
    }

}

AffiliateService

代码语言:javascript
复制
public class AffiliateService {
    Affiliate affiliate=null;


    public Affiliate createAffiliate( Affiliate affiliate) {
         validateAffiliate(affiliate);
        return affiliate;
            }


    private Affiliate validateAffiliate(Affiliate affiliate) {
        this.affiliate=affiliate;
         if(affiliate!=null){
       AffiliateDAO afd=new AffiliateDAO();
       DataSource dataSource=new DataSource();
       afd.setDataSource(dataSource);
        afd.insertAffiliate(affiliate);
    }
    return affiliate;

}


}

AffiliateDAO

代码语言:javascript
复制
public void insertAffiliate(Affiliate affiliate){
    String sql="INSERT INTO REGISTER " +"(id,FisrtName,LastName,Gender,Category,DateOfBirth,Age,Address,Country,State,City,PinCode,EmailId,ContactNo,MobileNo)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
    Connection conn = null;

    try {
        conn = dataSource.createConnection();
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setInt(1, affiliate.getId());
        ps.setString(2, affiliate.getFisrtName());
        ps.setString(3, affiliate.getLastName());
        ps.setString(4,affiliate.getGender());
        ps.setString(5, affiliate.getCategory());
        ps.setDate(6, new java.sql.Date(affiliate.getDate().getTime()));
        ps.setInt(7, affiliate.getAge());
        ps.setString(8, affiliate.getAddress());
        ps.setString(9,affiliate.getCountry());
        ps.setString(10,affiliate.getState());
        ps.setString(11, affiliate.getCity());
        ps.setInt(12, affiliate.getPinCode());
        ps.setString(13, affiliate.getEmailId());
        ps.setString(14,affiliate.getContactNo());
        ps.setString(15, affiliate.getMobileNo());

        ps.executeUpdate();
        ps.close();

    } catch (SQLException e) {
        throw new RuntimeException(e);

    } finally {
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {}
        }
    }
}

(Af)之后,我尝试在AffiliateServlet中使用RequestDispatcher,但仍然无法重定向

,请有人在这方面帮助我.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-07 08:11:43

试一试

代码语言:javascript
复制
response.sendRedirect("RedirectIfSuccessful.jsp");

还可以将jsp移出WEB文件夹,尝试移动到/WebPages/test.jsp并使用

代码语言:javascript
复制
response.sendRedirect("WebPages/success.jsp");

在afs.createAffiliate(af)之后尝试

如果你不想移动你的jsp,试试这个。

代码语言:javascript
复制
request.getRequestDispatcher("/WEB-INF/WebPages/success.jsp").forward(request, response);

阅读这个topic,这将澄清你所有的疑虑。=)

票数 1
EN

Stack Overflow用户

发布于 2014-02-07 09:45:22

您可以使用三种方法从servlet.重定向。

1)请求调度员:-

代码语言:javascript
复制
RequestDispatcher dispatcher = getRequestDispatcher("jsp/servlet Page");
dispatcher.forward( request, response );

2)采用响应发送重定向方法。

代码语言:javascript
复制
 HttpResponce.sendRedirect("jsp/servlet Page");

3)设置标题位置:-

代码语言:javascript
复制
 response.setHeader("Location","jsp/servlet Page");

最好的方法是使用请求分派器,它只在一次往返中执行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21622463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档