一尘不染

如何将值从一个jsp传递到另一个jsp以更新数据库

jsp

我有LookupStudent.jsp可以根据某些条件搜索和列出学生。

该jsp具有到另一个jsp UpdateStudent.jsp的引用链接。

我想要

  1. 根据LookupStudent.jsp中的学生ID在UpdateStudent.jsp中显示学生
  2. 根据步骤1中所做的更改更新表。

请您能帮助实现这一目标吗?

LookupStudent.jsp

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

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Lookup Students</title>
    </head>

    <body class="body">

        <form method="get" action="LookupStudentServlet">

            <table border="0">
                <tr align="left" valign="top">
                    <td>Student Name:</td>
                    <td><select name="fnameOperator">
                            <option value="Eq">Equals</option>
                            <option value="Sw">Starts With</option>
                            <option value="Ew">Ends With</option>
                            <option value="Co">Contains</option>
                    </select></td>
                    <td><input type="text" name="fname" /></td>
                </tr>
                <tr align="left" valign="top">
                    <td></td>
                    <td><input type="submit" name="submit" value="submit" /></td>
                </tr>
            </table>

        </form>

        <!-- List results -->

        <c:if test="${not empty studentList}">
            <table border="1" cellspacing="0" cellpadding="0" :>
                <tr>
                    <th>ID</th>
                    <th>Title</th>
                    <th>First Name</th>
                    <th>Last Name</th>
                </tr>
                <c:forEach var="students" items="${studentList}">
                    <tr>
                        <td>${students.studentID}</td>
                        <td>${students.title}</td>
                        <td>${students.firstName}</td>
                        <td>${students.lastName}</td>
                        <td><c:url value="UpdateStudent.jsp" var="url">
                                <c:param name="StudentID" value="${students.studentID}" />
                            </c:url> <a href="${url}">edit</a>
                    </tr>
                </c:forEach>
            </table>
        </c:if>

        <p>There are ${fn:length(studentList)} results.</p>
    </body>
    </html>

LookupStudentServlet.java

    package org.cms.controller;

    import java.io.IOException;
    import java.sql.SQLException;
    import java.util.List;

    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.cms.model.StudentDAO;

    /**
     * Servlet implementation class ListStudent
     */
    @WebServlet("/LookupStudentServlet")
    public class LookupStudentServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;


        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            try {
                String fnameOperator = request.getParameter("fnameOperator");

                //System.out.println(fnameOperator);

                String fname = request.getParameter("fname");
                String condition = "where 1=1 ";

                if (fname!=null||fname.length()>0) {
                    if (fnameOperator.equalsIgnoreCase("Eq")) {
                        condition =condition+ "and first_name = '"+fname+"'";
                    }
                    else if (fnameOperator.equalsIgnoreCase("Sw")) {
                        condition =condition+ "and first_name like '"+fname+"%'";
                    }
                    else if (fnameOperator.equalsIgnoreCase("Ew")) {
                        condition =condition+ "and first_name like '%"+fname+"'";
                    }
                    else if (fnameOperator.equalsIgnoreCase("Co")) {
                        condition =condition+ "and first_name like '%"+fname+"%'";
                    }

                }

                //System.out.println(condition);

                StudentDAO student = new StudentDAO();
                List<StudentDAO> students = student.lookupStudent(condition);
                request.setAttribute("studentList", students);
            } catch (SQLException sqle) {
                request.setAttribute("error", "Retrieving Students failed.");
                sqle.printStackTrace();
            }
         catch (Exception e) {
                e.printStackTrace();
        }
            finally {}
            request.getRequestDispatcher("LookupStudent.jsp").forward(request, response);
        }

        }

UpdateStudent.jsp

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

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Lookup Students</title>
    </head>
    <link rel="stylesheet" href="css/style.css" type="text/css"></link>

    <body class="body">


        <form method="get" action="UpdateStudent" class="form">


            <table border="0">
                <tr align="left" valign="top">
                    <td>Student ID:</td>
                    <td><input type="text" name="StudentID" /></td>
                </tr>
                <tr align="left" valign="top">
                    <td>Title:</td>
                    <td><input type="text" name="Title" /></td>
                </tr>
                <tr align="left" valign="top">
                    <td>First Name:</td>
                    <td><input type="text" name="Fname"  /></td>
                </tr>
                <tr align="left" valign="top">
                    <td>Last Name:</td>
                    <td><input type="text" name="Lname"  /></td>
                </tr>
                <tr align="left" valign="top">
                    <td></td>
                    <td><input type="submit" name="submit" value="submit"
                        class="fb8" /></td>
                </tr>
            </table>



        </form>


    </body>
    </html>

UpdateStudentServlet.java

    package org.cms.controller;

    import java.io.IOException;
    import java.sql.SQLException;
    import java.util.List;

    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.cms.model.StudentDAO;

    /**
     * Servlet implementation class ListStudent
     */
    @WebServlet("/UpdateStudentServlet")
    public class UpdateStudentServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;


        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            try {

                int studentID;
                studentID = Integer.parseInt(request.getParameter("StudentID"));
                //System.out.println(fnameOperator);
                String condition = "where 1=1";
                condition = condition+"and student_id = "+studentID;
                System.out.println(condition);
                StudentDAO student = new StudentDAO();
                List<StudentDAO> students = student.lookupStudent(condition);
                request.setAttribute("studentList", students);
            } catch (SQLException sqle) {
                request.setAttribute("error", "Retrieving Students failed.");
                sqle.printStackTrace();
            }
         catch (Exception e) {
                e.printStackTrace();
        }
            finally {}
            request.getRequestDispatcher("UpdateStudent.jsp").forward(request, response);
        }

        }

阅读 253

收藏
2020-06-08

共1个答案

一尘不染

如果仅是问题,则将参数从一个jsp传递到另一个。您有多种方法。你可以用这样的东西

 request.setAttribute("parameterName")

或者您可以使用诸如和标签之类的东西。这样,您可以传递参数。甚至您的代码似乎都像传递参数一样,您将获得哪种异常?谢谢,本

2020-06-08