JavaRush /Java Blog /Random-TL /Humiling ng pag-encode sa Spring gamit ang CharacterEncod...
Core
Antas
Екатеринбург

Humiling ng pag-encode sa Spring gamit ang CharacterEncodingFilter

Nai-publish sa grupo
Hello magandang tao! Panimula Mayroong isang napaka-tanyag na problema - hindi tamang pagpapakita ng mga character sa wikang Ruso sa isang web application. Binasa ko ang mga artikulo at naunawaan ko ang ugat ng kasamaan at ang mga hadlang. Napagtanto ko kung bakit kailangan ang mga linyang ito sa mga pahina ng jsp at sa anong mga yugto ng paglilipat ng data sa chain ng client-server- DB : <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Ang aking pangunahing problema ay nasa kung ano ang inilarawan sa isang magandang artikulo (pinagmulan: Tyts )
Narito ang server na binuo ng admin. At ito ay isang web application na tumatakbo sa isang server na binuo ng admin. At ito ay isang servlet na bahagi ng isang web application na tumatakbo sa isang server na binuo ng admin. O JSP, na parehong servlet. At ang servlet na ito ay tumatanggap ng isang kahilingan. At naglalaman ito ng data. alin? Isang hanay ng mga byte. Ano ang kailangan ng isang servlet? Mga simbolo. Tanong: anong encoding ang dapat kong gamitin? Isa pang iskursiyon sa HTTP. Ang data mula sa form kapag gumagamit ng POST method ay ipinapadala na nagsasaad ng isang partikular na uri ng nilalaman: Content-type: application/x-www-form-urlencoded Sa teoryang, ang pag-encode ng ipinadalang data ay maaari ding tukuyin dito: Content-type: application/ x-www-form- urlencoded; charset=UTF-8 Sa anumang kaso, sinusubukang makuha ito ng Tomcat mula rito. Sa pagsasagawa, tanging ang Opera ang tumutukoy sa pag-encode. Marahil ay may magbabago sa hinaharap, ngunit sa ngayon ang mga katotohanan ay ang mga sumusunod: ang pag-encode ng papasok na data ay hindi alam! At may kailangang gawin tungkol dito.
Ang solusyon ay gumamit ng isang filter. Mahusay ang pagkakasulat dito at iyon ang ginawa ko (source: tyts ) Inilagay ko ang code sa pag-configure na ito sa web.xml Ngayon ay maayos na ang lahat at masaya ako, ngunit gusto kong i-configure ang filter na ito sa pamamagitan ng Spring annotation , dahil isinasagawa ko ang lahat iba pang mga pagsasaayos sa paggamit ng mga klase ng java. At kahit papaano gusto ko ng pagkakapareho. Mayroon akong 2 klase ng pagsasaayos: ang isa ay nagko-configure sa aplikasyon, ang isa ay nagko-configure sa konteksto ng aplikasyon (dependency injection). Narito ang code para sa unang klase. Naniniwala ako na ang pagsasaayos ng filter ay kailangang ipasok sa klase na ito, ngunit may isang bagay na medyo mali sa code. Ito ang aking unang karanasan sa isang web application, kaya humihingi ako ng tulong sa mga mas may karanasang tao. Salamat. 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("/"); } }
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION