一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - javaBean的基礎知識及常見亂碼解決方法

javaBean的基礎知識及常見亂碼解決方法

2020-08-22 10:57Java教程網 Java教程

這篇文章主要介紹了javaBean的基礎知識及常見亂碼解決方法的相關資料,需要的朋友可以參考下

javaBean的基礎知識及常見亂碼解決方法

亂碼問題應該是做javaWeb開發人員都遇到過的問題吧,這個問題當時還影響了我學習Java的想法,甚至有過想放棄的想法,沒辦法,當時年輕,呵呵。其實產生亂碼問題的原因有很多,解決亂碼的問題也有很多,現在就一一來看一下:

出現亂碼的地方大致可以分為以下三種:

1 jsp頁面中
2 jsp頁面之間相互傳參的參數
3 與數據庫中數據的存取

解決方案大致可以分為三種:

  1 出現在jsp頁面中,是由于沒有設置jsp頁面的中文字符編碼。
  2 出現在jsp頁面之間相互傳參,是由于參數沒有設置正確的字符編碼。
  3 以上2個問題解決了,那么存到數據庫中,自然就不存在亂碼。除非你對存入到數據庫里的數據再次進行編碼。

具體的解決方法:

1.在表單頁面頭部設置字符編碼為utf-8

?
1
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

加上這句解決jsp頁面中的中文亂碼顯示,tomcat編譯完后向客戶端輸出的html文件不是采用中文編碼,所以會導致亂碼產生。

 2.設置頁面請求和回應的編碼:

?
1
2
<%request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8"); %>

加上這句解決jsp頁面中的中文參數傳遞亂碼。把瀏覽器默認使用的編碼設置為“UTF-8”發送請求參數。

3.String(request.getParameter("name").getBytes("ISO8859_1"),"utf-8");這句的意思是,把傳來的參數全部編碼轉換成utf-8,這樣做的缺點是每次傳來一個參數都要這樣寫,很麻煩。

同樣可通過設置server.xml配置文件來實現。

?
1
2
3
4
5
6
7
8
9
10
11
12
< Connector
port ="8080"
maxHttpHeaderSize ="8192"
maxThreads ="150"
 minSpareThreads ="25"
maxSpareThreads ="75"
enableLookups ="false"
 redirectPort ="8443"
acceptCount ="100"
connectionTimeout ="20000"
 disableUploadTimeout ="true"  
URIEncoding ="utf-8"/> 

但是這樣就應用到整個webapp中去了。

4.還可以修改web.xml文件,配置一個過濾器。其原理都一樣,只是換種方式而已

1.編寫過濾器類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package org.RN.util;
 
import java.io.IOException;
 
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
 
public class Encoding implements Filter {
  @SuppressWarnings("unused")
  private FilterConfig config=null;
  String encoding=null;
 public void destroy() {
 this.encoding=null;
 this.config=null;
 
 }
 
 public void doFilter(ServletRequest request, ServletResponse response,
  FilterChain chain) throws IOException, ServletException {
   if(encoding!=null)
   request.setCharacterEncoding(encoding);
   chain.doFilter(request, response);
    
 
 }
 
 public void init(FilterConfig arg0) throws ServletException {
 this.config=arg0;
 this.encoding=arg0.getInitParameter("encoding");
 
 }
 
}

 2.在web.xml配置

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<filter>
 <description>緩存過濾</description>
 <filter-name>Encoding </filter-name>
 <filter-class>
  filter.Encoding
 </filter-class>
 </filter>
 <filter-mapping>
 <filter-name>Encoding </filter-name>
 <url-pattern>*</url-pattern>
 </filter-mapping>
 
 
</filter>

5.還有一種常見的亂碼問題就是下載時出現文件名亂碼

原來處理下載的代碼如下:

response.setHeader("Content-Disposition", "attachment; filename=" + java.NET.URLEncoder.encode(fileName, "UTF-8"));
URLEncoder類包含將字符串轉換為application/x-www-form-urlencoded MIME 格式的靜態方法。

