当前位置: 首页 > 知识库问答 >
问题:

Jsp和Servlet处理

酆出野
2023-03-14

我有一个jsp页面和一个servlet,在jsp页面中我有两个表单,每一个都是选择输入类型,即选择class和选择student。当我从select下拉菜单中选择class时,通过onchange事件,它将转到abcServlet,从servlet中检索该类,并将其转发到jsp页面,转到jsp页面中的下一个表单,select student,它再次提交到同一个servlet,从他们的servlet转发到同一个jsp页面,学生从servlet中检索,学生根据所选的类正确地显示在select student下拉列表中,但我的问题是,当我在select student下拉列表中选择一个学生时,类值变为null(我认为当第一次servlet转发到jsp页面时,类从abcServlet中正确检索,当我从下一个下拉框中选择student时,第二次整个jsp被转发,所以类值第二次变为null)我希望我的类在选择Class后从student下拉框中选择student时保持不变,我如何实现这一点?

        String sname[]={};
        ResultSet rs;
        int no_stdnts=0,admfee=0;
        String clas;
        clas=request.getParameter("class");
        Class.forName("com.mysql.jdbc.Driver");
        Connection con=DriverManager.getConnection("jdbc:mysql://localhost/XYZ","XYZ","XYZ");
        Statement st;
        st=(Statement)con.createStatement();
        rs=st.executeQuery("select count(sid) from students where class='"+clas+"'");
        while(rs.next())
        {
            no_stdnts=rs.getInt(1);
        }
        String snames[]=new String[no_stdnts];
        String stdnt=request.getParameter("student");

        request.setAttribute("snames", snames);
        request.setAttribute("no_stdnts", no_stdnts);
        request.setAttribute("cls", clas);

        RequestDispatcher rd=request.getRequestDispatcher("studentfee.jsp");
        rd.forward(request,response);

studentfee.jsp

<form  name="sclass" id="sclass" action="StudentFee" method="post">
            <br><br>
            <label style="font-size: 20px; word-spacing: 4px;"><b>Select Class : </b></label>
            <select name="class" id="clas" onchange="Javascript:sclass.submit()">
                        <option value="Select" style="visibility:hidden;"><% String cls=(String)request.getAttribute("cls");if(cls!=null)out.print(cls);else out.print("Select");%></option>
                        <option value="Nursery">Nursery</option>
                        <option value="LKG">LKG</option>
                        <option value="UKG">UKG</option>
                        <option value="I">I</option>
                        <option value="II">II</option>
                        <option value="III">III</option>
                        <option value="IV">IV</option>
                        <option value="V" >V</option>
                        <option value="VI">VI</option>
                        <option value="VII">VII</option>
                        <option value="VIII">VIII</option>
                        <option value="IX">IX</option>
                        <option value="X">X</option>
            </select>                
        </form>
        </td></tr>
        <tr><td>
        <form  name="sname" id="sname" action="StudentFee" method="post">
            <br><br>
            <label style="font-size: 20px; word-spacing: 4px;"><b>Select Student : </b></label>
            <select name="student" id="clas" onchange="Javascript:sname.submit()">

                        <%

                        try
                        {
                            response.setContentType("text/html");
                            int no_stdnts=(Integer)request.getAttribute("no_stdnts");
                            String snames[]=new String[no_stdnts];
                            snames=(String[])request.getAttribute("snames");
                            for(int i=0;i<no_stdnts;i++)
                            { %>
                            <option>
                            <% out.print(snames[i]);
                            }   
                        }
                        catch(Exception e)
                        {
                            e.getMessage();
                        }
                        %>
                        </option>
            </select>                
        </form>

共有1个答案

范侯林
2023-03-14

听起来这一切都隐含着一个会话。您有两个操作,您希望第二个操作记住第一个操作的结果。

可以在会话中维护相关值。如果没有找到,则表示查询从未运行过。如果是,返回并显示它。

 类似资料:
  • 我只是JSF的初学者,所以我不知道这是不是正确的问题。有没有可能,如果我用JSF标记/组件制作一个表单,并为action属性定义一个servlet(即可以形成提交给servlet的数据),如果有可能,那么我如何实现这一点,如何在servlet中获取表单参数。它与方法的request.getParameter()相同吗?请解释。我将为自己的实践制作一个项目,并希望将JSF、SERVLET和JSP一起

  • 我有2个问题 1)我有一个login.jsp页和索引页。一旦我验证了用户(在servlet ie中),用户将被重定向到index.jsp页面。我用servlet的这条线重定向它 这个过程运行良好。但是当我刷新页面时,我会被重定向回登录页面。另外,我注意到在index.jsp页面上,我得到的名字而不是index.jsp,即我的servlet名称得到displayed.for这样的例子得到代替显示 2

  • JSP/JSTL/Servlet 1. JSP/JSTL/Servlet Tips 现在的project一般选Servlet2.5, JSP 2.1 和 JSTL1.2. 1.1 尽量使用JSP2.0的EL而不是JSTL,使页面看起来更像普通html页面。 比如: <input type="text" id="loginName" name="loginName" size="25" value=

  • 我的JSP脚本中有这段代码 我的错误。jsp脚本是: 比如:http://www.tutorialspoint.com/jsp/jsp_exception_handling.htm 但我想替换servlet之前的所有代码。。。 正如你所见。。。 我需要翻译 error.jsp完全...例如如何翻译这个: 对不起,但是我不知道怎么做... PD:我在寻找我的问题,但网站告诉我需要改变网站。xml文件

  • 本文向大家介绍Servlet和JSP之间的区别,包括了Servlet和JSP之间的区别的使用技巧和注意事项,需要的朋友参考一下 简而言之,可以将其定义为Servlet是在Web服务器上运行的Java程序,它们充当HTTP客户端发出的请求与HTTP服务器上的数据库或应用程序之间的中间层。而JSP只是一个文本文件,其中包含两种类型的文本:预定义的静态文本和在收到服务器响应后呈现的动态文本。 以下是Ar

  • 本文向大家介绍JSP 和 servlet 有什么区别?相关面试题,主要包含被问及JSP 和 servlet 有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 JSP 是 servlet 技术的扩展,本质上就是 servlet 的简易方式。servlet 和 JSP 最主要的不同点在于,servlet 的应用逻辑是在 Java 文件中,并且完全从表示层中的 html 里分离开来,而 JSP 的