亚洲欧美日韩综合系列在线_91精品人妻一区二区_欧美大肥婆一级特大AA片_九色91视频免费观看_亚洲综合国产精品_av中文字幕在线不卡_久久精品色综合网_看黄色视频的软件_无卡无码高清中文字幕码2024_亚洲欧美日韩天堂网

javaweb開發(fā) JSP技術

來源:遇妳 發(fā)布時間:2020-05-12 11:58:39 閱讀量:1656

靜態(tài)web項目與動態(tài)web項目的區(qū)別

1.傳統(tǒng)意義上的靜態(tài)web項目是指使用HTML+CSS+JS等前端技術做成的頁面,靜態(tài)web項目不會隨著用戶的操作時間、操作地點等改變;而動態(tài)web項目可以根據(jù)用戶的請求動態(tài)的作出響應。

2.靜態(tài)web項目與動態(tài)web項目最大的區(qū)別是動態(tài)web項目可以進行數(shù)據(jù)庫的操作,而靜態(tài)web項目無法進行數(shù)據(jù)庫的操作。


動態(tài)web項目執(zhí)行原理


如圖1所表示的一樣,當客戶端通過瀏覽器向服務端請求web資源時,web服務器插件會先判斷客戶端請求的web資源的類型,若是靜態(tài)web資源則將客戶端請求交給web服務器,并從文件系統(tǒng)中取出資源響應給客戶端;若客戶端請求的是動態(tài)web資源,則在web容器中進行處理,主要是通過拼湊代碼(拼湊html代碼)的方式動態(tài)的生成數(shù)據(jù)并通過web服務器響應給客戶端。


JSP九大內置對象及常用方法

out對象

1.out對象的作用

JspWriter類的實例,用于把結果輸出至網(wǎng)頁上。

2.out對象常用方法

out.print(dataType dt):輸出Type類型的值


request對象(請求對象)

常用方法:

1.void setCharacterEncoding():設置請求的編碼方式

2.String getParameter(String name):返回name指定參數(shù)的參數(shù)值

3.String[] getParameterValues(String name):返回包含參數(shù)name的所有值的數(shù)組

4.void getRequestDispatcher(String location).forward(requset,response):請求轉發(fā),頁面跳轉的一種方式


下面通過一個簡單的注冊功能串一下上面的方法

注冊頁,用于收集用戶信息


<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

    <title>登陸</title>

</head>

<body>

    <form action="check.jsp" method="post">

        姓名:<input type="text" name="uname"/><br/>

        密碼:<input type="password" name="upwd"/><br/>

        愛好:<br/>

        <input type="checkbox" name="uhobbies" value="足球"/>足球

        <input type="checkbox" name="uhobbies" value="籃球"/>籃球

        <input type="checkbox" name="uhobbies" value="乒乓球"/>乒乓球<br/>

        <input type="submit" value="提交"/>

    </form>

</body>

檢查頁,用于接收用戶信息


<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

    <title>檢查</title>

</head>

<body>


    <%

        /*

        request對象常用方法

        1.void setCharacterEncoding():設置請求的編碼方式

        2.String getParameter(String name):返回name指定參數(shù)的參數(shù)值

        3.String[] getParameterValues(String name):返回包含參數(shù)name的所有值的數(shù)組

        4.void getRequestDispatcher(String location).forward(requset,response):請求轉發(fā),頁面跳轉的一種方式

        */


        // 設置請求的編碼方式

        request.setCharacterEncoding("utf-8");

        // 根據(jù)name取值

        String name = request.getParameter("uname");

        String pwd = request.getParameter("upwd");

        String[] hobbies = request.getParameterValues("uhobbies");

    %>

    <!--顯示用戶信息-->

    提交成功,信息如下:<br/>

    姓名:<%=name%><br/>

    密碼:<%=pwd%><br/>

    愛好:<br/>

    <%

        if (hobbies != null){

            for (String hobby : hobbies){

                out.print(hobby+"&nbsp;");

            }

        }

    %>

</body>

</html>

開啟tomcat服務器訪問login.jsp,進行注冊操作


頁面跳轉到check.jsp進行取值


response(響應對象)

常用方法

response常用方法

1.void addCookie(Cookie cookie):服務端向客戶端增加一個Cookie對象

2.void sendRedirect(String location):重定向,頁面跳轉的一種方式

3.void setContentType(String type):設置響應編碼


下面通過一個登陸操作演示一下上面的常用方法,用戶通過login.jsp頁面輸入用戶名、密碼;頁面跳轉到check.jsp進行校驗,若用戶名等于張三且密碼等于abc則跳轉到歡迎頁,否則登陸失敗。


登陸頁


<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

    <title>登陸頁</title>

</head>

<body>

    <form action="check.jsp" method="post">

        姓名:<input type="text" name="uname"/><br/>

        密碼:<input type="password" name="upwd"/><br/>

        <input type="submit" value="提交"/>

    </form>

</body>

</html>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

    <title>檢查頁</title>

</head>

<body>


    <%

        /*

        response常用方法

        1.void addCookie(Cookie cookie):服務端向客戶端增加一個Cookie對象

        2.void sendRedirect(String location):重定向,頁面跳轉的一種方式

        3.void setContentType(String type):設置響應編碼

        */


        // 設置響應的編碼方式

        request.setCharacterEncoding("utf-8");

        // 取出用戶信息

        String name = request.getParameter("uname");

        String pwd = request.getParameter("upwd");


        // 進行校驗

        if (name.equals("張三") && pwd.equals("abc")){

            // 登陸成功,跳到歡迎頁

            // 重定向方式跳轉

            // response.sendRedirect("success.jsp");

            //請求轉發(fā)方式

            request.getRequestDispatcher("success.jsp").forward(request,response);

        }else {

            // 登陸失敗,跳回登陸頁重新登陸

            request.getRequestDispatcher("login.jsp").forward(request,response);

            out.print("用戶名或密碼有誤!");

        }

    %>



</body>

</html>

歡迎頁


<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

    <title>歡迎頁</title>

</head>

<body>

    登陸成功,歡迎您:<br/>

    <%

        String name = request.getParameter("uname");

        out.print(name); //登陸成功,歡迎您: null

    %>

</body>

</html>

將項目部署到tomcat服務器并訪問login.jsp


頁面跳轉到check.jsp頁面進行校驗


關于重定向和請求轉發(fā)

cookie對象

1.Cookie對象不是內置對象,必須使用new關鍵字創(chuàng)建,由服務端產(chǎn)生并且在響應的同時發(fā)送給客戶端,相當于我們平時理解的緩存

2.常用方法

public Cookie(String name,String value)

String getName():獲取name

String getValue():獲取value

void setMaxAge(int expiry):設置最大有效時間

3.服務端準備Cookie:response.addCookie(String name,String value)

客戶端獲取Cookie:Cookie[] request.getCookies():一次性拿到所有的Cookie對象,然后再遍歷取出


下面通過一個記住用戶名的例子串一下上面的方法


<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

    <title>登陸頁</title>

</head>

<body>

    <%!

        String uname;

    %>

    <%

        // 標記用來記錄Cookie是否失效

        boolean flag = false;

        // 接收Cookie

        Cookie[] cookies = request.getCookies();

        // 進行判斷并取出用戶信息

        for (Cookie cookie : cookies){

            if (cookie.getName().equals("uname")){ // 若能執(zhí)行到這一步說明拿到了用戶名

                uname = cookie.getValue();

                //flag = true; // 能進行到這一步說明Cookie未失效

            }

        }

        if (!flag){

            out.print("Cookie已失效!");

        }else {

            out.print("Cookie:"+uname);

        }

    %>


    <form action="addCookie.jsp" method="post">

        姓名:<input type="text" name="uname" value="<%=(uname==null?"":uname)%>"/><br/>

        密碼:<input type="password" name="upwd"/><br/>

        <input type="submit" value="提交"/>

    </form>

</body>

</html>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

    <title>服務端</title>

</head>

<body>

    <!--

        Cookie對象

        1.Cookie對象不是內置對象,必須使用new關鍵字創(chuàng)建,由服務端產(chǎn)生并且在響應的同時發(fā)送給客戶端,相當于我們平時理解的緩存

        2.常用方法

            public Cookie(String name,String value)

            String getName():獲取name

            String getValue():獲取value

            void setMaxAge(int expiry):設置最大有效時間

        3.服務端準備Cookie:response.addCookie(String name,String value)

          客戶端獲取Cookie:Cookie[] request.getCookies():一次性拿到所有的Cookie對象,然后再遍歷取出

    -->


    <%

        // 設置請求編碼方式

        request.setCharacterEncoding("utf-8");

        // 取出用戶信息

        String name = request.getParameter("uname");

        String pwd = request.getParameter("upwd");

        // 創(chuàng)建Cookie對象

        Cookie cookie = new Cookie("uname",name);

        // 設置Cookie最大有效時間

        cookie.setMaxAge(60);

        // 增加Cookie對象

        response.addCookie(cookie);

        // 響應將Cookie發(fā)送給客戶端

        response.sendRedirect("A.jsp");

    %>


</body>

</html>

session對象

session對象:

1.session中文翻譯為會話,表示用戶從登陸到退出登陸的這個過程,session由服務端產(chǎn)生,通過Cookie響應至客戶端

2.當用戶第一次訪問服務端時,服務端會自動為這個用戶產(chǎn)生一個sessionId,并且自動產(chǎn)生一個name為JSESSIONID的Cookie響應至客戶端


    session常用方法

    1.String getID():獲取sessionId

    2.boolean isNew():判斷用戶是否是第一次登陸

    3.void invalidate():使sessio失效(退出登陸、注銷)

    4.void setAttribute():設置屬性值

    5.Object getAttribute():獲取屬性值,需要進行強制類型轉換

    6.void setMaxInactiveIntervval():設置最大有效非活動時間

下面通過一個實例演示session對象常用方法


<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

    <title>登陸</title>

</head>

<body>


    <form action="check.jsp" method="post">

        姓名:<input type="text" name="uname"/><br/>

        密碼:<input type="password" name="upwd"/><br/>

        <input type="submit" value="提交"/>

    </form>


</body>

</html>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

    <title>檢查</title>

</head>

<body>


    <%--


        session對象:

        1.session中文翻譯為會話,表示用戶從登陸到退出登陸的這個過程,session由服務端產(chǎn)生,通過Cookie響應至客戶端

        2.當用戶第一次訪問服務端時,服務端會自動為這個用戶產(chǎn)生一個sessionId,并且自動產(chǎn)生一個name為JSESSIONID的Cookie響應至客戶端


        session常用方法

        1.String getID():獲取sessionId

        2.boolean isNew():判斷用戶是否是第一次登陸

        3.void invalidate():使sessio失效(退出登陸、注銷)

        4.void setAttribute():設置屬性值

        5.Object getAttribute():獲取屬性值,需要進行強制類型轉換

        6.void setMaxInactiveIntervval():設置最大有效非活動時間


    --%>


    <%

        // 設置編碼

        request.setCharacterEncoding("utf-8");

        // 取出用戶信息進行判斷

        String name = request.getParameter("uname");

        String pwd = request.getParameter("upwd");

        if (name.equals("張三") && pwd.equals("abc")){

            // 登陸成功,session中才有必要保存用戶信息

            session.setAttribute("uname",name);

            session.setAttribute("upwd",pwd);

            System.out.println("sessionId:"+session.getId());

            Cookie cookie = new Cookie("uname",name);

            response.addCookie(cookie);

            // 設置最大有效非活動時間

            // session.setMaxInactiveInterval(10);

            // 請求轉發(fā)

            request.getRequestDispatcher("welcome.jsp").forward(request,response);

        }else {

            // 登陸失敗,重新登陸

            response.sendRedirect("login.jsp");

        }

    %>


</body>

</html>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

    <title>歡迎頁</title>

</head>

<body>

    登陸成功,歡迎您:<br/>

    <%

        String name = (String) session.getAttribute("uname");

        if (name != null) {

            out.print(name);


    %>

        <a href="invalidate.jsp">注銷</a>

    <%

        }else {

            // 重新登陸(防止用戶直接通過地址欄的方式訪問welcom.jsp頁面)

            response.sendRedirect("login.jsp");

        }

    %>

</body>

</html>


標簽: PHP
分享:
評論:
你還沒有登錄,請先