<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 14, comments - 22, trackbacks - 0, articles - 4
      BlogJava :: 首頁(yè) ::  :: 聯(lián)系 :: 聚合  :: 管理

    如果用戶直接輸入了地址,不也可以直接訪問(wèn)嗎?理論上是,我們可以加入session進(jìn)行跟蹤,以杜絕此類型事件發(fā)生,我們是不是要把每次對(duì)session的判斷依次拷到每個(gè)頁(yè)里呢,之后下次需要驗(yàn)證的SESSION換了,我們?cè)贀Q?太浪費(fèi)了,我的做法是做了一個(gè)自定義標(biāo)簽,來(lái)解決這個(gè)問(wèn)題。

    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.tagext.TagSupport;

    public class CheckTag extends TagSupport
    {
    ??? private static final long serialVersionUID = 879137944441282895L;
    ??? private String check = "";//用來(lái)驗(yàn)證的變量
    ??? private String url = "index.jsp";//出現(xiàn)錯(cuò)誤要去的頁(yè)面
    ??? private String msg = "";//錯(cuò)誤的提示
    ??? private String scope = "";//要嚴(yán)整變量的范圍
    ??? private String to = "go";
    //如果驗(yàn)證失敗,是將頁(yè)面后退,還是定位到哪里?

    ??? public String getTo()
    ??? {
    ??????? return to;
    ??? }

    ??? public void setTo( String to )
    ??? {
    ??????? this.to = to;
    ??? }

    ??? public String getMsg()
    ??? {
    ??????? return msg;
    ??? }

    ??? public void setMsg( String msg )
    ??? {
    ??????? this.msg = msg;
    ??? }

    ??? public String getScope()
    ??? {
    ??????? return scope;
    ??? }

    ??? public void setScope( String scope )
    ??? {
    ??????? this.scope = scope;
    ??? }

    ??? public String getCheck()
    ??? {
    ??????? return check;
    ??? }

    ??? public void setCheck( String check )
    ??? {
    ??????? this.check = check;
    ??? }

    ??? public String getUrl()
    ??? {
    ??????? return url;
    ??? }

    ??? public void setUrl( String url )
    ??? {
    ??????? this.url = url;
    ??? }

    ??? public int doStsrtTag() throws JspException
    ??? {
    ??????? return SKIP_BODY;
    ??? }

    ??? public int doEndTag() throws JspException
    ??? {
    ??????? boolean valid = false;//先設(shè)為不可用
    ??????? if ( scope.equalsIgnoreCase( "request" ) )//如果要檢查request范圍
    ??????? {
    ??????????? valid = CheckUtil.checkRequestAttribute( pageContext.getRequest(),
    ??????????????????? check );
    ??????? }
    ??????? else if ( scope.equalsIgnoreCase( "session" ) )
    ??????? {
    ??????????? valid = CheckUtil.checkSession( pageContext.getSession(), check );
    ??????? }
    ??????? else if ( scope.equalsIgnoreCase( "parameter" ) )
    ??????? {
    ??????????? valid = CheckUtil.checkParameter( pageContext.getRequest(), check );
    ??????? }
    ??????? else if ( scope.equalsIgnoreCase( "application" ) )
    ??????? {
    ??????????? valid = CheckUtil.checkApp( pageContext.getServletContext(), check );
    ??????? }
    ??????? if ( valid ) return EVAL_PAGE;//如果可用就繼續(xù)執(zhí)行此頁(yè)的其余部分
    ??????? else
    ??????? {//否則,哈哈
    ??????????? try
    ??????????? {
    ??????????????? if ( to.equalsIgnoreCase( "go" ) ) //現(xiàn)在失敗了,就看怎么回到你該到的地方
    ??????????????????? HtmlUtil.callParentGo(
    ??????????????????????? pageContext.getOut(), msg, url );//將瀏覽器定位到URL?
    ??????????????? else
    ??????????????????? HtmlUtil.callBack( pageContext.getOut(), msg );//后退一下頁(yè)面來(lái)阻止
    ??????????????? return SKIP_PAGE;//跳過(guò)頁(yè)面的其余部分,不執(zhí)行
    ??????????? }
    ??????????? catch ( Exception e )
    ??????????? {
    ??????????????? throw new JspException( e.toString() );
    ??????????? }
    ??????? }
    ??? }

    ??? public void release()
    ??? {
    ??????? super.release();
    ??????? check = "";
    ??????? url = "";
    ??????? msg = "";
    ??????? scope = "";
    ??? }
    }


    下面是用到的htmlUtil部分:

    public static void callParentGo( Writer out, String msg, String url )
    ??????????? throws IOException
    ??? {
    ??????? out.write( "<script language=\"javascript\">" );
    ??????? out.write( "alert(\"" + msg + "\");" );
    ??????? out.write( "parent.location.href=\"" + url + "\";" );
    ??????? out.write( "</script>" );
    ??? }
    public static void callBack( Writer out, String msg ) throws IOException
    ??? {
    ??????? out.write( "<script language=\"javascript\">" );
    ??????? out.write( "alert(\"" + msg + "\");" );
    ??????? out.write( "parent.history.back();" );
    ??????? out.write( "</script>" );
    ??? }


    寫個(gè)check.tld部署吧,

    <?xml version = "1.0"?>
    <taglib>
    ?<tlibversion>1.0</tlibversion>
    ?<jspversion>1.1</jspversion>
    ?<tag>
    ??<name>check</name>
    ??<tag-class>com.boya.subject.util.CheckTag</tag-class>
    ??<attribute>
    ???<name>check</name>
    ???<required>true</required>
    ??</attribute>
    ??<attribute>
    ???<name>url</name>
    ???<required>false</required>
    ??</attribute>
    ??<attribute>
    ???<name>msg</name>
    ???<required>true</required>
    ??</attribute>
    ??<attribute>
    ???<name>scope</name>
    ???<required>true</required>
    ??</attribute>
    ??<attribute>
    ???<name>to</name>
    ???<required>false</required>
    ??</attribute>
    ?</tag>
    </taglib>


    只要在每個(gè)頁(yè)面里寫下這個(gè)就可以判定用戶是否登陸了

    <%@ taglib prefix="boya" uri="/WEB-INF/check.tld" %>
    <boya:check check="admin" msg="管理員尚未登陸,請(qǐng)登陸!" scope ="session"/>

    如果沒有登陸那么,會(huì)自動(dòng)提示到首頁(yè)登陸,不錯(cuò),很完美吧?

    當(dāng)然不是,您可以提出您的見解。。。。


    評(píng)論

    # re: 體驗(yàn)Struts(6)---阻止非法的登陸方式  回復(fù)  更多評(píng)論   

    2009-11-02 14:17 by dawnlch
    這樣是可以阻止用戶的登錄,但是不能阻止登錄的用戶通過(guò)輸入網(wǎng)址去操作他并沒有的權(quán)限??!請(qǐng)問(wèn)這要怎么解決啊

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    有事在這里給我留言噢!
    主站蜘蛛池模板: 亚洲aⅴ天堂av天堂无码麻豆| 亚洲阿v天堂在线2017免费| 国产成人免费片在线视频观看| 精品成人一区二区三区免费视频| 国产成人精品曰本亚洲79ren| 99在线热视频只有精品免费| 亚洲乱码在线观看| 亚洲男人第一无码aⅴ网站 | a级日本高清免费看| 亚洲国产日韩精品| 色噜噜亚洲精品中文字幕| 国产精品怡红院永久免费| 免费国产黄网站在线看| 亚洲综合视频在线观看| 国产又大又粗又硬又长免费 | 美女黄频a美女大全免费皮| 久久精品亚洲日本佐佐木明希| 福利免费观看午夜体检区| 日本一区二区三区在线视频观看免费 | 久久久久久精品免费看SSS| 免费国产va在线观看| 亚洲三级在线视频| 国产午夜亚洲精品午夜鲁丝片| 免费看国产精品3a黄的视频| 人妻免费一区二区三区最新| 综合一区自拍亚洲综合图区 | 特级无码毛片免费视频| 激情亚洲一区国产精品| 亚洲Av永久无码精品三区在线| 国产一区二区三区在线观看免费| 久视频精品免费观看99| 中文字幕在线成人免费看| 美女扒开尿口给男人爽免费视频| 亚洲国产综合精品| 久久久久久久综合日本亚洲| 国产成人免费永久播放视频平台| a毛片基地免费全部视频| 麻豆成人久久精品二区三区免费| 国产成人无码精品久久久免费| 国产精品亚洲一区二区无码| 亚洲午夜精品久久久久久app|