Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在servlet中传递JSP中的值,并使用会话在servlet中的不同方法中保留这些值_Java_Jsp_Session_Servlets - Fatal编程技术网

Java 在servlet中传递JSP中的值,并使用会话在servlet中的不同方法中保留这些值

Java 在servlet中传递JSP中的值,并使用会话在servlet中的不同方法中保留这些值,java,jsp,session,servlets,Java,Jsp,Session,Servlets,我有一个jsp页面,它将显示来自数据库的记录。仅当username=admin和password=admin时,才启用编辑和删除按钮,而对于其他用户,则禁用编辑和删除按钮。现在,当我使用管理员凭据输入login.jsp时,按钮在编辑/更新或删除记录后立即被禁用。这是因为update和delete块中的用户名和密码得到的是空值。如果我可以保留登录的值,那么它可以正常工作,但我不知道如何实现它 在用户登录后,如何在servlet中的update和delete方法中保留用户名和密码 这是我的servl

我有一个jsp页面,它将显示来自数据库的记录。仅当username=admin和password=admin时,才启用编辑和删除按钮,而对于其他用户,则禁用编辑和删除按钮。现在,当我使用管理员凭据输入login.jsp时,按钮在编辑/更新或删除记录后立即被禁用。这是因为update和delete块中的用户名和密码得到的是空值。如果我可以保留登录的值,那么它可以正常工作,但我不知道如何实现它

在用户登录后,如何在servlet中的update和delete方法中保留用户名和密码

