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

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

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

    隨筆-26  評論-13  文章-46  trackbacks-0
     
    <href="delete.jsp?Id=${row.Id}" onclick="if(confirm('確認刪除?')){this.click();}else{return false;}">刪除</a>
    posted @ 2005-06-07 16:10 似水流年 閱讀(398) | 評論 (0)編輯 收藏

    1.驗證用戶登錄
    <sql:query var="query" dataSource="${bookdev}">
      select * from user where userName='${param.userName}' and userPwd='${param.userPwd}'
    </sql:query>

    <c:if test="${empty query.rows}"> 
    <!--驗證沒有通過,返回登錄界面-->
      <font color="red">用戶名或密碼錯誤</font>
      <a href="index.jsp">重新登錄</a>
    </c:if>
    <c:if test="${!empty query.rows}"> 
    <!--驗證通過,保存用戶信息到session中-->
    <c:forEach var="row" items="${query.rows}">
        <c:set var="userName" value="${row.userName}" scope="session" />
        <c:set var="userLevel" value="${row.userLevel}" scope="session" /> 
     </c:forEach>
        <c:set var="isLog" value="1" scope="session" /> 
    <!--頁面發送到主頁面-->
        <c:redirect url="main.jsp" />
    </c:if>

    2.session控制

    <c:if test="${empty sessionScope.isLog}">
     你沒有登錄或登錄超時
     <a href="index.jsp">重新登錄</a>
    </c:if>

    posted @ 2005-06-07 16:07 似水流年 閱讀(3648) | 評論 (3)編輯 收藏
    以mysql為例

    <sql:setDataSource 
      var
    ="bookdev"  //數據庫名 
      driver="org.gjt.mm.mysql.Driver" //驅動程序 
      url="jdbc:mysql://localhost:3306/bookdev?useUnicode=true&characterEncoding=gb2312" //URL
      user="root" //用戶名
      password="" //密碼 
     scope="session" 
    /> 

    其他數據庫和URL列表如下(摘自jsp應用開發詳解(第二版))

    數據庫驅動程序和URL

    數據庫名

    驅動程序

    URL

    MS SQL Server2000

    com.microsoft.jdbc.sqlserver.SQLServerDriver

    jdbc:microsoft:sqlserver://[ip]:[port];user=[user];passwoerd=[password]

    JDBC-ODBC

    sun.jdbc.odbc.JdbcOdbcDriver

    jdbc:odbc:[odbcsource]

    Oracle oci8

    oracle.jdbc.driver.OracleDriver

    jdbc:oracle:oci8:@[sid]

    Oracle thin Driver

    oracle.jdbc.driver.OracleDriver

    jdbc:oracle:thin:@[ip]:[port]:[sid]

    Cloudscape

    COM.cloudscape.core.JDBCDriver

    Jdbc:cloudscape:database

    MySQL

    org.git.mm.mysql.Driver

    jdbc:mysql://ip/database?user=?&password=?


    相關鏈接:java連接數據庫方法http://blog.java-cn.com/more.asp?name=johnnyhg&id=341 

    posted @ 2005-06-07 16:06 似水流年 閱讀(396) | 評論 (0)編輯 收藏
    由于mysql把\當作轉義字符用,所以要把路徑中的\處理成\\才可以正確保存,無奈之下copy了一段java代碼實現字符替換,后來才發現原來JSTL的新增函數庫就有函數已經可以實現此功能,且使用起來代碼簡潔,這樣好的東西自然要用用。
    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
    ${fn:replace(param.sourceUrl,'\','\\')}
    結果出現錯誤:Unterminated ${ tag。
    修改代碼為:
    <c:set var="before" value="\\"/> 
    <c:set var="after" value="\\\\"/> 
    $
    {fn:replace(param.sourceUrl,before,after)} 
    問題解決
    posted @ 2005-06-07 16:01 似水流年 閱讀(1446) | 評論 (1)編輯 收藏
    加密
    <sql:update var="user" dataSource="${bookdev}"> 
      insert into user values(
    "","${param.userName}",password("${param.userPwd}"),"${param.userLevel}"
    </sql:update> 

    解密
    <sql:query var="query" dataSource="${bookdev}"> 
      select 
    * from user where userName='${param.userName}' and 
      userPwd
    =password('${param.userPwd}'
    </sql:query>
    posted @ 2005-06-07 16:00 似水流年 閱讀(603) | 評論 (0)編輯 收藏

    JSP文件操作

        文件的建立與刪除
        顯示目錄中的文件
        讀取文件中的字符
        將數據寫入文件


    文件的建立與刪除

    首先取得當前的磁盤路徑,指定要建立的文件的路徑,再進行檢查,如果文件不存在,如果文件不存在,則建立這個文件,如果文件存在,則刪除這個文件。

    CreateDelete.jsp
    <%@ page contentType="text/html; charset=GB2312"%>
    <%@ page import="java.io.*" %>
    <%@ page language="java" %>
    <HTML>
    <HEAD>
    <TITLE>文件的建立與刪除</TITLE>
    </HEAD>
    <BODY>
    <CENTER>
    <FONT SIZE = 5 COLOR = blue>文件的建立與刪除</FONT>
    </CENTER>
    <BR>
    <HR>
    <BR>
    <%
    //建立代表目前目錄位置中File.txt檔的File變量, 并由fileName變量變數引用
    String path = request.getRealPath("/jsphosting/wenjian");
    File fileName = new File(path, "File.txt");
    //檢查File.txt是否存在
    if(fileName.exists())
    {
    //刪除File.txt檔
    fileName.delete();
    //輸出目前所在的目錄路徑
    out.println(path + "\\File.txt");
    %>
    <FONT SIZE = 4 COLOR = red>存在</FONT>, 已完成
    <FONT SIZE = 4 COLOR = red>刪除</FONT>
    <%
    }
    else
    {
    //在目前的目錄下建立一個名為File.txt的文字檔 
    fileName.createNewFile();
    //輸出目前所在的目錄路徑
    out.println(path + "\\File.txt");
    %>
    <FONT SIZE = 4 COLOR = red>不存在</FONT>, 已完成
    <FONT SIZE = 4 COLOR = red>建立</FONT>
    <%
    }
    %>
    </BODY>
    </HTML> 


    顯示目錄中的文件


    首先建立要顯示的目錄的FILE對象,然后調用LISTFILES方法,該方法返回一個FILE對象數組,顯示數組中的所有元素即可。

    ListFile.jsp
    <%@ page contentType="text/html; charset=GB2312"%>
    <%@ page language="java" %>
    <%@ page import="java.io.*" %>
    <HTML>
    <HEAD>
    <TITLE>取得目錄中的文件</TITLE>
    </HEAD>
    <BODY>
    <CENTER>
    <FONT SIZE = 5 COLOR = blue>取得目錄中的文件</FONT>
    </CENTER>
    <BR>
    <HR>
    <BR>
    <%
    //取得目前目錄的磁盤目錄
    String path = request.getRealPath("/jsphosting/wenjian");
    //建立代表目前目錄位置的d變量
    File d = new File(path);
    //取得代表目錄中所有文件
    File list[] = d.listFiles();
    %>
    在<Font color = red><%= path%></Font>目錄下的文件有(每個文件有其相應的功能)<BR>
    <Font color = blue>
    <ul>
    <%
    for(int i=0; i < list.length; i++)
    {
    %>
    <li><%= list[i].getName() %><BR> 
    <%
    }
    %>
    </ul>
    </Font>
    </BODY>
    </HTML> 

    讀取文件中的字符

    直接調用FILEREADER對象的READ()方法讀取所要顯示的字符

    ReadAll.jsp
    <%@ page contentType="text/html; charset=GB2312" %>
    <%@ page language="java" %>
    <%@ page import="java.io.*" %>
    <HTML>
    <HEAD>
    <TITLE>讀取文件內容</TITLE>
    </HEAD>
    <BODY>
    <CENTER>
    <FONT SIZE = 5 COLOR = blue>讀取文件內容</FONT>
    </CENTER>
    <BR>
    <HR>
    <BR>
    <%
    String path = request.getRealPath("/jsphosting/wenjian"); //取得目前目錄在伺服端的實際位置
    FileReader fr = new FileReader(path + "\\File.txt"); //建立FileReader變量,并設定由fr變量變數引用
    int c = fr.read(); //從文件中讀取一個字節
    while(c != -1) //判斷是否已讀到文件的結尾
    {
    out.print((char)c); //輸出讀取到的數據 
    c = fr.read(); //從文件中讀取數據
    if(c == 13) //判斷是否為斷行字節
    {
    out.print("<BR>"); //輸出分行標簽
    fr.skip(1); //略過一個字節
    c = fr.read(); //讀取一個字節
    }
    }
    //關閉文件
    fr.close();
    %>
    </BODY>
    </HTML> 

    將數據寫入文件

    通過調用FILEWRITER對象的WRITE()方法向文件中寫入數據

    Write.jsp
    <%@ page contentType="text/html; charset=GB2312"%>
    <%@ page language="java" %>
    <%@ page import="java.io.*" %>
    <HTML>
    <HEAD>
    <TITLE>將數據寫入文件</TITLE>
    </HEAD>
    <BODY>
    <CENTER>
    <FONT SIZE = 5 COLOR = blue>將數據寫入文件</FONT>
    </CENTER>
    <BR>
    <HR>
    <BR>
    <%
    String path = request.getRealPath("/jsphosting/wenjian"); //取得目前目錄在伺服端的實際位置
    FileWriter fw = new FileWriter(path + "\\File.txt"); //建立FileWrite對象,并設定由fw對象變量引用
    //將字串寫入文件
    fw.write("大家好!");
    fw.write("祝大家學習jsp愉快!");
    fw.write("希望大家能夠深入了解jsp技術!");
    fw.close(); //關閉文件
    %>
    <P>寫入文件內容為</P>
    <FONT SIZE = 4 COLOR = red>
    <%
    FileReader fr = new FileReader(path + "\\File.txt"); //建立FileReader對象,并設定由fr對象變量引用
    BufferedReader br = new BufferedReader(fr); //建立BufferedReader對象,并設定由br對象變量引用
    String Line = br.readLine(); //讀取一行數據
    out.println(Line + "<BR>"); //輸出讀取得的數據
    br.close(); //關閉BufferedReader對象
    fr.close(); //關閉文件
    %>
    </FONT>
    </BODY>
    </HTML> 

    posted @ 2005-06-07 15:58 似水流年 閱讀(298) | 評論 (0)編輯 收藏

    打開tomcat/conf/servel.xml
    修改(黑體字為修改部分)
    <Connector port="8080"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   debug="0" connectionTimeout="20000"
                   disableUploadTimeout="true" URIEncoding="GBK"/>
    在web頁上把含有中文的url用java.net.URLEncoder.encode("中文")處理
    例子:

    <c:set var="test"> 
      
    /<%=java.net.URLEncoder.encode("用jsp實現文件上傳.pdf")%> 
    </c:set> 
    <c:redirect context="/ebooks" url="${test}"/> 


    鏈接傳遞中文參數例子

    <a href=hello.jsp?send=<%=java.net.URLEncoder.encode("中文")%>> 點擊</a> 

     jspsmartupload組件下載中文例子:
     

    <%@ page contentType="text/html;charset=gb2312" 
    import
    ="com.jspsmart.upload.*" %><% 

    SmartUpload mySmartUpload  
    = new SmartUpload(); 

    //String path=request.getParameter("中文");修改server.xml后 
    String path = new String(request.getParameter("中文").getBytes("ISO-8859-1")); //修改server.xml前 
    // Initialization 
    mySmartUpload.initialize(pageContext); 
    // Download file 
    //mySmartUpload.downloadFile("/upload/sample.zip"); 
    // With a physical path 

    mySmartUpload.downloadFile(path); 
    response.getOutputStream().close(); 
    // With options 
    // mySmartUpload.downloadFile("/upload/sample.zip","application/x-zip-compressed","downloaded.zip") 
    %> 
    posted @ 2005-06-07 15:57 似水流年 閱讀(4651) | 評論 (2)編輯 收藏

    數據庫需求分析:
    class(一級欄目信息):classId(自動編號),className(欄目名稱)
    Nclass(二級欄目信息):NclassId(自動編號),NclassName(欄目名稱),parentId(一級欄目id,與class表中的classId關聯)

    <%@ page contentType="text/html; charset=GB2312" language="java" errorPage="../error.jsp" %>
    <%@ include file="../conn.jsp"%>
    <%@ include file="../ds.jsp"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
    <%request.setCharacterEncoding("gb2312"); %>
    <HTML><HEAD>
    <META http-equiv="Content-Type" content="text/html; charset=gb2312">

    <TITLE>級聯菜單</TITLE>
    <LINK rel="stylesheet" type="text/css" href="style.css">
    </HEAD>
    <!--從數據庫中得到二級欄目信息-->
    <%String sql="select * from Nclass order by NclassId asc";
    ResultSet rs=stmt.executeQuery(sql);
    %>
    <!--將二級欄目信息保存到數組subcat中-->
    <script type="text/javascript">
    var onecount;
    onecount=0;
    subcat = new Array();
            <%
            int count = 0;
            while(rs.next()){
            %>
    subcat[<%=count%>] = new Array("<%=rs.getString("NclassName")%>","<%=rs.getString("NclassId")%>","<%=rs.getString("parentId")%>");
            <%
            count++;
            }
            rs.close();
            %>
    onecount=<%=count%>;
    <!--決定select顯示的函數-->
    function changelocation(locationid)
        {
        document.myform.NclassId.length = 0;

        var locationid=locationid;
        var i;
        for (i=0;i < onecount; i++)
            {
                if (subcat[i][2] == locationid)
                {
                    document.myform.NclassId.options[document.myform.NclassId.length] = new Option(subcat[i][0], subcat[i][1]);
                }       
            }
           
        }   
    </script>

    <FORM method="POST" name="myform" action="adminsave.jsp?action=add">
      <TABLE>
      
        <TR>
          <TD>一級分類</TD>
          <TD> 
            <SELECT name="classId" onChange="changelocation(document.myform.classId.options[document.myform.classId.selectedIndex].value)" size="1">
              <OPTION selected value>==請選一級分類==</OPTION>
            <sql:query var="query" dataSource="${bookdev}">
              SELECT * FROM class
           </sql:query>
    <c:forEach var="row" items="${query.rows}">
     <option value="${row.classId}">${row.className}</option>
    </c:forEach>
    </select>
          </TD>
          <TD>選擇二級分類</TD>
          <TD>
            <SELECT name="NclassId">
              <OPTION selected value>==請選二級分類==</OPTION>
            </SELECT>
          </TD>
        </TR>
    </TABLE>
     
    </FORM>
    </BODY>
    </HTML>

     

    posted @ 2005-06-07 15:53 似水流年 閱讀(659) | 評論 (0)編輯 收藏
    <html> 
    <head> 
    <title>Untitled Document</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
    </head><LINK href="../hellking.css" type=text/css rel=stylesheet> 
    <body> 
    <%request.setCharacterEncoding("gb2312"); %> 

    <script type="text/javascript"> 
       
    function setid() 
       

       str
    ='<br>'; 
       
    if(!window.form1.upcount.value) 
        window.form1.upcount.value
    =1
       
    if(window.form1.upcount.value>100)
       alert(
    "您最多只能同時上傳100個文件0"); 
       window.form1.upcount.value 
    = 100
       setid(); 
       }
     
       
    else
        
    for(i=1;i<=window.form1.upcount.value;i++
          str
    +='<div>文件'+i+':<input type="file" name="file'+i+'"></div><br><br>'; 
       window.upid.innerHTML
    =str+'<br>';}
     
       }
     
     
    </script> 



    <form name="form1" method="post" action="BookAction_do.jsp?action=${param.action}" >

     

      
    <div> 
      
    <table border="1" cellspacing="0" cellpadding="5" bordercolordark="#CCCCCC" bordercolorlight="#000000" bordercolor="#FFFFFF" style="border-collapse: collapse" height="169"> 
        
    <tr bgcolor="#CC0CCC"> 
          
    <td height="28" align="left" valign="middle" bgcolor="#C0CCCC">&nbsp; 
            
    <div><font size="3"><b>文件上傳</b></font></div> 
          
    </td> 
        
    </tr> 
        
    <tr align="left" valign="middle" bgcolor="#eeeeee"> 
          
    <td bgcolor="#eeeeee" height="92" valign="top"> <br> 
            
    <table border="0" cellspacing="1" cellpadding="2"> 

              
    <tr> 
                
    <td><font color="#FF0000"><b>*</b></font>上傳的文件大小不能超過<font color="#FF0000">999999999</font>個字節</td> 
              
    </tr> 
              
    <tr> 
                
    <td> 

                  
    <b><font color="#FF0000">*</font></b>每次可以設置同時上傳<font color="#FF0000">100</font>個文件。<br>

                  設置上傳的個數 
                  
    <input type="text" value="1" name="upcount" size="20"> 
                  
    <input type="button" name="Button"  onClick="setid();" value="設定"> 

                
    </td> 
              
    </tr> 

            
    </table> 
          
    </td> 
        
    </tr> 
        
    <tr> 
          
    <td id="upid"> 
            
    <div>文件1: 
              
    <input type="file" name="file1"> 
            
    </div> 
          
    </td> 
        
    </tr> 


      
    </table> 
    </div> 
    <br> 
      
    <tr align="center" valign="middle" bgcolor="#eeeeee"> 
          
    <td bgcolor="#ccc000" height="33"> 
            
    <input type="submit" name="Submit" value="確定"> 
            
    <input type="reset" name="Submit2" value="重執"> 
          
    </td> 
        
    </tr> 
    </table></form> 
    </body> 
    </html> 

    posted @ 2005-06-07 15:51 似水流年 閱讀(558) | 評論 (0)編輯 收藏

    5.1 停用目錄檢視 (Directory Listing)

    在新的 Tomcat 安裝,預設目錄檢視是啟用的,這可以是一個很有用的測試工具,如果像我一樣,您有時會忘記在某個網頁應用程式使用了甚麼 servlets,可以簡單地輸入網頁應用程式的 URL ,就能取得完整的列表。

    但在生產的用途上,您可能想將它關掉。如果沒有其他東西,它不鼓勵使用者在他們不應該逗留的地方閒逛。要關掉這個選項基本上兩個方法:

    • 建立一個 index.html 檔案,將它放在網頁應用程式的目錄內。
    • 修改整體的 web.xml 檔案將選項關掉。

    第一個選項頗為簡單,因此我們只研究第二個選項。

    開啟 web.xml 檔案,這檔案在 $CATALINA_HOME/conf/ 內,是整體的web.xml檔案,即是這裡有任何改變都會影響該 Tomcat 所有網頁應用程式。如果您想要更精細的控制,例如某些應用程式關掉,但某些則開啟,就需要以第一個選項來做,建立 index.html檔案。

    找出以下部分:

        <servlet>
            <servlet-name>default</servlet-name>
            <servlet-class>
              org.apache.catalina.servlets.DefaultServlet
            </servlet-class>
            <init-param>
                <param-name>debug</param-name>
                <param-value>0</param-value>
            </init-param>
            <init-param>
                <param-name>listings</param-name>
                <param-value>true</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        

    這是 web.xml 的第一部分,我們關注的選項是:

            <init-param>
                <param-name>listings</param-name>
                <param-value>true</param-value>
            </init-param>
        

    將  <param-value> 改為 false,便可關掉目錄檢視,就是那麼簡單。

     

    5.2 自訂預設頁面

    Tomcat使用的慣例與Apache網頁伺服器相同,index.html 是任何目錄的預設或首頁。有時您可能想改變為 page1.html 或是 JSP 頁面,如以下一樣  now_see_this.jsp:

    要做到這樣,只需開啟網頁程式的 web.xml ,加上以下這些:

        <welcome-file-list>
            <welcome-file>now_see_this.jsp</welcome-file>
            <welcome-file>page1.html</welcome-file>
            <welcome-file>index.htm</welcome-file>
        </welcome-file-list>
        

    要令整個系統改變,可在 $CATALINA_HOME/conf 下修改整體的 web.xml,並將 <welcome-file> 改變指向您所選的檔案。

    posted @ 2005-06-07 15:47 似水流年 閱讀(329) | 評論 (0)編輯 收藏
    僅列出標題
    共3頁: 上一頁 1 2 3 下一頁 
    主站蜘蛛池模板: 毛片无码免费无码播放 | 国产精品亚洲色图| 亚洲人成网站在线观看播放动漫| 亚洲国产日韩一区高清在线| 亚洲桃色AV无码| 国内精品久久久久久久亚洲| 国产综合亚洲专区在线| 亚洲婷婷国产精品电影人久久| 免费一级毛片一级毛片aa| 国产精品自在自线免费观看| 免费一级黄色毛片| 亚洲国产精品尤物YW在线观看| 亚洲午夜成人精品电影在线观看| 亚洲国产成人久久笫一页| 国产性爱在线观看亚洲黄色一级片| 亚洲国产精品丝袜在线观看| 亚洲日本中文字幕一区二区三区| 亚洲AV无码乱码在线观看牲色| 亚洲精品国产自在久久| 久久国产成人亚洲精品影院 | 99在线观看精品免费99| 99久久久国产精品免费蜜臀| 亚洲精品在线免费观看| 成人在线免费看片| 嫩草视频在线免费观看| 四只虎免费永久观看| 亚洲真人日本在线| 亚洲成AV人在线观看天堂无码| 亚洲国产精品热久久| 亚洲国产精品日韩在线| 亚洲av永久无码| sss日本免费完整版在线观看| 国产一级a毛一级a看免费视频 | 国产成人亚洲精品| 性色av极品无码专区亚洲| 免费一级做a爰片久久毛片潮| 成在人线av无码免费高潮水| 99精品视频在线免费观看 | 久久九九久精品国产免费直播| 99精品免费视频| xxxx日本免费|