У меня есть веб-сайт Java EE, но мне все еще нужно управлять входом и регистрацией .
Я хотел бы, чтобы вы дали мне руководство о том, как это сделать с помощью сервлетов. Например, пусть .jsp registro.jsp
отправляется через a <form></form>
в . Эту часть регистрации я уже почти освоил, НО хотелось бы управлять сессией. Если это , пусть система обнаружит это для меня, и если это тоже. Итак, в зависимости от того, какой у вас тип профиля, я перенаправляюсь на соответствующую страницу.Servlet
RegistroServlet
administrador
usuario registrado
Я не знаю, полезна ли эта информация, но у меня есть база данных с таблицей usuario
и еще одна TipoUsuario
с отношением @ManyToOne. Я создал его так, что если пользователь создан, ему также нужен тип пользователя. Как мне справиться с этой сессией? Я новичок в Java EE, я смотрел видео, но ни одно из них не научило меня тому, что мне нужно, я заранее благодарен за любую помощь.
PS: уже в таблице TipoUsuario
у меня есть два поля: Пользователь и Администратор
РЕДАКТИРОВАТЬ
userRecord.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link type="text/css" rel="stylesheet" href="../css/estilo.css">
<title>Predicación pública - Registro</title>
</head>
<body>
<br>
<br>
<br>
<div class="register_form">
<center>
<fieldset>
<legend align="center"><h1><strong>¡Regístrate!</strong></h1></legend>
<form action="" method="POST">
<label for="nombre"><strong>Nombre: <div class="asterisco">*</div></strong></label><br>
<input type="text" name="nombre" required> <br>
<label for="apeliido"><strong>Apellido: <div class="asterisco">*</div></strong></label><br>
<input type="text" name="apellido" required><br>
<label for="usuario"><strong>Usuario: <div class="asterisco">*</div></strong></label><br>
<input type="text" name="usuario" required><br>
<label for="contrasena1"><strong>Elija su contraseña: <div class="asterisco">*</div></strong></label><br>
<input type="password" name="contrasena1" required><br>
<br>
<input type="submit" name="enviar" value="Aceptar">
</form>
</fieldset>
</center>
</div>
</body>
ServletUserRegistry.java
package com.carrito.servlets;
import com.carrito.model.TipoUsuario;
import com.carrito.model.Usuario;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RegistroPublicadorServlet extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String action= request.getServletPath();
switch(action){
case "/registroPublicador.":
{
String nombre = request.getParameter("nombre").trim();
String apellido = request.getParameter("apellido").trim();
String password = request.getParameter("passowrd");
//implementación del método guardar
Usuario usuario = new Usuario();
usuario.setNombreUsuario(nombre);
usuario.setContraseñaUsuario(password);
TipoUsuario perfil = new TipoUsuario();
perfil.setNombrePerfil("Administrador");
usuario.setTipoUsuarioidTipoUsuario(perfil);
Чтобы получить/авторизовать пользователя, просто вызовите объект
HttpSession
из запроса:Подсказка: похоже, вы работаете с Netbeans, который создает метод
processRequest
какdoGet
дляdoPost
. Это плохая практика , и вы не должны ее использовать. ИспользуетсяdoGet
для предварительной обработки представления, аdoPost
используется для обработки действия. Я рекомендую вам действовать непосредственно по каждому методу.Если вы используете JavaEE, вы можете быть более склонны использовать JSF, который уже имеет зрелую обработку сеансов и в соответствии со стандартом предприятия Java является официальной реализацией веб-уровня.
Java enterprise 7 jsf 6 официальная информация
Информация о Java Enterprise Edition 7 JSF
Если вы используете jsf, вы можете использовать объект FacesContext, который обрабатывает все, что связано с сеансом, следующим образом.