3

タイトルで説明したように、JSP ページからサーブレットにデータを渡す必要があります。データベースから JSP ページのフォームにデータをロードします。これで、ユーザーはそのデータを変更できるようになります。そのため、変更されたデータをサーブレットに送り返して、データベースを更新する必要があります。doPost()したがって、サーブレットでメソッドを使用したい

これは私のJSPです:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="content-script-type" content="text/javascript" />
    <meta http-equiv="content-style-type" content="text/css" />
    <meta http-equiv="content-language" content="de" />

    <link href="../resources/css/basic.css" type="text/css" rel="stylesheet" />

    <title>Edit Movie</title>
</head>

<body>
    <div id="wrapper">
        <h2 id="title">Edit Person</h2>
        <br></br>
        <br></br>
        <form id="1" class="appnitro"  method="post" action="">                     
            <ul>
                <li id="li_1" >
                    <label class="description" for="element_1">Name</label>
                    <div>
                        <input id="element_1" name="element_1" class="element text large" type="text" maxlength="255" value="${requestScope.person.name}"/> 
                    </div> 
                </li>       
                <li id="li_2" >
                    <label class="description" for="element_2">Deparment</label>
                    <div>
                        <input id="element_2" name="element_2" class="element text large" type="text" maxlength="255" value="${requestScope.person.department}"/> 
                    </div> 
                </li>   
                <li id="li_3" >
                    <label class="description" for="element_3">Job</label>
                    <div>
                        <input id="element_3" name="element_3" class="element text large" type="text" maxlength="255" value="${requestScope.person.job}"/> 
                    </div> 
                </li>       
                <li id="li_4" >
                    <label class="description" for="element_4">Biographie</label>
                    <div>
                        <textarea id="element_4" name="element_4" class="element textarea medium">${requestScope.person.biography}</textarea> 
                    </div> 
                </li>
                <li class="buttons">
                    <input type="hidden" name="form_id" value="652973" />
                    <input id="saveForm" class="button_text" type="submit" name="submit" value="Submit" />
                </li>
            </ul>
        </form>                 
    </div>
</body>
</html>

そして、これはdoPost()メソッドのない私のサーブレットです:

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import de.hof.university.spj.model.People;
import de.hof.university.spj.model.PeopleDAO;

public class SinglePersonEditServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private PeopleDAO peopleDao = new PeopleDAO();

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        String name = "id";
        String value = request.getParameter(name);

        int id = Integer.parseInt(value);

        People people = peopleDao.getPerson(id);

        request.setAttribute("person", people);

        RequestDispatcher reqDispatcher = request.getRequestDispatcher("../jsp/singlePersonEdit.jsp");
        reqDispatcher.forward(request, response);
    }
}

送信ボタンが押された後、変更されたデータをサーブレットに送信して、データベースに保存できるようにします。

4

1 に答える 1