『壹』 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].*