URLDecoder與URLEncoder 類相對應的URLDecoder 類有兩種靜態方法。它們解碼以x-www-form-url-encoded這種形式編碼的string。也就是說,它們把所有的加號(+)轉換成空格符,把所有的%xx分別轉換成與之相對應的字符:   

       JavaBean 是一種JAVA語言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,并且具有無參數的構造器。JavaBean 通過提供符合一致性設計模式的公共方法將內部域暴露成員屬性。眾所周知,屬性名稱符合這種模式,其他Java 類可以通過自身機制發現和操作這些JavaBean 屬性。

         JavaBean的任務就是: “Write once, run anywhere, reuse everywhere”,即“一次性編寫,任何地方執行,任何地方重用”。這個任何實際上就是要解決困擾軟件工業的日益增加的復雜性,提供一個簡單的、緊湊的和優秀的問題解決方案。 

        JavaBean 的范圍 Scope 是一個具有生命時間的變量。JavaBean的范圍在<jsp:useBean scope=”….>標志中右邊進行表示。將產生一個JavaBean的快捷參考。 說明:jsp服務器引擎將剝離<jsp。。。。標記。并且在最終用戶的瀏覽器上無法顯示實際代碼。   

存在下面四種范圍:頁面page、請求request、對話session、應用application

對話范圍:

  對話范圍的JavaBean 主要應用于跨多個頁面和時間段: 例如填充 用戶信息。 添加信息并且接受回饋,保存用戶最近執行頁面的軌跡。對話范圍JavaBean保留一些和用戶對話 ID 相關的信息。這些信息來自臨時的對話cookie,并在當用戶關閉瀏覽器時,這個cookie將從客戶端和服務器刪除。

頁面/請求范圍:

  頁面和請求范圍的JavaBean有時類似表單 的bean , 這是因為 他們大都用于處理表單。表單需要很長的時間來處理用戶的輸入,通常情況下用于頁面接受HTTP/POST或者GET請求。另外頁面和請求范圍的bean可以用于減少大型站點服務器上的負載,如果使用對話bean,耽擱的處理就可能會消耗掉很多資源。

應用:

  應用范圍通常應用于服務器的部件,例如 JDBC 連接池、應用監視、用戶計數和其他參與用戶行為的類。 在Bean中限制HTML的產生: 理論上,JavaBean 將不會產生任何HTML,因為這是jsp層負責的工作;然而,為動態消息提供一些預先準備的格式是非常有用的。產生的HTML將被標注的 JavaBean方法返回。  

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲国产精品免费在线观看 | 青青草原国产一区二区 | 无遮掩60分钟从头啪到尾 | 免费观看俄罗斯特黄特色 | 成人午夜影院在线观看 | 久久综合亚洲色hezyo | 亚洲色影 | 久久精品观看 | 无限资源在线观看完整版免费下载 | 91精品国产综合久久香蕉 | 国产精品亚洲精品观看不卡 | 免费久久久久 | 久久99热狠狠色一区二区 | 日本在线国产 | 黑帮少爷爱上我第8集在线观看 | 吉川爱美与黑人解禁 | 喷潮女王cytherea全部视频 | 欧美不卡一区二区三区免 | 国产成人性色视频 | 精品第一国产综合精品蜜芽 | 欧美一区二区三区免费不卡 | 色欧美亚洲 | 四虎免费看黄 | 俄罗斯一级毛片免费播放 | 亚洲高清影院 | 美女脱了内裤让男桶爽 | 激情另类国内一区二区视频 | 2021日本三级理论影院 | 日韩精选 | 亚洲风情无码免费视频 | 亚洲欧美天堂综合久久 | 91国语自产拍在线观看 | 亚洲精品久久久久久婷婷 | 99久久免费国内精品 | 色综合综合色 | 国产福利自产拍在线观看 | 天天综合五月天 | 美女校花被调教出奶水 | 国产精品久久99 | 大乳一级一区二区三区 | 三级黄色片在线观看 |