は
<%@page import="java.util.*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%!
//This List is just for demonstration purposes
List<String> names = new ArrayList<String>();
%>
<%
if(request.getParameter("name")!=null){
names.add(request.getParameter("name"));
session.setAttribute("nameList", names);
//Here you put your database insert code
//Whenever the code execution reaches this line ,
//then it means that you have a new page submission
//and not a refresh or f5 case
response.sendRedirect("index.jsp");
}
%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action="index.jsp" method="post">
<input type="text" id="name" name="name"/>
</form>
<p>
<table>
<c:forEach items="${nameList}" var="element">
<tr>
<td>Name: <c:out value="${element}"/> </td>
</tr>
</c:forEach>
</table>
</p>
</body>
</html>
トリックはresponse.sendRedirect("index.jsp");
であり、最も簡単なソリューションです。これにより、すべてのリクエストパラメータがnull
になります。 f5
またはrefresh
がヒットした場合、if
は決して実行されません。通常の送信の場合は、if
が実行され、response.sendRedirect("index.jsp");
に電話します。あなたが本当にする必要があるすべてがある
要約
、:
1)if(request.getParameter("name")!=null)
2を確認してください)上記の場合はtrueで、データベースは
3を挿入します)上記の場合、response.sendRedirect("index.jsp");
真であります
UPDATE
if(request.getParameter("name")!=null){
DbUtility.addNameToDb(request.getParameter("name"));
ArrayList<String> currentList = DbUtility.getAllNamesFromDb();
session.setAttribute("nameList", currentList);
response.sendRedirect("index.jsp");
}
これら2つの方法を実装するだけで済みます。 addNameToDb(String)
はデータベースにinsert
を作成します。 getAllNamesFromDb()
は、データベースのエントリを表すArrayList<String>
オブジェクトを返します。
ありがとうあなたはこれは良い解決策だと私は間違いなくこれを試してみてお知らせします。 – Abubakkar
これは完璧に動作します! – Abubakkar
ようこそ。 – BalusC