JavaRush /Java Blog /Random-ID /Minta pengkodean di Spring menggunakan CharacterEncodingF...
Core
Level 35
Екатеринбург

Minta pengkodean di Spring menggunakan CharacterEncodingFilter

Dipublikasikan di grup Random-ID
Halo pria baik! Pendahuluan Ada masalah yang sangat populer - tampilan karakter berbahasa Rusia yang salah di aplikasi web. Saya membaca artikel dan memahami akar kejahatan serta batu sandungannya. Saya menyadari mengapa baris-baris ini diperlukan pada halaman jsp dan pada tahap transfer data apa dalam rantai klien-server- DB : <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Masalah utama saya terletak pada apa yang dijelaskan dalam satu artikel bagus (sumber: Tyts )
Berikut adalah server yang admin bangun. Dan ini merupakan aplikasi web yang berjalan pada server yang dibangun oleh admin. Dan ini merupakan servlet yang merupakan bagian dari aplikasi web yang berjalan pada server yang admin bangun. Atau JSP, yang merupakan servlet yang sama. Dan servlet ini menerima permintaan. Dan itu berisi data. Yang? Satu set byte. Apa yang dibutuhkan servlet? Simbol. Pertanyaan: pengkodean apa yang harus saya gunakan? Perjalanan lain ke HTTP. Data dari formulir ditransmisikan menggunakan metode POST dengan indikasi tipe konten tertentu: Tipe konten: application/x-www-form-urlencoded Secara teoritis, pengkodean data yang dikirimkan juga dapat ditentukan di sini: Tipe konten: aplikasi/ x-www-form- urlencoded; charset=UTF-8 Bagaimanapun, Tomcat mencoba mendapatkannya dari sini. Dalam praktiknya, hanya Opera yang menentukan pengkodeannya. Mungkin akan ada perubahan di kemudian hari, namun untuk saat ini faktanya adalah sebagai berikut: pengkodean data yang masuk tidak diketahui! Dan sesuatu perlu dilakukan mengenai hal ini.
Solusinya adalah dengan menggunakan filter. Ini ditulis dengan baik di sini dan itulah yang saya lakukan (sumber: tyts ) Saya memasukkan kode konfigurasi ini ke web.xml Sekarang semuanya baik-baik saja dan pada dasarnya saya senang, tetapi saya ingin mengkonfigurasi filter ini melalui anotasi Spring , karena saya melakukan semuanya konfigurasi lain dengan menggunakan kelas Java. Dan entah kenapa saya ingin keseragaman. Saya memiliki 2 kelas konfigurasi: satu mengkonfigurasi aplikasi, yang lain mengkonfigurasi konteks aplikasi (injeksi ketergantungan). Ini kode untuk kelas pertama. Saya percaya bahwa konfigurasi filter perlu dimasukkan ke dalam kelas ini, tetapi ada sesuatu yang salah dengan kodenya. Ini adalah pengalaman pertama saya dengan aplikasi web, jadi saya meminta bantuan dari orang yang lebih berpengalaman. Terima kasih. characterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true characterEncodingFilter /* package net.kaa.todolist.config; import org.springframework.web.WebApplicationInitializer; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.servlet.DispatcherServlet; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRegistration; public class AppInitializer implements WebApplicationInitializer { @Override public void onStartup(ServletContext servletContext) throws ServletException { AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext(); appContext.register(ApplicationContextConfig.class); ServletRegistration.Dynamic dispatcher = servletContext.addServlet("SpringDispatcher", new DispatcherServlet(appContext)); dispatcher.setLoadOnStartup(1); dispatcher.addMapping("/"); } }
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION