Se alguém puder me dar uma ajuda aí pq meu servlet não consegue redirecionar a página, ou pq meu getParameter não consegue pegar a propriedade do meu form, vai ser de grande valia. obriagdo
Código do meu servlet :/*
* ServletLogar.java
*
* Created on 10 de Maio de 2007, 23:20
*/
package com.myapp.struts;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import java.sql.*;
import java.util.ArrayList;
import javax.sql.*;
import java.sql.DriverManager;
/**
*
* @author moises
* @version
*/
public class ServletLogar extends HttpServlet {
/** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/
public DataSource dataSource;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String nomeLogin = request.getParameter("nameLogin");
String senhaLogin = request.getParameter("senhaLogin");
Connection conn = null;
Statement stmt = null;
PreparedStatement prpStmt = null;
ResultSet rs = null;
StringBuffer resultString ;
try{
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection("jdbc:postgresql://localhost/geca", "postgres", "postgres");
String sqlQuery = "SELECT * FROM funcionario WHERE nome_login = ? ";
prpStmt = conn.prepareStatement(sqlQuery);
prpStmt.setString(1, nomeLogin);
rs = prpStmt.executeQuery();
NovoStrutsActionForm usuario = null;
if(rs.first()){
usuario = new NovoStrutsActionForm();
usuario.setCod_funcionario(rs.getInt("cod_funcionario"));
usuario.setNameLogin(rs.getString("nome_login"));
usuario.setSenha(rs.getString("senha"));
usuario.setTipoFuncionario(rs.getInt("cod_tipo"));
}
if(usuario == null || !usuario.getSenhaLogin().equals(senhaLogin)){
request.getSession().setAttribute("mensagem", "Login ou Senha incorretos !");
response.sendRedirect("/index.jsp");
} else {
request.getSession().setAttribute("usuario", usuario);
response.sendRedirect("/professor/professor.jsp");
}
} catch ( SQLException e ) {
System.err.println("SQL Exception occured while accessing the table" );
e.printStackTrace();
} catch (ClassNotFoundException e) {
System.err.println("Cannot find the database driver");
} finally {
try {
rs.close();
prpStmt.close();
stmt.close();
conn.close();
} catch ( Exception e ) {
e.printStackTrace();
}
}//finally
} //fim doGet
}
eu pus uma página de teste em vários lugares desse código... e nela tem um request.getParameter("nameLogin") e aparece sempre null
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
[b]<servlet>
<description> Ve no banco p/ logar </description>
<display-name> Logar </display-name>
<servlet-name>Logar</servlet-name>
<servlet-class>com.myapp.struts.ServletLogar</servlet-class>
</servlet>[/b]
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
[b]<servlet-mapping>
<servlet-name>Logar</servlet-name>
<url-pattern>/professor/professor.jsp</url-pattern>
</servlet-mapping>[/b]
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>
index.jsp
</welcome-file>
</welcome-file-list>
</web-app>
<html:form action="login" >
<table border="0" align="center">
<html:errors />
<thead>
<tr>
<td> <bean:message key="login.name" /> </td> <td> <html:text property="nameLogin" /> </td>
</tr>
</thead>
<tbody>
<tr>
<td> <bean:message key="login.senha" /> </td> <td> <html:password property="senhaLogin" /> </td>
</tr>
</tbody>
</table>
<html:submit value="Entrar" />
e por último meu Action Bean :
/*
* NovoStrutsActionForm.java
*
* Created on 20 de Março de 2007, 22:20
*/
package com.myapp.struts;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
/**
*
* @author moises
* @version
*/
public class NovoStrutsActionForm extends org.apache.struts.action.ActionForm {
private int cod_funcionario;
private String nameLogin;
private String senhaLogin;
private int tipoFuncionario;
public int getCod_funcionario() {
return cod_funcionario;
}
public void setCod_funcionario(int cod_funcionario) {
this.cod_funcionario = cod_funcionario;
}
/**
* @return
*/
public String getNameLogin() {
return nameLogin;
}
/**
* @param string
*/
public void setNameLogin(String nameLogin) {
this.nameLogin = nameLogin;
}
public String getSenhaLogin() {
return senhaLogin;
}
public void setSenha(String senhaLogin) {
this.senhaLogin = senhaLogin;
}
public int getTipoFuncionario() {
return tipoFuncionario;
}
public void setTipoFuncionario(int tipoFuncionario) {
this.tipoFuncionario = tipoFuncionario;
}
/**
*
*/
public NovoStrutsActionForm() {
super();
// TODO Auto-generated constructor stub
}
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
ActionErrors errorName = new ActionErrors();
if (getNameLogin() == null || getNameLogin().length() < 1) {
errorName.add("name", new ActionMessage("error.name.required"));
}
return errorName;
}
}