日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

jsp中未登录用户也可以浏览页面的功能实现代码

發(fā)布時(shí)間:2025/4/5 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jsp中未登录用户也可以浏览页面的功能实现代码 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
jsp中未登錄用戶也可以瀏覽頁(yè)面的功能實(shí)現(xiàn)代碼

<%!
??????????? ?? int count=0;
??????????? ? %>
???????????????? <%
????????????????
???????????????? User userr= (User) session.getAttribute("user");
????????????????
???????????????? if(userr==null&&count==0){
???????????????? ?count++;
???????????????? ?this.getServletConfig().getServletContext().getRequestDispatcher("/servlet/FindBoardList").forward(request,response);
????????????????
???????????????? }
???????????????? else{
???????????????? count--;
??????????? ?ArrayList<Index>boardList=(ArrayList<Index>)session.getAttribute("boardListIndex");
??????????? ?BoardDaoImpl boardDao=new BoardDaoImpl();
??????????? ?for(int i=0;i<boardList.size();i++){
??????????? ?
??????????? ?
??????????? ?if(boardDao.isParentBoard(boardList.get(i).getBoardName())){%>
??????????? ?
??????????? ?
??????????? ??? ?
??????????? ?<tr class="tr3">
??????????????? <td colspan="4">
??????????????????? <%=boardList.get(i).getBoardName() %>
??????????????? </td>
??????????? </tr>
??????????? ?
??????????? ?<% } else
??????????? ??if( boardList.get(i).getBoardName().equals(boardList.get(i-1).getBoardName())){
??????????? ?? continue;
??????????? ??
??????????? ??}else
??????????? ?
??????????? ?{%>
??????????? ? <tr class="tr3">
??????????????? <td width="5%">
??????????????????? &nbsp;
??????????????? </td>
??????????????? <th align="left">
??????????????????? <img src="/bbs/image/board.gif">
??????????????????? <a href="/bbs/servlet/FindTopicList?boardid=<%=boardList.get(i).getBoardid() %>"><%=boardList.get(i).getBoardName() %></a>
??????????????? </th>
??????????????? <td align="center">
??????????????????? <%=boardList.get(i).getReply_count() %>
??????????????? </td>
??????????????? <th>
??????????????????? <span><a href="/bbs/servlet/FindReplyList?topicid=<%=boardList.get(i).getTopicid() %>&title=<%=boardList.get(i).getTitle() %>&boardname=<%=boardList.get(i).getBoardName() %>"><%=boardList.get(i).getTitle() %></a></span>
??????????????????? <br />
??????????????????? <span><%=boardList.get(i).getUsername() %></span> <span class="gray">[ <%=boardList.get(i).getPublishTime() %>]</span>
??????????????? </th>
??????????? </tr>
??????????? ?
??????????? ?
??????????? ?
??????????? ?<% }%>
????????
??????????? ?
??????????? ?
??????????? ?
??????????? ?
??????????? ?<%
??????????? ?
??????????? ?}
???????????
???????????? %>
???????????? <%} %>

?

最關(guān)鍵的地方是使用成員變量,count實(shí)現(xiàn)第一次登陸的登陸控制,當(dāng)?shù)谝淮蔚顷懯莡ser為空并且count=0;獲得index頁(yè)面的實(shí)體對(duì)象,實(shí)現(xiàn)循環(huán)有servlet再次跳轉(zhuǎn)到當(dāng)前頁(yè)面,但是count的值為1執(zhí)行else部分在else部分中首先將count的值置為0再次回歸到0這樣在其他客戶端未登錄情況下瀏覽時(shí)user為null并且成員變量count==0這樣就可以再次獲得index.jsp頁(yè)面的實(shí)體對(duì)象,保證實(shí)體對(duì)象不為空。實(shí)現(xiàn)多客戶端未登錄情況下可以同時(shí)瀏覽頁(yè)面。

這種在僅為判斷一次的條件下使用的方法用在if else中時(shí)很常用的方法,一種自處理方式,對(duì)自己對(duì)共有屬性的修改在判斷完成后自動(dòng)消除掉這種影響,如同wait()和signal()方法實(shí)現(xiàn)同步是一樣的原理

servlet的生命周期決定在第一次初始化servlet后所有客戶端對(duì)servlet中成員變量的修改都是在公共 屬性上的修改,相互影響,所以這種方式是不推薦的,但是如果采用自處理的實(shí)現(xiàn)方式是可以的。servlet的所有成員變量標(biāo)志其狀態(tài),所有客戶端對(duì)成員變量的修改都會(huì)永遠(yuǎn)作用在servlet上并影響其他客戶端的訪問(wèn), 處理。

?

?

?

?

posted on 2012-09-24 20:10 moonfans 閱讀(...) 評(píng)論(...) 編輯 收藏

轉(zhuǎn)載于:https://www.cnblogs.com/moonfans/archive/2012/09/24/2700581.html

總結(jié)

以上是生活随笔為你收集整理的jsp中未登录用户也可以浏览页面的功能实现代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。