Situasi yang Cocok -> Situasi Kode Berbkled Saat Berpaling Dari JSP Untuk Bertindak, Di Sini Mengambil GBK Sebagai contoh
1. Buat filter untuk pengkodean konversi
Contoh Lokasi File: src.util.setcharacterencodingfilter.java
Salinan kode adalah sebagai berikut:
paket util;
impor java.io.ioException;
impor javax.servlet.filter;
impor javax.servlet.filterchain;
impor javax.servlet.filterconfig;
impor javax.servlet.servletException;
impor javax.servlet.servletrequest;
impor javax.servlet.servletresponse;
impor javax.servlet.unavailable exception;
/**
* Contoh filter yang mengatur pengkodean karakter untuk digunakan dalam parsing
* Permintaan yang masuk
*/
Kelas Publik SetCharacterencodingFilter mengimplementasikan filter {
/**
* Keluarkan filter ini dari layanan.
*/
public void hancurkan () {
}
/**
* Pilih dan atur (jika ditentukan) pengkodean karakter untuk digunakan
* Menafsirkan parameter permintaan untuk permintaan ini.
*/
public void dofilter (permintaan servletRequest, respons servletResponse,
Rantai filterchain) melempar ioException, servletException {
request.setcharacterencoding ("GBK");
// Lewati kontrol ke filter berikutnya
rantai.dofilter (permintaan, respons);
}
public void init (filterconfig filterconfig) melempar servletException {
}
}
2. Ubah Web.xml dan tambahkan 2 filter sebelum pemetaan filterdispatcher Struts
Salinan kode adalah sebagai berikut:
<? Xml Version = "1.0" encoding = "UTF-8"?>
<versi web-app = "2.5"
xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance"
xsi: schemalocation = "http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd ">
<listener>
<listener-class> org.springframework.web.context.contextLoaderListener </listener-class>
</engeaner>
<nilter>
<filter-name> Setel Karakter Pengkodean </filter-name>
<STERFERCLASS> util.setcharacterencodingfilter </filter-class>
</tilter>
<STERFERTER-MAPPING>
<filter-name> Setel Karakter Pengkodean </filter-name>
<rerl-pola>/*</url-pola>
</filter-Mapping>
<nilter>
<filter-name> struts-cleanup </filter-name>
<nilter-class> org.apache.struts2.dispatcher.acticleContextCleanup </filter-class>
</tilter>
<STERFERTER-MAPPING>
<filter-name> struts-cleanup </filter-name>
<rerl-pola>/*</url-pola>
</filter-Mapping>
<nilter>
<filter-name> struts2 </filter-name>
<nilter-class> org.apache.struts2.dispatcher.filterdispatcher </filter-class>
</tilter>
<STERFERTER-MAPPING>
<filter-name> struts2 </filter-name>
<rerl-pola>/*</url-pola>
</filter-Mapping>
</web-app>
3. HEADER JSP Anda seharusnya
<%@ halaman bahasa = "java" pageEncoding = "gbk"%>
4. Ubah Pengaturan Pengkodean Default di Struts.xml
Salinan kode adalah sebagai berikut:
<Struts>
<name konstan = "struts.i18n.encoding" value = "gbk"> </constant>
...
...
...
</struts>
Pada dasarnya, ini dapat menyelesaikan masalah karakter yang paling masuk yang kacau
PS: Jika database mengekstraksi karakter yang kacau, seperti MySQL, konfirmasi bahwa karakter dalam database Anda adalah GBK, dan string koneksi menentukan pengkodean karakter.
<nama properti = "url" value = "jdbc: mysql: // localhost/database? UseUnicode = true & characterencoding = gbk"> </propert>