jsp filter的过滤功能很强大,任何客户端向服务器的请求都能被拦截下来,对于url的请求通常采用httpServletResponse.sendRedirect()方法将请求重定向到新的页面。如果有基于ajax的请求,这种请求重定向的方法就不能使用了,因为返回结果往往包含一小段数据。因此需要在filter中判断客户端的请求方式,并根据不同的请求方式作出不同的处理。
if (flag) { //flag:是否通过过滤
filterChain.doFilter(servletRequest, servletResponse);
} else {
String requestType =(String) ((HttpServletRequest)servletRequest).getHeader("X-Requested-With");
if (requestType != null && requestType.equals("XMLHttpRequest")) {
try{
JSONObject json = new JSONObject();
json.put("returncode", "-1");
PrintWriter pw = servletResponse.getWriter();
pw.print(json.toString());
pw.close();
} catch (org.codehaus.jettison.json.JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
HttpServletResponse httpServletResponse = (HttpServletResponse)servletResponse;
httpServletResponse.sendRedirect("/cardIssue/login.jsp");
}
}
分享到:
相关推荐
在Java Web环境中,过滤器(Filter)是Servlet规范的一部分,它允许我们在请求到达目标Servlet或JSP之前对请求进行处理,以及在响应返回给客户端之前对响应进行修改。 首先,我们需要理解为什么会出现中文乱码。这...
在Web开发中,Ajax技术被广泛应用于实现异步数据交互,而Filter则是一种用于过滤请求和响应的组件。当两者结合在一起工作时,可以实现诸如防止SQL注入等安全措施。本文将详细介绍一个案例,说明如何在使用Ajax进行...
1. **前端**:在JSP文件中,使用JavaScript创建一个Ajax请求,设置请求方法(GET或POST)、URL(指向FileAction)、数据(如文件扩展名)以及成功和失败回调函数。 2. **后端**:FileAction接收到请求后,解析请求...
假设我们有一个名为"ajaxdemo.jsp"的JSP页面,它负责返回JSON数据。在客户端,使用jQuery发起一个JSONP请求: ```javascript $.ajax({ type: 'GET', url: 'http://yourserver.com/ajaxdemo.jsp', dataType: '...
要解决JQuery发送ajax请求时出现的中文乱码问题,需要从两个方面着手:确保Web项目的web.xml配置文件中设置了正确的字符编码过滤器,以及在JSP页面中设置了正确的字符编码,并使用POST方法发送ajax请求。通过这些...
该系统采用B/S(Browser/Server)架构,以JSP(JavaServer Pages)作为动态页面技术,结合Servlet、Ajax、JavaScript、jQuery和Filter等技术,提供高效、便捷的招聘与求职服务。 **Servlet技术**是Java服务器端的...
本文将详细介绍如何通过过滤器(Filter)来解决JSP页面传值时的乱码过滤问题。 首先,我们需要了解问题的背景。在JSP中,当用户通过表单提交数据时,如果服务器端没有正确地处理字符编码,就可能出现乱码。这是因为...
可以使用Filter实现基于URL的权限过滤。 ### 7. 商品展示与搜索 - **商品分类**: 设计合理的商品分类结构,方便用户查找商品。可以使用树形结构表示类别,并通过Ajax实现动态加载。 - **商品搜索**: 提供关键字...
在典型的Java Web应用架构中,客户端通过HTTP协议发送请求到服务器,Servlet接收请求,处理数据,然后将结果返回给客户端。 2、**什么是Servlet?** Servlet 是 Java 类,遵循Servlet API 规范,用于处理客户端请求...
在Java Web开发中,Servlets主要负责处理业务逻辑,接收请求,处理数据,并将结果返回给客户端。 JSP,另一方面,是一种视图层技术,它允许开发人员将HTML、CSS、JavaScript与Java代码混合编写,以生成动态内容。...
3. **后端逻辑处理**:在这个示例中,假设有一个`RegisterAction`类处理Ajax请求,并返回JSON格式的数据。 4. **Gson转换**:在后端逻辑处理完成后,使用Gson将Java对象转换成JSON字符串,并返回给前端。 #### 五...
2. **Result**: 结果页面(Result)是Action执行后返回的页面,可以是JSP、FreeMarker模板或者其他类型的视图。 3. **Interceptor(拦截器)**: 拦截器是Struts中强大的功能,它可以在Action执行前后插入额外的逻辑...
2. **后端Servlet实现**:后端Servlet负责接收来自前端的请求,并对输入的字符串进行敏感词过滤。 ```java public class WordFilter extends HttpServletRequestWrapper { public WordFilter(HttpServletRequest ...
正确的配置是将`<filter-mapping>`元素的`<url-pattern>`设置为`/*`,这样过滤器就会应用于所有URL。例如: ```xml <filter> <filter-name>myFilter</filter-name> <filter-class>...
同时,可以使用过滤器(Filter)实现URL级别的访问控制,确保只有经过身份验证的用户才能访问特定的统计信息。 **4. 统计指标与计算** 网站统计系统的核心在于收集和计算各类指标。这些指标可能包括但不限于:总...
// 返回的结果名称,对应配置文件中的result } } ``` 3. **JSP页面**:在上述例子中,`success.jsp`是Action执行成功后显示的页面。Struts2允许在JSP页面中使用OGNL(Object-Graph Navigation Language)表达式...
2. **过滤器链的改进**:增加了对多个Filter映射到同一个URL模式的支持,允许更灵活的过滤器配置。 3. **HTTP方法覆盖**:允许Servlet覆盖默认处理HTTP请求的方法,比如GET、POST等。 4. **异步处理**:引入了异步...
Filter是Java Servlet API中的一部分,它允许我们在请求到达目标Servlet或JSP之前对其进行拦截和处理,也可以在响应离开服务器之前进行操作。在用户登录验证场景中,Filter通常用来检查请求是否包含有效的登录信息,...