У меня есть в процессе веб сайт с Java США, но мне остается манипулировать login и реестром.
Я хотел бы, чтобы они дали мне путеводитель, из как сделать это посредством Servlets. Например, что .jsp registro.jsp
пошлите посредством одного <form></form>
к одному Servlet
названный RegistroServlet
. Эта часть реестра уже я считаю ее почти властвовавшей, НО я хотел бы манипулировать сеансом. Если он administrador
, что система обнаружила это у меня, и если его один usuario registrado
также. Так что, в зависимости от которого тип профиля имел, я redireccione в соответствующую страницу
Не если он подал информацию, но у меня есть база данных с таблицей usuario
и другая TipoUsuario
со связью @ManyToOne. Он верит в нее для того, чтобы, если он создается, пользователь нуждался в типе пользователя также. Как я делаю, чтобы манипулировать этим сеансом? Я новый в Java США, видел видео, но мне удается не показать ни одного тому, в чем я нуждаюсь, я благодарен за любую помощь заранее.
PD: уже в таблице TipoUsuario
у меня есть два поля: Пользователь и Администратор
EDIT
registroUsuario.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>
RegistroUsuarioServlet.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);
Чтобы получать / инициализировать ее sesiГіn от пользователя, достаточно называть объект HttpSession
с request:
HttpSession session = request.getSession();
//colocar variables en la sesión
session.setAttribute("nombre variable de sesión", <objeto que quieres almacenar en sesión>);
//obtener variables de la sesión
//guarda todo como Object, el casteo es obligatorio
String nombre = (String)session.getAttribute("nombre");
RecomendaciГіn: Как кажется, estГЎs работая с Netbeans, который создает один mГ©todo processRequest
для обоих, doGet
и doPost
. Это плохая одна prГЎctica и не deberГ-схватывай использовать это. doGet
стоит для pre обрабатывать вид, в то время как doPost
он служит для того, чтобы обработать ее acciГіn. Я рекомендую тебе действовать прямо на каждый mГ©todo.
Если он использует JavaEE, он мог бы склоняться тому, чтобы использовать лучше JSF, у которого уже есть зрелое управление сеансов и согласно стандарту java enterprise это осуществление Веб официального слоя.
официальная Информация java enterprise 7 jsf 6
Информация java enterprise edition 7 jsf
, Если он использует jsf, тогда может использовать объект, который называются FacesContext, который является тем, кто манипулирует всем связанным с сеансом следующего способа
FacesContext.getCurrentInstance().getExternalContext().getSessionMap()