这是我的servlet代码

        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    {

            HttpSession session = request.getSession(false);
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            String query;
            Connection conn;
            Statement stmt;
            ResultSet res;
            DatabaseConnection dbconn;
            List lst=new ArrayList();
            String id   ;
            String username="";         
            String hiddenname = request.getParameter("hiddenname"); 
            username = request.getParameter("username");
            String password = request.getParameter("password");
            session.setAttribute("uname", username);
            session.setAttribute("upass", password);
            Connection con = dbconnection.getCon();
            PreparedStatement statemt = null;

        if ("login".equals(hiddenname))
            {

                try {
                        statemt = con.prepareStatement("select User_name,Password from login_details where User_name = ? and Password = ?");
                        statemt.setString(1, username);
                        statemt.setString(2, password); 
                        ResultSet rs = statemt.executeQuery();
                        if (rs.next() == false) 
                        {
                            out.write("Invalid user name or password. Please press back button to login again");
                        }
                else
            {
                try
                {
                        String login_name=(String) session.getAttribute("uname");
                        String login_password=(String) session.getAttribute("upass");
                        request.setAttribute("UserName", login_name);
                        request.setAttribute("UserPassword", login_password);
                        dbconn=new DatabaseConnection();        
                        conn=dbconn.setConnection();
                        stmt=conn.createStatement();
                        query="select * from mpi";
                        res=dbconn.getResultSet(query, conn);
                        while(res.next())
                        {   
                            lst.add(res.getString("UniqueID"));
                            lst.add(res.getString("Phylum"));
                            lst.add(res.getString("Family"));
                            lst.add(res.getString("Genus"));
                            lst.add(res.getString("NCBI_Taxnomy_ID"));
                            lst.add(res.getString("16s_Sanger_seq"));
                            lst.add(res.getString("Genome_Sequencing_Batch"));
                            lst.add(res.getString("Stock_number"));
                            lst.add(res.getString("Stock_Location"));
                            lst.add(res.getString("Soil_batch"));
                            lst.add(res.getString("Host"));
                            lst.add(res.getString("Operator"));
                            lst.add(res.getString("GPS_coordinates"));
                            lst.add(res.getString("Greenhouse_or_Natural_sites"));
                            lst.add(res.getString("Isolation_procedure"));
                            lst.add(res.getString("Date_of_isolation"));
                            lst.add(res.getString("Previous_Ids"));
                            lst.add(res.getString("Compartment"));
                            lst.add(res.getString("Publication"));
                            lst.add(res.getString("Strain_Derivatives"));
                            lst.add(res.getString("Growth_conditions"));
                            lst.add(res.getString("Natural_antibiotic_resistance"));
                            lst.add(res.getString("Colony_morphology"));
                        }
                                    res.close(); 
                    }
                    catch(Exception e)
                    {
                        e.printStackTrace();        
                    }
                    finally
                    {
                        request.setAttribute("UserData", lst);
                        RequestDispatcher rd=request.getRequestDispatcher("/displayrecord.jsp");
                        rd.forward(request, response);
                        lst.clear();
                        out.close();
                    }
                }           
                        con.close();
        } 
                catch (SQLException e) 
                    {
                        e.printStackTrace();
                    }

        }

    else if("update".equals(hiddenname))
        {
            String UniqueID,Phylum,Family,Genus,NCBI_Taxnomy_ID,s16_Sanger_seq,Genome_Sequencing_Batch,Stock_number,
            Stock_Location,Soil_batch,Host,Operator,GPS_coordinates,Greenhouse_or_Natural_sites,
            Isolation_procedure,Date_of_isolation,Previous_Ids,Compartment,Publication,Strain_Derivatives,Growth_conditions,
            Natural_antibiotic_resistance,Colony_morphology,Comments;   
            response.setContentType("text/html;charset=UTF-8");
            String login_name=(String) session.getAttribute("uname");
            String login_password=(String) session.getAttribute("upass");
            request.setAttribute("UserName", login_name);
            request.setAttribute("UserPassword", login_password);

             try{
                dbconn=new DatabaseConnection();        
                conn=dbconn.setConnection();
                UniqueID=request.getParameter("UniqueID").toString();
                Phylum=request.getParameter("Phylum");          
                Family=request.getParameter("Family");          
                Genus=request.getParameter("Genus");        
                NCBI_Taxnomy_ID=request.getParameter("NCBI_Taxnomy_ID");        
                s16_Sanger_seq=request.getParameter("s16_Sanger_seq");
                Genome_Sequencing_Batch=request.getParameter("Genome_Sequencing_Batch");
                Stock_number=request.getParameter("Stock_number");
                Stock_Location=request.getParameter("Stock_Location");
                Soil_batch=request.getParameter("Soil_batch");
                Host=request.getParameter("Host");
                Operator=request.getParameter("Operator");
                GPS_coordinates=request.getParameter("GPS_coordinates");
                Greenhouse_or_Natural_sites=request.getParameter("Greenhouse_or_Natural_sites");
                Isolation_procedure=request.getParameter("Isolation_procedure");
                Date_of_isolation=request.getParameter("Date_of_isolation");
                Previous_Ids=request.getParameter("Previous_Ids");
                Compartment=request.getParameter("Compartment");
                Publication=request.getParameter("Publication");
                Strain_Derivatives=request.getParameter("Strain_Derivatives");
                Growth_conditions=request.getParameter("Growth_conditions");
                Natural_antibiotic_resistance=request.getParameter("Natural_antibiotic_resistance");
                Colony_morphology=request.getParameter("Colony_morphology");                
                stmt=conn.createStatement();
                query="update mpi set Phylum='"+Phylum+"',Family='"+Family+"',Genus='"+Genus+"',NCBI_Taxnomy_ID='"+NCBI_Taxnomy_ID+"',16s_Sanger_seq='"+s16_Sanger_seq+"',Genome_Sequencing_Batch='"+Genome_Sequencing_Batch+"',Stock_number='"+Stock_number+"',Stock_Location='"+Stock_Location+"',Soil_batch='"+Soil_batch+"',Host='"+Host+"',Operator='"+Operator+"',GPS_coordinates='"+GPS_coordinates+"',Greenhouse_or_Natural_sites='"+Greenhouse_or_Natural_sites+"',Date_of_isolation='"+Date_of_isolation+"',Isolation_procedure='"+Isolation_procedure+"',Previous_Ids='"+Previous_Ids+"',Compartment='"+Compartment+"',Publication='"+Publication+"',Strain_Derivatives='"+Strain_Derivatives+"',Growth_conditions='"+Growth_conditions+"',Natural_antibiotic_resistance='"+Natural_antibiotic_resistance+"',Colony_morphology='"+Colony_morphology+"' where UniqueID='"+UniqueID+"'";
                int i=stmt.executeUpdate(query);                
                query="select * from mpi";
                res=dbconn.getResultSet(query, conn);
                while(res.next())
                {
                    lst.add(res.getString("UniqueID"));
                    lst.add(res.getString("Phylum"));
                    lst.add(res.getString("Family"));
                    lst.add(res.getString("Genus"));
                    lst.add(res.getString("NCBI_Taxnomy_ID"));
                    lst.add(res.getString("16s_Sanger_seq"));
                    lst.add(res.getString("Genome_Sequencing_Batch"));
                    lst.add(res.getString("Stock_number"));
                    lst.add(res.getString("Stock_Location"));
                    lst.add(res.getString("Soil_batch"));
                    lst.add(res.getString("Host"));
                    lst.add(res.getString("Operator"));
                    lst.add(res.getString("GPS_coordinates"));
                    lst.add(res.getString("Greenhouse_or_Natural_sites"));
                    lst.add(res.getString("Isolation_procedure"));
                    lst.add(res.getString("Date_of_isolation"));
                    lst.add(res.getString("Previous_Ids"));
                    lst.add(res.getString("Compartment"));
                    lst.add(res.getString("Publication"));
                    lst.add(res.getString("Strain_Derivatives"));
                    lst.add(res.getString("Growth_conditions"));
                    lst.add(res.getString("Natural_antibiotic_resistance"));
                    lst.add(res.getString("Colony_morphology"));
                }
                res.close(); 
            }

            catch(Exception e)
            {
                e.printStackTrace();
            }

            finally
            {
                request.setAttribute("UserData", lst);
                RequestDispatcher rd=request.getRequestDispatcher("/displayrecord.jsp");
                rd.forward(request, response);
                lst.clear();
                out.close();
            }

        }
    else {
        try
        {
                dbconn=new DatabaseConnection();        
                conn=dbconn.setConnection();
                stmt=conn.createStatement();
                query="select * from mpi";
                res=dbconn.getResultSet(query, conn);
                String login_name=(String) session.getAttribute("uname");
                String login_password=(String) session.getAttribute("upass");
                request.setAttribute("UserName", login_name);
                request.setAttribute("UserPassword", login_password);
                 while(res.next())
                {                           
                    lst.add(res.getString("UniqueID"));
                    lst.add(res.getString("Phylum"));
                    lst.add(res.getString("Family"));
                    lst.add(res.getString("Genus"));
                    lst.add(res.getString("NCBI_Taxnomy_ID"));
                    lst.add(res.getString("16s_Sanger_seq"));
                    lst.add(res.getString("Genome_Sequencing_Batch"));
                    lst.add(res.getString("Stock_number"));
                    lst.add(res.getString("Stock_Location"));
                    lst.add(res.getString("Soil_batch"));
                    lst.add(res.getString("Host"));
                    lst.add(res.getString("Operator"));
                    lst.add(res.getString("GPS_coordinates"));
                    lst.add(res.getString("Greenhouse_or_Natural_sites"));
                    lst.add(res.getString("Isolation_procedure"));
                    lst.add(res.getString("Date_of_isolation"));
                    lst.add(res.getString("Previous_Ids"));
                    lst.add(res.getString("Compartment"));
                    lst.add(res.getString("Publication"));
                    lst.add(res.getString("Strain_Derivatives"));
                    lst.add(res.getString("Growth_conditions"));
                    lst.add(res.getString("Natural_antibiotic_resistance"));
                    lst.add(res.getString("Colony_morphology"));
                }
                            res.close(); 
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        finally
        {
            request.setAttribute("UserData", lst);
            RequestDispatcher rd=request.getRequestDispatcher("/displayrecord.jsp");
            rd.forward(request, response);
            lst.clear();
            out.close();
        }
     }  
  } 
}
login.jsp如下所示:

