Java 在文本框中显示数据库中的数据

Java 在文本框中显示数据库中的数据,java,jsp,servlets,Java,Jsp,Servlets,我有2个JSP页面,如下所示: projectcategory.jsp <% Connection con = DbConnect.connect(); Statement s = con.createStatement(); ResultSet rs = s.executeQuery("select * from projectcategory"); %> <DIV class="TabbedPanelsContent" alig

我有2个JSP页面,如下所示:

projectcategory.jsp

 <%
    Connection con = DbConnect.connect();
    Statement s = con.createStatement();

    ResultSet rs = s.executeQuery("select * from projectcategory");
 %>
        <DIV class="TabbedPanelsContent" align="center">
        <TABLE border="1">
            <TR>
                <TH>CATEGORY ID</TH>
                <TH>CATEGORY NAME</TH>
                <TH>Edit/Update</TH>
            </TR>

            <%
                while (rs.next()) {
            %>
            <%String p=rs.getString(1);%>

            <TR>
                <TD><%=rs.getString(1)%></TD>
                <TD><%=rs.getString(2)%></TD>
                <TD>

                <FORM action="EditPcat.jsp?pcatid=p"><INPUT type="submit"
                    value='edit/update'></INPUT>
                </FORM>

                </TD>
            </TR>

            <%
                }
            %>
        </TABLE>
        </DIV>

类别ID
类别名称
编辑/更新
另一个是Editpcat.jsp:

</head>
<body>

<%String s=request.getParameter("p"); %>



<form action="ProjCatServlet" method="post">
<div align="right"><a href="projectcategory.jsp">view</a></div>
<fieldset>

<legend>Edit category</legend>
<table cellspacing="2" cellpadding="2" border="0">
    <tr>
        <td align="left">Category Id</td>

        <td><input type="text" name="pcatid" value="<%=s%>" ></td>
    </tr>

    <tr>
        <td align="right">Category Name</td>
        <td><input type="text" name="pcatname"></td>
    </tr>

    <tr>
        <td><input type="submit" value="submit"></td>
    </tr>

</table>

<input type="hidden" name="FUNCTION_ID" value="UPDATE">

</fieldset>
</form>

编辑类别
类别Id
类别名称

如何在另一个JSP的文本框中显示我们从数据库中获得的一个JSP页面的值?

这非常脏,但您可以在表单中添加隐藏的输入标记:

<INPUT type="hidden" name="p1" value="<%=rs.getString(1)%>">
<INPUT type="hidden" name="p2" value="<%=rs.getString(2)%>">


顺便说一句:您应该在不再需要时关闭语句,否则您可能会在服务器上使用太多的资源。

您将它作为名为
pcatid
的请求参数传递:

<FORM action="EditPcat.jsp?pcatid=p">
把名字排成一行

也就是说,您用
servlets
标记了这个问题,但您根本没有使用servlets。老实说,这段代码是一场灾难。Scriptlet是一种糟糕的实践,JDBC代码正在泄漏资源。原始Java代码属于Java类,而不是JSP文件。使用像JSTL这样的标记库来控制页面流,并使用EL(表达式语言)来访问后端数据。通过这项工作来把事情做好

启动示例:

public void doGet(HttpServletRequest request, HttpServletResponse response) {
    List<Project> projects = projectDAO.list();
    request.setAttribute("projects", projects);
    request.getRequestDispatcher("projects.jsp").forward(request, response);
}
public void doGet(HttpServletRequest请求,HttpServletResponse响应){
List projects=projectDAO.List();
request.setAttribute(“项目”,projects);
getRequestDispatcher(“projects.jsp”).forward(请求、响应);
}


${project.id}
${project.name}
public void doGet(HttpServletRequest request, HttpServletResponse response) {
    List<Project> projects = projectDAO.list();
    request.setAttribute("projects", projects);
    request.getRequestDispatcher("projects.jsp").forward(request, response);
}
<table>
    <c:forEach items="${projects}" var="project">
        <tr>
            <td>${project.id}</td>
            <td>${project.name}</td>
        </tr>
    </c:forEach>
</table>