/ / Servlet филтрите не работят правилно - java, servlets, servlet-филтри, web.xml

Servlet филтрите не работят правилно - java, servlets, servlet-filters, web.xml

Имам вход.java servlet, откъдето след като вземем потребителското име и паролата, ако е правилно, ние сме насочени към welcome.java servlet.A филтър с име loginfilter.java проверява потребителското име и паролата. Ако потребителското име и паролата не са верни, имам сървър, който се нарича errorpage.java.

Моят филтър не работи, които аз не знам защо. Мисля, че кодът ми в web.xml и филтрите са правилни. Моля, помогнете ми да разбера грешката.

Ето кода за моя филтър

package filters;


import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class loginfilter implements Filter{

@Override
public void init(FilterConfig filterConfig) throws ServletException {
throw new UnsupportedOperationException("Not supported yet.");
}

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain
chain throws IOException, ServletException     {
String u=request.getParameter("username");
String p=request.getParameter("password");
String user="akshay";
String pass="akshay";
if (u.equals(user) && p.equals(pass)){
chain.doFilter(request,response);
}
}

@Override
public void destroy() {
throw new UnsupportedOperationException("Not supported yet.");
}

private RequestDispatcher getReuestDispatcher(String loginpage) {
throw new UnsupportedOperationException("Not supported yet.");
}

}

Ето кода за web.xml:

<?xml version="1.0" encoding="utf-8"?>
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>login</servlet-class>
</servlet>
<servlet>
<servlet-name>welcomepage</servlet-name>
<servlet-class>welcomepage</servlet-class>
</servlet>
<servlet>
<servlet-name>errorpage</servlet-name>
<servlet-class>errorpage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<error-page>
<error-code>404</error-code>
<location>/errorpage</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/errorpage</location>
</error-page>
<error-page>
<exception-type>javax.servlet.ServletException</exception-type>
<location>/errorpage</location>
</error-page>
<error-page>
<exception-type>javax.io.IOException</exception-type>
<location>/errorpage</location>
</error-page>
<filter>
<filter-name>loginfilter</filter-name>
<filter-class>filters.loginfilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginfilter</filter-name>
<servlet-name>welcomepage</servlet-name>
</filter-mapping>
<servlet-mapping>
<servlet-name>welcomepage</servlet-name>
<url-pattern>/welcomepage</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>errorpage</servlet-name>
<url-pattern>/errorpage</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
</web-app>

Отговори:

3 за отговор № 1

Премахване на линиите с:

throw new UnsupportedOperationException("Not supported yet.");

Тези линии предотвратяват инициализацията на филтъра, а също и спират приложението.

Сървърът извиква init(FilterConfig) веднъж, за да подготвите филтъра за обслужване, след това повиквания doFilter() произволен брой заявки, специално зададени за използване на филтъра. Най- FilterConfig Интерфейсът разполага с методи за извличане на името на филтъра, неговите първоначални параметри и активния контекст на сървлетите destroy() , за да покаже, че филтърът се извежда от експлоатация.

http://www.servlets.com/soapbox/filters.html


1 за отговор № 2

Изхвърляне на изключение в init Методът не е валиден
Той ще спре инициализирането на филтъра.
Премахнете под линията

  throw new UnsupportedOperationException("Not supported yet.");