<form name="frm" action="DisplayData" method="post" onsubmit="return Validate()">
    <table align="center">
    <tr>
    <td align="left">UserName:</td>
    <td><input type="text"  name="username" value=""></input></td>
    </tr>
    <tr>
    <td align="left">Password:</td>
    <td><input type="password"  name="password" value=""></input> </td>
    </tr>
    </table>
    <%

       String name = request.getParameter("username");
       String password = request.getParameter("password");
       session.setAttribute("name",name);
       session.setAttribute("pass", password);
    %>
    <table align="center">
    <tr>
    <input type="hidden" name="hiddenname" value="login">
    <td><input align="middle" type="submit" name="Sign_in" value="Sign_in"  onclick="return Validate()"></input></td>
    <td><input type="button" value="Signup" onClick="javascript:window.location='Signup.jsp';"></input></td>
    </tr>
    </table>
    </form>

在通过登录页面登录之后,您就可以重定向到servlet了

在servlet中

设置一个属性,类似于标志变量

对于管理员

boolean flagVar=true;
request.setAttribute("flag" , flagVar);
在jsp页面中获取从servlet转发的变量,并使用jquery启用/禁用按钮


希望这有帮助

你正在会话中保存用户名和密码,对吗?@Santino'sony'Corleone是的。。但是当我试图在update或delete方法中获取它时,我得到的值是null。如果我可以保留方法中的值,那么它将很好地工作。哪里有更新/删除方法?我不能在你的更新和删除方法中调用会话…你是否可以在你的代码上放置一个标记或其他东西,指示用户NAM密码的使用。你可以展示你的JSP代码,尤其是表单部分吗?