狂神说 javaweb 27集:Filter 实现权限拦截
用户登录之后才能进入主页!用户注销后就不能进入主页了!
-
用户登录之后,向Sesison中放入用户的数据
-
进入主页的时候要判断用户是否已经登录;要求:在过滤器中实现!
login.jsp
<%
LoginServelt.java
public class LoginServelt extends HttpServlet {
error.jsp
<%
success.jsp
<%
LogoutServlet.java
public class LogoutServlet extends HttpServlet {
SysFilter.java
public class SysFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
/* if (req.getSession( ).setAttribute( Constant.USER_SESSION).level ==VIP1){
response.sendRedirect( "/vip1.jsp" );
}
if (req.getSession( ).setAttribute( Constant.USER_SESSION).level ==VIP2){
response.sendRedirect( "/vip2.jsp" );
}
if (req.getSession( ).setAttribute( Constant.USER_SESSION).level ==VIP3){
response.sendRedirect( "/vip3.jsp" );
}*/
//ServletRequest HttpServletRequest
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
Object user_session = request.getSession().getAttribute( Constant.USER_SESSION);
if (request.getSession().getAttribute( Constant.USER_SESSION) == null){
response.sendRedirect( "/error.jsp" );
}
chain.doFilter( request,response );
}
public void destroy() {
}
}
xml
<servlet>
<servlet-name>LoginServelt</servlet-name>
<servlet-class>com.study.servlet.LoginServelt</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServelt</servlet-name>
<url-pattern>/servlet/login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>LogoutServlet</servlet-name>
<servlet-class>com.study.servlet.LogoutServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LogoutServlet</servlet-name>
<url-pattern>/servlet/logout</url-pattern>
</servlet-mapping>
<filter>
<filter-name>SysFilter</filter-name>
<filter-class>com.study.filter.SysFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SysFilter</filter-name>
<!--只要是/servlet的任何请求,会经过这个过滤器,都会被过滤-->
<url-pattern>/sys/*</url-pattern>
</filter-mapping>