im new в java spring, и я создаю форму html, и когда я нажимаю кнопку, данные вставляются в базу данных. Но после вставки, когда я обновляю страницу sh, данные автоматически вставляются снова. Пожалуйста, помогите мне это исправить. Сначала я использовал метод get, но я изменил его на post и сделал другой метод get, который возвращает ту же страницу, и теперь у меня есть один метод get и один метод post в контроллере. Где-то я читал, что когда я обновляю sh страницу, вызывается метод get. И теперь, когда я меняю методы, когда я обновляю страницу sh, браузер показывает мне это сообщение и сообщает, что данные будут отправлены повторно. Как исправить, чтобы он только обновлял sh страницу без повторной отправки данных
Это сообщение
Это мой html
<form th:method="post" th:action="@{/CreateAccount}">
<div class="ContainerCreateAccountLeft">
<input type="text" id="firstName" th:name="firstName" th:value="${firstName}" placeholder="First name">
<input type="text" id="secondName" th:name="secondName" th:value="${secondName}" placeholder="Surname">
<input type="text" id="lastName" th:name="lastName" th:value="${lastName}" placeholder="Family name">
<input type="text" id="address" th:name="address" th:value="${address}" placeholder="Address">
</div>
<div class="ContainerCreateAccountRight">
<input type="text" id="username" th:name="username" th:value="${username}" placeholder="Username">
<input type="text" id="password" th:name="password" th:value="${password}" placeholder="Password">
<input type="text" id="repeatPassword" th:name="repeatPassword" th:value="${repeatPassword}" placeholder="Repeat password">
<input type="text" id="email" th:name="email"th:value="${email}" placeholder="email">
</div>
<div class="ContainerCreateButton">
<button class="button button1" type="submit">Create</button>
</div>
</form>
Это мой контроллер
@Controller
public class CreateAccountController {
@PostMapping("/CreateAccount")
public String login(
@RequestParam(value = "firstName", required = false) String firstName,
@RequestParam(value = "secondName", required = false) String secondName,
@RequestParam(value = "lastName", required = false) String lastName,
@RequestParam(value = "address", required = false) String address,
@RequestParam(value = "username", required = false) String username,
@RequestParam(value = "password", required = false) String password,
@RequestParam(value = "repeatPassword", required = false) String repeatPassword,
@RequestParam(value = "email", required = false) String email,
Model model,
HttpServletRequest request
) throws SQLException, NamingException {
HttpSession mySession = request.getSession();
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
dataSource.setUsername("mssqllogin");
dataSource.setPassword("mssqllogin$");
dataSource.setUrl("jdbc:sqlserver://localhost\\SQLEXPRESS:1433;databaseName=AdminToolWeb");
Connection connection = dataSource.getConnection();
Employee emp = new Employee(0,firstName, secondName, lastName, address, username, password, repeatPassword, email);
try {
EncryptPasswords td = new EncryptPasswords();
emp.setPassword(td.encrypt(emp.getPassword()));
emp.setRepeatPassword(td.encrypt(emp.getRepeatPassword()));
Connection connection2 = dataSource.getConnection();
PreparedStatement st = connection2.prepareStatement(
"INSERT INTO Employees (FirstName_DB, Surname_DB, FamilyName_DB, Address_DB, Username_DB, Password_DB, RepeatPassword_DB, Email_DB) VALUES (?,?,?,?,?,?,?,?)");
st.setString(1, emp.getFirstName());
st.setString(2, emp.getSurname());
st.setString(3, emp.getFamilyName());
st.setString(4, emp.getAddress());
st.setString(5, emp.getUsername());
st.setString(6, emp.getPassword());
st.setString(7, emp.getRepeatPassword());
st.setString(8, emp.getEmail());
st.executeQuery();
st.close();
connection2.close();
} catch (Exception e) {
}
return "CreateAccount";
}
@GetMapping("/CreateAccount")
public Sting login(Model model) {
return "CreateAccount";
}
}