很简单的一个功能,如果用户没有登录之前访问其他页面时转到登录页面.用过滤器来实现.
一、在web-xml 中添加:
<filter><!-- 是否登录用户的验证filter -->
<filter-name>author</filter-name>
<filter-class>lw.filter.AuthorFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/grsz/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/khcx/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/khpf/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/tjbb/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/tjjs/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/main.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/top.jsp</url-pattern>
</filter-mapping>
实现类的代码如下:
package lw.filter;
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.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class AuthorFilter implements Filter {
private String strRedirect = "";
protected FilterConfig filterConfig;
public void destroy() {
// TODO Auto-generated method stub
this.filterConfig = null;
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest hreq = (HttpServletRequest) req;
HttpServletResponse hres = (HttpServletResponse) res;
HttpSession session = hreq.getSession(true);
String isLogin = "";
strRedirect = "http://" + hreq.getServerName() + ":" + hreq.getServerPort() +hreq.getContextPath()+ "/login.jsp";
System.out.println("web URL 路径:"+strRedirect);
try {
if (null != session.getAttribute("isLogin")) {
isLogin = session.getAttribute("isLogin").toString();
}
if (isLogin.equals("true")) {
System.out.println("验证通过");
chain.doFilter(req, res);
} else {
hres.sendRedirect(strRedirect);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
this.filterConfig = arg0;
}
}
获得login路径的过程:
"http://" + hreq.getServerName() + ":" + hreq.getServerPort() +hreq.getContextPath()+ "/login.jsp";
分享到:
相关推荐
总的来说,`JSP`中的过滤器是一个强大的工具,它能够帮助我们处理请求和响应,实现跨页面的通用功能,提升应用程序的安全性和用户体验。在实际开发中,熟练掌握过滤器的使用,将大大提升我们的开发效率和代码质量。
然而,为了保证应用程序的安全性和稳定性,通常需要对用户输入的数据进行过滤和验证,这就是JSP字符过滤器的作用。字符过滤器主要用于防止恶意用户通过提交特殊字符或者执行SQL注入、跨站脚本攻击(XSS)等行为,保护...
在给定的标题“JavaWeb页面过滤器之编码过滤”和描述中,我们可以深入探讨JavaWeb中的编码过滤器,以及如何在MyEclipse 8.5环境下开发和应用这样的过滤器。这个过滤器不仅适用于JSP页面,也适用于Servlet和HTML等Web...
综上所述,使用servlet+jsp实现过滤器,可以有效地防止未登录用户访问受保护页面。开发者可以灵活地定义过滤器的行为,并且通过配置文件将过滤器与具体的URL模式关联起来,实现复杂的权限控制逻辑。
标题中的“带过滤器的登录系统jsp+myeclipse+mysql”表明这是一个使用Java服务器页面(JSP)、MyEclipse集成开发环境以及MySQL数据库构建的登录系统,其中整合了过滤器(Filter)技术。这样的系统通常用于实现用户...
在这个过滤器中,我们首先将请求转换为`HttpServletRequest`对象,然后调用`setCharacterEncoding()`方法设定字符编码为目标编码(如GBK或UTF-8),最后将请求传递给下一个过滤器或目标Servlet。 为了使过滤器生效...
jsp过滤器(Filter)是一种特殊的jsp组件,用于对jsp页面的请求和响应进行过滤和处理。jsp过滤器可以实现对请求和响应的修改、重定向、身份验证等功能。在我们的例子中,我们使用jsp过滤器来实现编码设置,以解决...
定义过滤器的`<filter>`标签,指定过滤器类全名,并设置过滤器的别名。然后,使用`<filter-mapping>`标签定义需要拦截的URL模式,如所有JSP页面或其他特定资源。 ```xml <filter-name>UserAuthorizationFilter ...
项目名为`filter`,我们创建一个简单的登录过滤器,确保用户在访问受保护的JSP页面前已登录。首先,创建过滤器类`LoginFilter`: ```java import javax.servlet.*; import java.io.IOException; public class ...
- 修改`web.xml`配置文件:为过滤器添加配置,指定过滤范围和执行顺序,例如设定URL模式来匹配所有JSP页面。 - 实现`doFilter()`方法:在过滤器的`doFilter()`方法中,可以设置请求和响应的编码方式。例如,使用`...
综上所述,"springboot+jsp 使用过滤器.do"这个项目展示了如何在Spring Boot应用中集成JSP页面,并通过Maven管理项目,同时利用过滤器实现特定的HTTP请求处理逻辑。通过学习这个示例,开发者可以更好地理解Spring ...
JSP中文乱码过滤器通过拦截请求和响应,统一设置字符编码,解决了JSP页面可能出现的乱码问题。理解其工作原理并正确配置,可以帮助开发者在项目中轻松应对中文乱码,提高用户体验。在实际开发中,我们还应注意其他...
在这个项目中,“jsp+servlet登录验证过滤器”涉及了用户登录验证的过程,以及使用过滤器(Filter)来实现这一功能。下面将详细介绍这个主题中的相关知识点。 1. **JSP**:JSP是一种服务器端的技术,允许开发者在...
它们在请求被传递到目标资源(如JSP页面)之前和之后进行拦截,可以用来执行诸如字符编码转换、权限检查等预处理和后处理操作。 在标题“jsp过滤器(编码)”中,我们关注的是如何使用过滤器来处理编码问题。在`web...
总之,解决JavaWeb中的乱码问题需要从多个层面进行考虑:设置过滤器统一请求和响应的编码,确保JSP页面的编码正确,以及在处理文件时注意文件内容的编码。通过这些方式,我们可以有效防止和解决乱码问题,提高应用...
通过上述步骤,我们可以有效地解决JSP页面中可能出现的中文乱码问题。过滤器作为拦截器之一,在处理请求之前对数据进行预处理,能够有效解决乱码问题,并且使得后续的业务逻辑更加简洁高效。此外,还可以根据实际...
在Java服务器页面(JSP)开发中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求被处理之前或之后执行某些操作,比如字符编码转换、权限验证、日志记录等。本话题将深入探讨如何在`web.xml`配置文件中...
最后,确保在JSP页面的`<head>`部分设置`contentType`的`charset`值与`web.xml`中的设置保持一致,例如: ```jsp ; charset=GBK" pageEncoding="GBK"%> ``` 通过以上四个步骤,你可以有效地解决JSP中文乱码...
5. **拦截与重定向**:如果用户没有足够的权限,过滤器可能会拦截请求,并重定向到登录页面或者显示一个错误消息。 6. **实例分析**:为了便于理解,文章可能提供了一个具体的案例,如“SmileOa”项目,展示如何在...
通过servlet过滤器来解决request的编码的设置。这个方法不需要改动原来的代码,比较好。现成的写好的过滤器代码,只要把它编译一下就可以用了.