【问题标题】:Sending a value (id for example) from one servlet to another (jsp+servlet+mysql)将一个值(例如 id)从一个 servlet 发送到另一个(jsp+servlet+mysql)
【发布时间】:2014-08-27 08:52:37
【问题描述】:

我有两张表,一个 AFFILIATEidaff(AutoIncrement),name,address,..)和他的 COTISATION( id,value,..)

我制作了两个独立的 jsp 表单和两个独立的 Servlet,每一个 从 jsp 表单中收集信息并将其插入到相关表中。

我希望能够选择/显示会员及其受影响的 COTISATION,

I wanted to use idaff as a foreign key in COTISATION table, but i don't know how
 to retrieve it from the first servlet (GestAffiliate.java) to the next servlet 
(GestCotisation.java) to be able to insert it in COTISATION Table.

感谢您的建议。

Servlet 代码:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    PrintWriter out =response.getWriter();
    /*response.setContentType("text/html");
    out.println("<HTML>");
    out.println("<HEAD> <TITLE> TATATATATA </TITLE></HEAD>");
    out.println("</HTML>"); */

    Affilie newaff=new Affilie();
    newaff.setNom(request.getParameter("nom"));
    newaff.setPrenom(request.getParameter("prenom"));
    newaff.setNumaffiliation(request.getParameter("numaffiliation"));
    newaff.setCin(request.getParameter("cin"));

    newaff.setPpr(request.getParameter("ppr"));
    newaff.setNumaffilregimebase(request.getParameter("numaffregbase"));
    newaff.setMatriculeemployeur(request.getParameter("matriculeemployeur"));
    newaff.setNumpension(request.getParameter("numpension"));

    newaff.setDatenaissance(request.getParameter("datenaissance"));
    newaff.setTelephone(request.getParameter("telephone"));
    newaff.setAdresse(request.getParameter("Adresse"));
    newaff.setVille(request.getParameter("ville"));

    newaff.setCodepostal(request.getParameter("codepostal"));
    newaff.setEtatcivil(request.getParameter("etatcivil"));
    newaff.setRegime(request.getParameter("regime"));       

    Connection connection=null;
    try{
    Class.forName("com.mysql.jdbc.Driver");
    }
    catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    try{
        connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/authentification","root","");
    }
    catch (SQLException e) {
        e.printStackTrace();
    }
    try {
        Statement statement=connection.createStatement();
        statement.executeUpdate("INSERT INTO `affilie` VALUES (0,'"+newaff.getNom()+"','"+newaff.getPrenom()+"','"+newaff.getNumaffiliation()+"','"+newaff.getCin()+"','"+newaff.getPpr()+"','"+newaff.getNumaffilregimebase()+"','"+newaff.getMatriculeemployeur()+"','"+newaff.getNumpension()+"','"+newaff.getDatenaissance()+"','"+newaff.getTelephone()+"','"+newaff.getAdresse()+"','"+newaff.getVille()+"','"+newaff.getCodepostal()+"','"+newaff.getEtatcivil()+"','"+newaff.getRegime()+"')");
    // ('"+newaff.getNom()+"','"+newaff.getPrenom()+"','"+newaff.getNumaffiliation()+"','"+newaff.getCin()+"','"+newaff.getPpr()+"','"+newaff.getNumaffilregimebase()+"','"+newaff.getMatriculeemployeur()+"','"+newaff.getNumpension()+"','"+newaff.getDatenaissance()+"','"+newaff.getTelephone()+"','"+newaff.getAdresse()+"','"+newaff.getVille()+"','"+newaff.getCodepostal()+"','"+newaff.getEtatcivil()+"','"+newaff.getRegime()+"'
        request.getRequestDispatcher("Cotisation.jsp").forward(request, response);

    }
    catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    out.println(" AFFiliation PERFECTLY DONE ! ");
}
enter code here

【问题讨论】:

  • 您尝试过什么?您尝试过的邮政编码。
  • 我不知道该怎么做,我直接在第一个表中插入,然后在第二个表中插入,两者没有关系,所以这就是我想要做的使用 AffiliateID 作为外键

标签: java jsp servlets insert


【解决方案1】:

在您的 servlet GestAffiliate.java 中的请求中设置 idaff 的值

request.setAttribute("idaff",idaff);

并将请求分派给jsp“Cotisation.jsp”,并在jsp上的隐藏参数中设置值

<input type="hidden" name="idaff" value=${requestScope.idaff}>

这个 jsp 转发到您的第二个 servlet,您可以在其中使用检索值

request.getParameter("idaff")

您必须在 jsp 页面顶部的 jsp 页面上添加此内容

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" 
    prefix="c" %>  

由于 jstl 中提供了 requestscope..但它会起作用

【讨论】:

  • 我试图给 idaff 一个值,然后在第二个 servlet 中使用 out.print(idaff) 打印它但不能..无论如何我想我会选择 max(id) 因为它是AutoIncrement,然后将其作为 FKey 插入 COTISATION 表中。谢谢。
猜你喜欢
  • 1970-01-01
  • 2017-09-16
  • 1970-01-01
  • 1970-01-01
  • 2016-09-23
  • 2017-04-21
  • 2012-05-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多