I was trying to implement a login filter in my web app with jsf 2, following this guide:
after I compiled my filter and added the .class in "web-inf/classes" (as the guide says) the filter worked, but i put the wrong url to redirect to the login page so i deleted the filter.class from the folder (web-inf/classes) and tried to compile the project again , but it failed, and since then im getting "package javax.servlet does not exist"
it is weird because before it was working and i have javax.servlet in my pom.xml.. i tried cleaning the project, but nothing.
this is my filter class:
package Bean;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Created with IntelliJ IDEA.
* User: rodrigo
* Date: 28-04-13
* Time: 06:54 AM
* To change this template use File | Settings | File Templates.
*/
@WebFilter("/Contenido/*")
public class filtro implements Filter {
@Override
public void init(FilterConfig config) throws ServletException {
// If you have any in web.xml, then you could get them
// here by config.getInitParameter("name") and assign it as field.
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws ServletException, IOException {
HttpServletRequest req = (HttpServletRequest) request;
LoginBean user = (LoginBean) req.getSession().getAttribute("user");
if (user != null && user.isLoggedIn()) {
// User is logged in, so just continue request.
chain.doFilter(request, response);
} else {
// User is not logged in, so redirect to index.
HttpServletResponse res = (HttpServletResponse) response;
res.sendRedirect(req.getContextPath() + "/Contenido/Login.xhtml");
}
}
@Override
public void destroy() {
// If you have assigned any expensive resources as field of
// this Filter class, then you could clean/close them here.
}
}
this is the error:
\Users\rodrigo\IdeaProjects\Frutemu\src\main\java\Bean\filtro.java:[5,20] error: package javax.servlet does not exist
[ERROR] \Users\rodrigo\IdeaProjects\Frutemu\src\main\java\Bean\filtro.java:[6,20] error: package javax.servlet does not exist
[ERROR] \Users\rodrigo\IdeaProjects\Frutemu\src\main\java\Bean\filtro.java:[7,20] error: package javax.servlet does not exist
[ERROR] \Users\rodrigo\IdeaProjects\Frutemu\src\main\java\Bean\filtro.java:[8,20] error: package javax.servlet does not exist
[ERROR] \Users\rodrigo\IdeaProjects\Frutemu\src\main\java\Bean\filtro.java:[9,20] error: package javax.servlet does not exist
[ERROR] \Users\rodrigo\IdeaProjects\Frutemu\src\main\java\Bean\filtro.java:[10,20] error: package javax.servlet does not exist
[ERROR] \Users\rodrigo\IdeaProjects\Frutemu\src\main\java\Bean\filtro.java:[11,31] error: package javax.servlet.annotation does not exist
my pom.xml:
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4.0.0
Frutemu
Frutemu
war
1.0-SNAPSHOT
Frutemu Maven Webapp
http://maven.apache.org
prime-repo
Prime Repo
http://repository.primefaces.org
junit
junit
3.8.1
test
javax.ejb
ejb-api
3.0
provided
org.primefaces
primefaces
3.5
org.primefaces.themes
all-themes
1.0.9
javax.faces
jsf-api
2.0
compile
com.sun.faces
jsf-impl
2.0.2-b10
compile
javax.servlet
jstl
1.2
mysql
mysql-connector-java
5.1.21
org.glassfish.web
el-impl
2.2.1-b04
provided
org.apache.openjpa
openjpa-all
2.2.0
com.microsoft.sqlserver
sqljdbc4
4.0
net.sf.jasperreports
jasperreports
4.1.2
Frutemu
org.apache.openjpa
openjpa-maven-plugin
2.2.0
**/model/*.class
true
true
enhancer
process-classes
enhance
org.apache.tomcat.maven
tomcat7-maven-plugin
2.0
http://127.0.0.1:8080/manager/text
TomcatServer
/Frutemu
org.codehaus.mojo
jasperreports-maven-plugin
compile-reports
net.sf.jasperreports
jasperreports
4.1.2
解决方案
The javax.servlet dependency is missing in your pom.xml. Add the following to the dependencies-Node:
javax.servlet
javax.servlet-api
3.0.1
provided