У меня есть сервлет входа в систему, и после успешного входа я хочу, чтобы пользователь
/логин/{имя пользователя}/
Как разместить username
в URL-адресе для POST-запроса?
Я просмотрел некоторые ответы, такие как это и это, но не мог понять, как на самом деле достичь моей цели. Я хотел бы придерживаться использования сервлетов и воздерживаться от использования таких технологий, как JAX-RS и так далее.
Это моя реализация логики входа:
private void login_doIT(HttpServletRequest request, HttpServletResponse response) throws SQLException, InvalidKeySpecException, NoSuchAlgorithmException, ServletException, IOException {
String userInput = request.getParameter("user_name");
String pass = request.getParameter("pass");
pst = c.prepareStatement(query);
pst.setString(1,userInput);
rs = pst.executeQuery();
while (rs.next()){
imiya = rs.getString("user_name");
kyuch = rs.getString("key");
kodom = rs.getBytes("nitrate");
}
EncryptClass instance = new EncryptClass(2048,100000);
if(instance.chkPass(pass,kyuch,kodom) && imiya.equals(userInput)){
HttpSession session = request.getSession();
session.setAttribute("userLogged",userInput);
request.setAttribute("title",userInput);
String pathInfo = request.getPathInfo();
if(pathInfo!=null || !pathInfo.isEmpty()){
String[] pathArr = pathInfo.split("/");
String val = pathArr[1];//{username}
//now what??.....
}
request.getRequestDispatcher("/LoginLanding.jsp").forward(request,response);
} else {
request.setAttribute("message", message);
request.getRequestDispatcher("/index.jsp").include(request,response);
}
}
И это web.xml для него:
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>AuthPack.ServletLogin</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/Login/*</url-pattern>
</servlet-mapping>
После того, как я отправлю форму, URL станет чем-то вроде
/авторизоваться
Но я хочу так:
/логин/{имя пользователя}
более предпочтительно:
/{имя пользователя}