java - How to get some utf-8 characters using hibernate and spring mvc in database? -
i have developed small server program. when extract tuple database, characters become ÇѱÛÃàÁ¦. modify server.xml. ÇѱÛÃàÁ¦ characters still appear. me. how can correct characters?
this server.xml. (i use apache tomcat 7.0 server.)
<?xml version="1.0" encoding="utf-8"?> <!-- licensed apache software foundation (asf) under 1 or more contributor license agreements. see notice file distributed work additional information regarding copyright ownership. asf licenses file under apache license, version 2.0 (the "license"); may not use file except in compliance license. may obtain copy of license @ http://www.apache.org/licenses/license-2.0 unless required applicable law or agreed in writing, software distributed under license distributed on "as is" basis, without warranties or conditions of kind, either express or implied. see license specific language governing permissions , limitations under license. --><!-- note: "server" not "container", may not define subcomponents such "valves" @ level. documentation @ /docs/config/server.html --><server port="8005" shutdown="shutdown"> <listener classname="org.apache.catalina.startup.versionloggerlistener"/> <!-- security listener. documentation @ /docs/config/listeners.html <listener classname="org.apache.catalina.security.securitylistener" /> --> <!--apr library loader. documentation @ /docs/apr.html --> <listener sslengine="on" classname="org.apache.catalina.core.aprlifecyclelistener"/> <!--initialize jasper prior webapps loaded. documentation @ /docs/jasper-howto.html --> <listener classname="org.apache.catalina.core.jasperlistener"/> <!-- prevent memory leaks due use of particular java/javax apis--> <listener classname="org.apache.catalina.core.jrememoryleakpreventionlistener"/> <listener classname="org.apache.catalina.mbeans.globalresourceslifecyclelistener"/> <listener classname="org.apache.catalina.core.threadlocalleakpreventionlistener"/> <!-- global jndi resources documentation @ /docs/jndi-resources-howto.html --> <globalnamingresources> <!-- editable user database can used userdatabaserealm authenticate users --> <resource auth="container" description="user database can updated , saved" factory="org.apache.catalina.users.memoryuserdatabasefactory" name="userdatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.userdatabase"/> </globalnamingresources> <!-- "service" collection of 1 or more "connectors" share single "container" note: "service" not "container", may not define subcomponents such "valves" @ level. documentation @ /docs/config/service.html --> <service name="catalina"> <!--the connectors can use shared executor, can define 1 or more named thread pools--> <!-- <executor name="tomcatthreadpool" nameprefix="catalina-exec-" maxthreads="150" minsparethreads="4"/> --> <!-- "connector" represents endpoint requests received , responses returned. documentation @ : java http connector: /docs/config/http.html (blocking & non-blocking) java ajp connector: /docs/config/ajp.html apr (http/ajp) connector: /docs/apr.html define non-ssl http/1.1 connector on port 8080 --> <connector uriencoding="utf-8" connectiontimeout="20000" port="8080" protocol="http/1.1" redirectport="8443"/> <!-- "connector" using shared thread pool--> <!-- <connector executor="tomcatthreadpool" port="8080" protocol="http/1.1" connectiontimeout="20000" redirectport="8443" /> --> <!-- define ssl http/1.1 connector on port 8443 connector uses bio implementation requires jsse style configuration. when using apr/native implementation, openssl style configuration required described in apr/native documentation --> <!-- <connector port="8443" protocol="org.apache.coyote.http11.http11protocol" maxthreads="150" sslenabled="true" scheme="https" secure="true" clientauth="false" sslprotocol="tls" /> --> <!-- define ajp 1.3 connector on port 8009 --> <connector uriencoding="utf-8" port="8009" protocol="ajp/1.3" redirectport="8443"/> <!-- engine represents entry point (within catalina) processes every request. engine implementation tomcat stand alone analyzes http headers included request, , passes them on appropriate host (virtual host). documentation @ /docs/config/engine.html --> <!-- should set jvmroute support load-balancing via ajp ie : <engine name="catalina" defaulthost="localhost" jvmroute="jvm1"> --> <engine defaulthost="localhost" name="catalina"> <!--for clustering, please take @ documentation at: /docs/cluster-howto.html (simple how to) /docs/config/cluster.html (reference documentation) --> <!-- <cluster classname="org.apache.catalina.ha.tcp.simpletcpcluster"/> --> <!-- use lockoutrealm prevent attempts guess user passwords via brute-force attack --> <realm classname="org.apache.catalina.realm.lockoutrealm"> <!-- realm uses userdatabase configured in global jndi resources under key "userdatabase". edits performed against userdatabase available use realm. --> <realm classname="org.apache.catalina.realm.userdatabaserealm" resourcename="userdatabase"/> </realm> <host appbase="webapps" autodeploy="true" name="localhost" unpackwars="true"> <!-- singlesignon valve, share authentication between web applications documentation at: /docs/config/valve.html --> <!-- <valve classname="org.apache.catalina.authenticator.singlesignon" /> --> <!-- access log processes example. documentation at: /docs/config/valve.html note: pattern used equivalent using pattern="common" --> <valve classname="org.apache.catalina.valves.accesslogvalve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/> <context docbase="server" path="/jinggumdari" reloadable="true" source="org.eclipse.jst.jee.server:server"/></host> </engine> </service> </server> this web.xml.
<?xml version="1.0" encoding="utf-8"?> <web-app version="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"> <!-- definition of root spring container shared servlets , filters --> <context-param> <param-name>contextconfiglocation</param-name> <param-value>/web-inf/spring/root-context.xml</param-value> </context-param> <!-- creates spring container shared servlets , filters --> <listener> <listener-class>org.springframework.web.context.contextloaderlistener</listener-class> </listener> <!-- processes application requests --> <servlet> <servlet-name>appservlet</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class> <init-param> <param-name>contextconfiglocation</param-name> <param-value>/web-inf/spring/appservlet/servlet-context.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>appservlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <filter> <filter-name>encodingfilter</filter-name> <filter-class>org.springframework.web.filter.characterencodingfilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> <init-param> <param-name>forceencoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> this servlet-context.xml.
<?xml version="1.0" encoding="utf-8"?> <beans:beans xmlns="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemalocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- dispatcherservlet context: defines servlet's request-processing infrastructure --> <!-- enables spring mvc @controller programming model --> <annotation-driven /> <!-- handles http requests /resources/** efficiently serving up static resources in ${webapproot}/resources directory --> <resources mapping="/resources/**" location="/resources/" /> <!-- resolves views selected rendering @controllers .jsp resources in /web-inf/views directory --> <beans:bean class="org.springframework.web.servlet.view.internalresourceviewresolver"> <beans:property name="prefix" value="/web-inf/views/" /> <beans:property name="suffix" value=".jsp" /> </beans:bean> <beans:bean class="org.springframework.web.servlet.view.contentnegotiatingviewresolver"> <beans:property name="favorpathextension" value="true" /> <beans:property name="ignoreacceptheader" value="true" /> <beans:property name="mediatypes"> <beans:map> <beans:entry key="json" value="application/json" /> <beans:entry key="html" value="text/html" /> </beans:map> </beans:property> </beans:bean> <context:component-scan base-package="kr.ac.jbnu.jinggumdari" /> <beans:bean class="org.springframework.beans.factory.annotation.autowiredannotationbeanpostprocessor" /> <beans:bean id="datasource" class="org.apache.commons.dbcp.basicdatasource" destroy-method="close"> <beans:property name="driverclassname" value="com.mysql.jdbc.driver" /> <beans:property name="url" value="jdbc:mysql://localhost:3306/jinggumdari" /> <beans:property name="username" value="root" /> <beans:property name="password" value="mysql1234" /> </beans:bean> <!-- hibernate 4 sessionfactory bean definition --> <beans:bean id="hibernate4annotatedsessionfactory" class="org.springframework.orm.hibernate4.localsessionfactorybean"> <beans:property name="datasource" ref="datasource" /> <beans:property name="annotatedclasses"> <beans:list> <beans:value>kr.ac.jbnu.jinggumdari.model.member</beans:value> <beans:value>kr.ac.jbnu.jinggumdari.model.festival</beans:value> <beans:value>kr.ac.jbnu.jinggumdari.model.festivalimage</beans:value> <beans:value>kr.ac.jbnu.jinggumdari.model.interest</beans:value> <beans:value>kr.ac.jbnu.jinggumdari.model.review</beans:value> <beans:value>kr.ac.jbnu.jinggumdari.model.reviewimage</beans:value> <beans:value>kr.ac.jbnu.jinggumdari.model.search</beans:value> <beans:value>kr.ac.jbnu.jinggumdari.model.routeinfo</beans:value> <beans:value>kr.ac.jbnu.jinggumdari.model.route</beans:value> <beans:value>kr.ac.jbnu.jinggumdari.model.writing</beans:value> </beans:list> </beans:property> <beans:property name="hibernateproperties"> <beans:props> <beans:prop key="hibernate.dialect">org.hibernate.dialect.mysqldialect </beans:prop> <beans:prop key="hibernate.show_sql">true</beans:prop> </beans:props> </beans:property> <beans:property name="packagestoscan" value="com.hibernate.yourpackage" /> </beans:bean> <beans:bean id="memberdao" class="kr.ac.jbnu.jinggumdari.dao.memberdaoimpl"> <beans:property name="sessionfactory" ref="hibernate4annotatedsessionfactory" /> </beans:bean> <beans:bean id="memberservice" class="kr.ac.jbnu.jinggumdari.serviceimplementation.memberserviceimpl"> <beans:property name="memberdao" ref="memberdao"></beans:property> </beans:bean> <beans:bean id="festivaldao" class="kr.ac.jbnu.jinggumdari.dao.festivaldaoimpl"> <beans:property name="sessionfactory" ref="hibernate4annotatedsessionfactory" /> </beans:bean> <beans:bean id="festivalservice" class="kr.ac.jbnu.jinggumdari.serviceimplementation.festivalserviceimpl"> <beans:property name="festivaldao" ref="festivaldao"></beans:property> </beans:bean> <beans:bean id="festivalimagedao" class="kr.ac.jbnu.jinggumdari.dao.festivalimagedaoimpl"> <beans:property name="sessionfactory" ref="hibernate4annotatedsessionfactory" /> </beans:bean> <beans:bean id="festivalimageservice" class="kr.ac.jbnu.jinggumdari.serviceimplementation.festivalimageserviceimpl"> <beans:property name="festivalimagedao" ref="festivalimagedao"></beans:property> </beans:bean> <beans:bean id="interestdao" class="kr.ac.jbnu.jinggumdari.dao.interestdaoimpl"> <beans:property name="sessionfactory" ref="hibernate4annotatedsessionfactory" /> </beans:bean> <beans:bean id="interestservice" class="kr.ac.jbnu.jinggumdari.serviceimplementation.interestserviceimpl"> <beans:property name="interestdao" ref="interestdao"></beans:property> </beans:bean> <beans:bean id="reviewdao" class="kr.ac.jbnu.jinggumdari.dao.reviewdaoimpl"> <beans:property name="sessionfactory" ref="hibernate4annotatedsessionfactory" /> </beans:bean> <beans:bean id="reviewservice" class="kr.ac.jbnu.jinggumdari.serviceimplementation.reviewserviceimpl"> <beans:property name="reviewdao" ref="reviewdao"></beans:property> </beans:bean> <beans:bean id="reviewimagedao" class="kr.ac.jbnu.jinggumdari.dao.reviewimagedaoimpl"> <beans:property name="sessionfactory" ref="hibernate4annotatedsessionfactory" /> </beans:bean> <beans:bean id="reviewimageservice" class="kr.ac.jbnu.jinggumdari.serviceimplementation.reviewimageserviceimpl"> <beans:property name="reviewimagedao" ref="reviewimagedao"></beans:property> </beans:bean> <beans:bean id="routedao" class="kr.ac.jbnu.jinggumdari.dao.routedaoimpl"> <beans:property name="sessionfactory" ref="hibernate4annotatedsessionfactory" /> </beans:bean> <beans:bean id="routeservice" class="kr.ac.jbnu.jinggumdari.serviceimplementation.routeserviceimpl"> <beans:property name="routedao" ref="routedao"></beans:property> </beans:bean> <beans:bean id="routeinfodao" class="kr.ac.jbnu.jinggumdari.dao.routeinfodaoimpl"> <beans:property name="sessionfactory" ref="hibernate4annotatedsessionfactory" /> </beans:bean> <beans:bean id="routeinfoservice" class="kr.ac.jbnu.jinggumdari.serviceimplementation.routeinfoserviceimpl"> <beans:property name="routeinfodao" ref="routeinfodao"></beans:property> </beans:bean> <beans:bean id="searchdao" class="kr.ac.jbnu.jinggumdari.dao.searchdaoimpl"> <beans:property name="sessionfactory" ref="hibernate4annotatedsessionfactory" /> </beans:bean> <beans:bean id="searchservice" class="kr.ac.jbnu.jinggumdari.serviceimplementation.searchserviceimpl"> <beans:property name="searchdao" ref="searchdao"></beans:property> </beans:bean> <beans:bean id="writingdao" class="kr.ac.jbnu.jinggumdari.dao.writingdaoimpl"> <beans:property name="sessionfactory" ref="hibernate4annotatedsessionfactory" /> </beans:bean> <beans:bean id="writingservice" class="kr.ac.jbnu.jinggumdari.serviceimplementation.writingserviceimpl"> <beans:property name="writingdao" ref="writingdao"></beans:property> </beans:bean> <tx:annotation-driven transaction-manager="transactionmanager" /> <beans:bean id="transactionmanager" class="org.springframework.orm.hibernate4.hibernatetransactionmanager"> <beans:property name="sessionfactory" ref="hibernate4annotatedsessionfactory" /> </beans:bean> </beans:beans> and needed more?
first remove line
<%@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%> and add header tag
<meta http-equiv='content-type' content='text/html; charset=utf-8' /> then add web.xml
<filter> <filter-name>encoding-filter</filter-name> <filter-class>org.springframework.web.filter.characterencodingfilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encoding-filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> then add hibernate configuration file into
<bean id="sessionfactory" class="org.springframework.orm.hibernate3.annotation.annotationsessionfactorybean"> <property name="datasource" ref="datasource" /> <property name="hibernateproperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.mysql5dialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> <prop key="hibernate.connection.charset">utf8</prop> <prop key="hibernate.connection.characterencoding">utf8</prop> <prop key="hibernate.connection.useunicode">true</prop> </props> </property>
Comments
Post a Comment