『壹』 java web后台实现多个条件的过滤(多个条件的交集)
那你就多做几个对象,如每个商品为一个对象,把所有的信息放进去,之版后放进一个list里面,循环条件权判断,符合条件的输出对象,用get方法获取就行了.这个说的就比较直白了。
复杂的你也可以放到group里面,之后在这个group对象里面放上商品对象。思路就是这样的,这个实现不是很难吧
『贰』 java过滤器怎么不过滤一个页面里包含的多个请求
abstract public class FilterPerRequest implements Filter {
private static final Boolean FILTERED = true;
private ThreadLocal<Boolean> statusLocal = new ThreadLocal<Boolean>();
@Override
final public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
if (hasNotFiltering()) {
doFilterAndDispatchRequest(req, resp, chain);
return;
}
//dispatch request only
chain.doFilter(req, resp);
}
private boolean hasNotFiltering() {
Boolean status = statusLocal.get();
if (status == null) {
return true;
}
return false;
}
private void doFilterAndDispatchRequest(ServletRequest req,
ServletResponse resp, FilterChain chain) throws IOException,
ServletException {
try {
doFilterPerRequest(req, resp);
setFiltered();
chain.doFilter(req, resp);
} finally {
cleanFilterStatus();
}
}
abstract protected void doFilterPerRequest(ServletRequest req,
ServletResponse resp);
private void setFiltered() {
statusLocal.set(FILTERED);
}
private void cleanFilterStatus() {
statusLocal.set(null);
}
}
那要就情况而定了。。。
如果是request范围内的话,就可以使用上面的过滤器。
如果是session范围内的话,就需要在session内存储一个标志变量,方式和request差不多。
如果是限制用户操作的话,那就必须将用户操作持久化。
由于你的问题不明确,我也不好多说...
『叁』 一个java项目可以放几个过滤器
可以放置很多个过滤器,写在web.xml里就可以了。不过,具体放几个要根据需要来设置,要知道,多放一个就要降低一点效率哦。
『肆』 java两多个filter的问题
过滤器也是面向切面的思维,url进入的时候一般只会进入过滤器一次的,是不内是你过滤器里面或是容web.xml配置有问题,检查看看。如果过滤的条件通过了,就直接
filterChain.doFilter(request, response);
return;
如果过滤条件没通过,就直接指向一个页面,然后return,类似于:
httpResponse.sendRedirect(req.getContextPath()+ "/index.html");
return;
希望能帮助到你。
『伍』 java语言实现满足多条件匹配简单过滤输出问题
package;
importjava.io.File;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.util.Arrays;
importjava.util.LinkedList;
publicclassCombin
{
privatestaticStringline=System.getProperty("line.separator");
privatestaticLinkedList<String[]>recursionSub(LinkedList<String[]>list,intcount,String[]array,intind,
intstart,int...indexs)
{
start++;
if(start>count-1)
{
returnnull;
}
if(start==0)
{
indexs=newint[array.length];
}
for(indexs[start]=ind;indexs[start]<array.length;indexs[start]++)
{
recursionSub(list,count,array,indexs[start]+1,start,indexs);
if(start==count-1)
{
String[]temp=newString[count];
for(inti=count-1;i>=0;i--)
{
temp[start-i]=array[indexs[start-i]];
}
booleanflag=true;
L:for(inti=0;i<temp.length;i++)
{
for(intj=i+1;j<temp.length;j++)
{
if(temp[i]==temp[j])
{
flag=false;
breakL;
}
}
}
if(flag)
{
list.add(temp);
}
}
}
returnlist;
}
privatestaticvoidfilter(LinkedList<String[]>list)throwsIOException
{
Filefile=newFile("c:/116.txt");
FileWriterfw=newFileWriter(file);
for(String[]strings:list)
{
intcount1=0,count2=0,count3=0;
Stringtemp=Arrays.toString(strings).replaceAll("[\[\]\s]","");
if(temp.contains("01"))
{
count1++;
count3++;
}
if(temp.contains("02"))
{
count1++;
count2++;
}
if(temp.contains("03"))
{
count1++;
}
if(temp.contains("06"))
{
count2++;
count3++;
}
if(temp.contains("08"))
{
count2++;
count3++;
}
if(temp.contains("09"))
{
count2++;
count3++;
}
if(temp.contains("07"))
{
count3++;
}
if(temp.contains("10"))
{
count3++;
}
if(temp.contains("11"))
{
count3++;
}
if(count1>=1&&count1<=2&&count2>=1&&count2<=3&&count3>=0&&count3<=2)
{
fw.write(temp+line);
}
}
fw.flush();
fw.close();
}
publicstaticvoidmain(String[]args)throwsIOException
{
String[]A={"01","02","03","04","05","06","07","08","09","10","11"};
LinkedList<String[]>list=newLinkedList<String[]>();
recursionSub(list,6,A,0,-1);
//假定从1-11这11个数字中任选6个全组合输出(每行输出6个不相同数字,并且从小到大排列)
for(String[]strings:list)
{
Stringtemp=Arrays.toString(strings).replaceAll("[\[\]\s]","");
System.out.println(temp);
}
//将第一问得到数据过滤,并且同时满足下面3条条件就输出,输出结果用"116.txt"保存在C盘
filter(list);
}
}
『陆』 Java两个List的过滤问题
packagetest;
importjava.util.ArrayList;
importjava.util.List;
publicclassA1
{
publicstaticvoidmain(String[]args)
{
<String>list1=newArrayList<String>();
list1.add("JSON--B--TEST");
list1.add("JSON--A--TEST");//deletethisitem
list1.add("JSON--C--TEST");
List<String>list2=newArrayList<String>();
list2.add("B");
list2.add("C");
Stringtemp=list2.toString().replaceAll("[\[\]\s]","").replaceAll("\,","|");
System.out.println(temp);
Stringreg="^.*("+temp+").*$";
for(inti=0;i<list1.size();i++)
{
if(!list1.get(i).matches(reg))
{
list1.remove(i);
}
}
System.out.println(list1.toString());
}
}
『柒』 java 在注册时候 添加过滤 标点符号 注册 只有2个属性 用户名和密码
用过滤器过滤用户请求。。
这样写还不如在JSP页面中用js脚本来验证方便些。
楼主,是否必须这样写?
『捌』 求教java filter过滤器过滤多个路径
你可以吧除了index.jsp的所有jsp文件新建一个文件夹放进去 比如myJsp文件夹
然后过滤那个路径/myJsp/*
『玖』 Java 我想写一个比较的条件做同时过滤输出,剩下部分请往下看:
看完你的描述已然懵逼,再整理下思路,重新描述下。你能说清楚规则,程序就可回以写。
6个数为一行的txt中如答果有5个数为一行的txt一行中的5个数,则将6个数为一行的txt中有5个数为一行的txt 一行中的5个数的数据输出到新的txt中。
『拾』 java正则表达式 两个条件怎么写本来一个过滤条件的时候是可以的,加多了另一个条件就不行了
^[yc|gz].*