Problema com Servlet!

3 respostas
THG_Carvalho

Pessoal eu estou com um pequeno problema, devo está fazendo alguma besteira, pois estou começando.
Eu tenho essa classe Usuario

public class Usuario {

	public enum User {
		usuario01, usuario02, usuario03, usuario04
	}

	User nome;

Estou usando somente um servlet que tem isso no método doPost

if (strServletPath.equals("/index")) {
			outputHeader(request, pwOut);
			outputBody(pwOut);
			index(request, response, pwOut);
			setUser(request, response);
			mData(request, response, pwOut);
			outputFooter(request, response, pwOut, NONE);
			return;
		}
public void index(HttpServletRequest request, HttpServletResponse response,
			PrintWriter locOut) {

		locOut.println("<form name='senha' method='POST' action='"
				+ response.encodeURL(request.getContextPath()
						+ "/usuario/login") + "'>");

		locOut.println("<h3>Selecione de Usuário</h3>");
		locOut.println("<p>");
		locOut.println("Usuário:");
		locOut.println("<select name='user' size='1'>");
		locOut.println("<option>usuário 01");
		locOut.println("<option>usuário 02");
		locOut.println("<option>usuário 03");
		locOut.println("<option>usuário 04");
		locOut.println("</select>");
		locOut.println("<br><br><br><br>");

		// Botão Entrar
		locOut.println("<table>");
		locOut.println("<td colspan='2' align='rigth'>");
		locOut.println("<input type='submit' name='b_usuario' value='Entrar'>");
		locOut.println("</tr>");
		locOut.println("</table>");
		locOut.println("</form>");

	}

Como faço para pegar o usuario escolhido e setar na minha classe Usuario?

Tentei isso, mas a pagina fica em branco quando eu uso esse método setUser()

public void setUser(HttpServletRequest request, HttpServletResponse response) {
		// Enum mome do usuario
		String u = request.getParameter("user");
		if (u.equalsIgnoreCase("usuário 01"))
			usuario.nome = Usuario.User.usuario01;
		if (u.equalsIgnoreCase("usuário 02"))
			usuario.nome = Usuario.User.usuario02;
		if (u.equalsIgnoreCase("usuário 03"))
			usuario.nome = Usuario.User.usuario03;
		if (u.equalsIgnoreCase("usuário 04"))
			usuario.nome = Usuario.User.usuario04;
	}

O erro está nesse método acima setUser(), pois quando eu não uso ele dar tudo certo,
mas sem o nome do usuário, e quando eu uso aparece somente a pagina em branco.
:?:

3 Respostas

Vini_Fernandes

Cara, recomendo voce fazer o seguinte na sua enum:

public enum User {  
	//como os enum sao constantes, por convensao definiremos em caixa alta
	USUARIO_01(1), 
	USUARIO_02(2), 
	USUARIO_03(3), 
	USUARIO_04(4);
	private final int valor;
	
	private User(int valor){
		this.valor = valor;
	}	
	
	public int getValor(){
		return this.valor;
	}
	
	public static User getUser(int valor){
		User user = null;
		if(valor == 1){
			user = USUARIO_01;
		}
		else if(valor == 2){
			user = USUARIO_02;
		}
		return user;	
	}
}

Alem disso, faça o seguinte:

//if (u.equalsIgnoreCase("usuário 01"))  
//        usuario.nome = Usuario.User.usuario01;  
if (u.equalsIgnoreCase("usuário 01"))  
        usuario.nome = Usuario.User.usuario01.toString();
THG_Carvalho

Valeu, foi de grande ajuda!
Melhorei bastante o meu código.

Vini_Fernandes

Assim que voce estiver satisfeito com as dicas voce pode encerrar o topico colocando [RESOLVIDO] no final do campo Assunto.

abracao

Criado 23 de outubro de 2009
Ultima resposta 27 de out. de 2009
Respostas 3
Participantes 2