2017年6月19日

          jsp傳遞中文亂碼解決方法

          request.setCharacterEncoding("UTF-8")頁面也需要設置轉碼的:
          頁面:(.jsp)
          <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
          response.setContentType("text/html;charset=UTF-8");

          處理文件:(.java)
          轉碼的三種方法:
          A 接受參數時進行編碼轉換

          String str = new String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8"); 這樣的話,每一個參數都必須這樣進行轉碼。很麻煩。但確實可以拿到漢字。

          B 在請求頁面上開始處,執行請求的編碼代碼, request.setCharacterEncoding("UTF-8"),把提交內容的字符集設為UTF-8。這樣的話,接受此參數的頁面就不必在轉碼了。直接使用
          String str = request.getParameter("something");即可得到漢字參數。但每頁都需要執行這句話。

          這個方法也就對post提交的有效果,對于get提交和上傳文件時的enctype="multipart/form-data"是無效的。稍后下面單獨對這個兩個的亂碼情況再進行說明。

          C 為了避免每頁都要寫request.setCharacterEncoding("UTF-8"),建議使用過濾器對所有jsp進行編碼處理。

          新手可以暫時不考慮過濾器的方法,過濾器一般都會涉及到配置開發,要修改web.xml,還算是比較麻煩的,建議接觸java一段時間后再考慮使用過濾器的方法。或者如果應用了struts框架,可以查看struts的轉碼過濾器配置。
          實際例子:
          <%request.setCharacterEncoding("UTF-8")%>放在jsp<head></head>之間
          jspforward.jsp
          <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <% request.setCharacterEncoding("UTF-8");%> </head> <body> <jsp:forward page="/forwardresult.jsp"> <jsp:param name="name" value="李海"></jsp:param> <jsp:param name="age" value="29"></jsp:param> </jsp:forward> </body> </html>
          jspresult.jsp
          <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <%=request.getParameter("name")%> <%=request.getParameter("age")%> </body> </html>


          posted @ 2017-06-19 14:46 藍胖 閱讀(327) | 評論 (0)編輯 收藏

          jsp訪問mysql數據庫 class not found

          遇到問題:com.mysql.jdbc.Driver class not found 我在項目中的WEB-INF/lib中添加mysql-connector-java-5.6-bin jar包后在eclipse中選中項目刷新,在lib中選中mysql-connector-java-5.6-bin jar右鍵點擊addbulidPath成功解決問題 完整的代碼如下:

          <%@page import="java.sql.DriverManager" import="java.sql.Connection" import="java.sql.Statement" 
          import="java.sql.ResultSet" %>
          <%@ page language="java" contentType="text/html; charset=UTF-8"
              pageEncoding="UTF-8"%>
          <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          <title>Insert title here</title>
          </head>
          <body>
          <%
          Class.forName("com.mysql.jdbc.Driver");
          Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123456");
          Statement stmt=conn.createStatement();
          String sql="select * from person ";
          ResultSet rs=stmt.executeQuery(sql);
          %>
          <table bgcolor="green" border="1">
          <tr>
          <td>id</td>
          <td>name</td>
          <td>sex</td>
          <td>age</td>
          </tr>
          <%
          while(rs.next()){
          %>
          <tr>
          <td><%=rs.getString("id") %></td>
          <td><%=rs.getString("name") %></td>
          <td><%=rs.getString("sex") %></td>
          <td><%=rs.getString("age")%></td>
          </tr>
          <% }%>
          </table>
          </body>
          </html>

          posted @ 2017-06-19 14:46 藍胖 閱讀(220) | 評論 (0)編輯 收藏

          Eclipse 一直提示 loading descriptor for 解決

          第一次沒有找到所以截圖下來
          你Eclipse左側的Project Explorer 最右上角有一個小鈕,鼠標移上去時提示"View Menu".




          你點一下,在彈出的上下文菜單中選擇"Customize View..." 彈出一個對話框.



          你選擇: Content 選項卡,在里面把沒用的去掉就行了 J2EE WEB loading descriptor .

          posted @ 2017-06-19 14:45 藍胖 閱讀(501) | 評論 (0)編輯 收藏

          解決MyEclipse吃內存,讓MyEclipse速度飛起來

          前言:MyEclipse5.5 大小 139M;MyEclipse6.5 大小 451M;MyEclipse7.0 大小 649M!下載服務器又是國外的。。。下載速度累人也就罷了,只要你工作性能一流。不幸的是,MyEclipse 屬于狂吃內存的主,特別是 MyEclipse7.0 運行起來,基本上不用干其他工作了,它是一會Quick update,一會 updating indexes ,你耐著性子等它 update 完,它老人家又開始自動 validation 了!

          實在忍無可忍,作者收集了一些關于解決 MyEclipse 的耗內存的辦法,經本人測試非常有效,共享出來,希望可以方便更多的朋友。

          1 老是彈出Quick update error 、關閉myeclipse的Quick Update自動更新功能


          這個問題的解決辦法是關閉自動更新

          Windows > Preferences > MyEclipse Enterprise Workbench > Community Essentials, 
          把選項 "Search for new features on startup"的前勾去掉即可。

          2 關閉updating indexes

          Window > Preferences > Myeclipse Enterprise Workbench > Maven4Myeclipse > Maven>禁用Download repository index updates on startup 。

          3 關閉MyEclipse的自動validation

          validation有一堆,什么xml、jsp、jsf、js等等,我們沒有必要全部都去自動校驗一下,只是需要的時候才會手工校驗一下,速度立馬提升好幾個檔次

          windows > perferences > myeclipse > validation 
          將Build下全部勾取消

          如果你需要驗證某個文件的時候,我們可以單獨去驗證它。方法是,在需要驗證的文件上( 右鍵 -> MyEclipse -> Run Validation 。

          4 啟動優化,關閉不需要使用的模塊

          一個系統20%的功能往往能夠滿足80%的需求,MyEclipse也不例外,我們在大多數時候只需要20%的系統功能,所以可以將一些不使用的模塊禁止 加載啟動。

          Window > Preferences > General > Startup andy Shutdown 在這里列出的是MyEclipse啟動時加載的模塊 我這里只讓它加載tomcat5 勾選 MyEclipse EASIE Tomcat 5 。

          怎樣才能知道哪些啟動項有用呢?我現在把我知道的啟動項用處說一下,還有很多不懂的,希望大家懂的回復在下面啊: 
          WTP :一個跟myeclipse差不多的東西,主要差別是 WTP 是免費的,如果使用myeclipse,這個可以取消 
          Mylyn:組隊任務管理工具,類似于 CVS ,以任務為單位管理項目進度,沒用到的可以取消 
          Derby:一種保存成 jar 形式的數據庫,我沒用到,取消 
          一大排以 MyEclipse EASIE 打頭的啟動項:myeclipse 支持的服務器,只選自己用的,其他取消,比如我只選了tomcat 。

          5 去掉MyEclipse的拼寫檢查(如果你覺的有用可以不去)

          拼寫檢查會給我們帶來不少的麻煩,我們的方法命名都會是單詞的縮寫,他也會提示有錯,所以最好去掉,沒有多大的用處

           Window > perferences > General >  Editors > Text Editors > Spelling > 將Enable spell checking復選框的勾選去掉。

          6 去掉MyEclipse繁雜的自帶插件自動加載項


           Window > perferences > General > Startup and Shutdown > 將Plug-ins activated on startup 中的復選框有選擇性的勾選去掉。

          7 修改MyEclipse編輯JSP頁面時的編輯工具  


           Window > perferences > General > Editors > File Associations > 
            在File types 中選擇 *.jsp > 在Associated editors 中將"MyEclipse JSP Editor"設置為默認。

          8 修改MyEclipse安裝目錄的eclipse.ini文件,加大JVM的非堆內存

          具體內容如下:
           -clean
           -showsplash
           com.genuitec.myeclipse.product.ide
           --launcher.XXMaxPermSize
           256m
           -vmargs
           -Xms128m
           -Xmx512m
           -Duser.language=en 
           -XX:PermSize=128M 
           -XX:MaxPermSize=256M

          把下面的那個 -XX:MaxPermSize 調大,比如 -XX:MaxPermSize=512M,再把 -XX:PermSize 調成跟 -XX:MaxPermSize一樣大

          posted @ 2017-06-19 14:43 藍胖 閱讀(1173) | 評論 (0)編輯 收藏

          an internal error occurred during building workspace錯誤

          Eclipse導入了一個比較大的項目,出現了an internal error occurred during building workspace錯誤。

          網上搜了一下,據說是內存溢出問題。可以通過修改eclipse.ini文件解決,

           

          優化之后的ini文件內容:

          -startup
          plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
          --launcher.library
          plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810
          -product
          org.eclipse.epp.package.java.product
          --launcher.defaultAction
          openFile
          --launcher.XXMaxPermSize
          256M

          -showsplash
          org.eclipse.platform
          --launcher.XXMaxPermSize
          256m

          --launcher.defaultAction
          openFile

          -vm
          C:\java\1.6\bin

          -vmargs
          -Dosgi.requiredJavaVersion=1.5
          -Xms40m
          -Xmx512m


          以下為查找得的一些資料,解釋我們在修改的參數是什么意思。


                  1.堆(Heap)和非堆(Non-heap)內存
          按照官方的說法:“Java 虛擬機具有一個堆,堆是運行時數據區域,所有類實例和數組的內存均從此處分配。堆是在 Java 虛擬機啟動時創建的。”“在JVM中堆之外的內存稱為非堆內存(Non-heap memory)”。可以看出JVM主要管理兩種類型的內存:堆和非堆。簡單來說堆就是Java代碼可及的內存,是留給開發人員使用的;非堆就是JVM留給自己用的,所以方法區、JVM內部處理或優化所需的內存(如JIT編譯后的代碼緩存)、每個類結構(如運行時常數池、字段和方法數據)以及方法和構造方法的代碼都在非堆內存中。

                  2.堆內存分配
                 JVM初始分配的內存-Xms指定,默認是物理內存的1/64;JVM最大分配的內存-Xmx指定,默認是物理內存的1/4。默認空余堆內存小于40%時,JVM就會增大堆直到-Xmx的最大限制;空余堆內存大于70%時,JVM會減少堆直到-Xms的最小限制。因此服務器一般設置-Xms、-Xmx相等以避免在每次GC 后調整堆的大小。

                  3.非堆內存分配
          JVM使用-XX:PermSize設置非堆內存初始值,默認是物理內存的1/64;由XX:MaxPermSize設置最大非堆內存的大小,默認是物理內存的1/4。

                  4.JVM內存限制(最大值)
          首先JVM內存限制于實際的最大物理內存,假設物理內存無限大的話,JVM內存的最大值跟操作系統有很大的關系。簡單的說就32位處理器雖然可控內存空間有4GB,但是具體的操作系統會給一個限制,這個限制一般是2GB-3GB(一般來說Windows系統下為1.5G-2G,Linux系統下為2G-3G),而64bit以上的處理器就不會有限制了。

                  舉例說明含義:
                  -Xms128m 表示JVM Heap(堆內存)最小尺寸128MB,初始分配
                  -Xmx512m 表示JVM Heap(堆內存)最大允許的尺寸256MB,按需分配。

              說明:如果-Xmx不指定或者指定偏小,應用可能會導致java.lang.OutOfMemory錯誤,此錯誤來自JVM不是Throwable的,無法用try...catch捕捉。

                  PermSize和MaxPermSize指明虛擬機為java永久生成對象(Permanate generation)如,class對象、方法對象這些可反射(reflective)對象分配內存限制,這些內存不包括在Heap(堆內存)區之中。
                  -XX:PermSize=64MB 最小尺寸,初始分配 
                   -XX:MaxPermSize=256MB 最大允許分配尺寸,按需分配
                   過小會導致:java.lang.OutOfMemoryError: PermGen space
                    MaxPermSize缺省值和-server -client選項相關。-server選項下默認MaxPermSize為64m
                    -client選項下默認MaxPermSize為32m

                  PS:不同廠家的jdk垃圾回收算法不一樣。在sun的jdk下,Xms和Xmx設置一樣,可以減輕伸縮堆大小帶來的壓力,但在ibm的jdk下面,設置為一樣會增大堆碎片產生的幾率。

                  下面再簡單的整理一下優化MyEclipse速度的主要方法:
                  1.修改myeclipse.ini。
                  2.取消自動validation
                  3.勾掉無用插件。
                  4.修改啟動加載模塊
           下面附上詳細的優化MyEclipse速度方法:(轉載
                  http://yufenfei.javaeye.com/blog/376464
                  http://blog.csdn.net/defonds/archive/2009/07/10/4338782.aspx
                  http://zhangpengshou.javaeye.com/blog/198476

          posted @ 2017-06-19 14:38 藍胖 閱讀(288) | 評論 (0)編輯 收藏

          jsp鏈接mysql數據庫

          遇到問題:com.mysql.jdbc.Driver class not found 我在項目中的WEB-INF/lib中添加mysql-connector-java-5.6-bin jar包后在eclipse中選中項目刷新,在lib中選中mysql-connector-java-5.6-bin jar右鍵點擊addbulidPath成功解決問題 完整的代碼如下:

          <%@page import="java.sql.DriverManager" import="java.sql.Connection" import="java.sql.Statement" 
          import="java.sql.ResultSet" %>
          <%@ page language="java" contentType="text/html; charset=UTF-8"
              pageEncoding="UTF-8"%>
          <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          <title>Insert title here</title>
          </head>
          <body>
          <%
          Class.forName("com.mysql.jdbc.Driver");
          Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123456");
          Statement stmt=conn.createStatement();
          String sql="select * from person ";
          ResultSet rs=stmt.executeQuery(sql);
          %>
          <table bgcolor="green" border="1">
          <tr>
          <td>id</td>
          <td>name</td>
          <td>sex</td>
          <td>age</td>
          </tr>
          <%
          while(rs.next()){
          %>
          <tr>
          <td><%=rs.getString("id") %></td>
          <td><%=rs.getString("name") %></td>
          <td><%=rs.getString("sex") %></td>
          <td><%=rs.getString("age")%></td>
          </tr>
          <% }%>
          </table>
          </body>
          </html>

          posted @ 2017-06-19 14:33 藍胖 閱讀(160) | 評論 (0)編輯 收藏

          僅列出標題  
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 大同市| 呼和浩特市| 容城县| 楚雄市| 孟州市| 郧西县| 祁东县| 花莲县| 会昌县| 安塞县| 平陆县| 广州市| 姜堰市| 荣成市| 金堂县| 汝州市| 佛山市| 齐齐哈尔市| 孝昌县| 平和县| 莲花县| 肃宁县| 白朗县| 长乐市| 崇信县| 九江市| 桐梓县| 迁西县| 澄江县| 新绛县| 嘉善县| 菏泽市| 饶阳县| 枞阳县| 噶尔县| 五原县| 山东| 昌黎县| 莫力| 卓资县| 霍林郭勒市|