程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSP代碼運行錯誤的問題及解決方法

JSP代碼運行錯誤的問題及解決方法

編輯:關於JSP

     javax.naming.NameNotFoundException: Name jdbc is not bound in this Context 
    解決方案:META-INF 下context.xml文件的配置出錯或名字引用不到.名字如標簽,只能是context. 

    java.lang.IllegalStateException/Attempt to clear a buffer that’s already been flushed 
    嚴重: Servlet.service() for servlet jsp threw exception 
    java.lang.IllegalStateException 
    解決方案:可以在response.sendRedirec(a.jsp)之後加return或者把路徑變為./a.jsp。不過,都不管用。解決方法是設置buffer的大小:<%@ page buffer="10kb"%> 默認是8kb,自己手動改為10kb之後,沒有錯誤了。 
    ? The type Date is ambiguous 
    原因: 
    <%@ page import="java.sql.*" %> 
    <%@ page import="java.util.*"%> 
    這兩個類中都有Date,系統不知道選哪個了 

    解決方案: 可以用java.util.Date today=new Date();來區分 
    ? (1)MySQL插入時的亂碼:自己的MySQL安裝時默認是用UTF-8的,在JSP中傳入需要插入的數據時,可以用new String(request.getParameter(string).getBytes("ISO8859-1"), "UTF-8");插入後沒有亂碼……連接時用:String url = "jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf-8"; 

    (2)頁面的亂碼:用非英語語言時,容易出現亂碼,特別是在進行form提交表單檢測時,如:“保存”.equals(str)時,有可能不識別,最好的是用隱藏表單提交,value值設為數字即可。如果有多個表單提交,可以用JavaScript檢測設置隱藏表單的值: 
    <script type="text/javascript"> 
    function getAction(num){ 
    document.getElementById("hide").value=num; 

    </script> 
    <form> 
    <input name="action" type="hidden" value="" id="hide"> 
    <input type="submit" onClick="getAction(1)" name="" value="保存" style="width: 70px" /> 
    <input type="submit" onClick="getAction(2)" name="" value="リセット" style="width: 70px" /> 
    <input type="submit" onClick="getAction(3)" name="" value="戻る" style="width: 70px" /> 
    </form> 

    還有就是添加 
    <%@ page lpageEncoding="utf-8" %><!-- shift_jis --> 

    <%@page contentType="text/html;charset=utf-8"%> 
    <% 
    request.setCharacterEncoding("utf-8"); 
    response.setCharacterEncoding("utf-8"); 
    %>也可一定程度防止亂碼。 

    <input type="text" name="name" id="name" value=<%=bean.getName() %> size="12" maxlength="12" />
    如上所示,input通過value屬性來獲得數據庫bean的數據。 
    ? 而換成textarea時,這樣做卻不成。(當然數據庫中有這項數據,你可以用out方法打印出來) 

    問題解決: 
    ? 想到幾個月前,做過一個新聞相關的網站。當時也用到textarea標簽。 
    對照代碼一看才明白過來,示例如下: 
    <textarea type="text" name="contents" > <%=bean.getContents() %> </textarea> 
    即將所需數據放在標簽的中間就可以了!

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved