私はj2eeでウェブサイトを開発しました。開発環境で文字エンコードに問題はありませんでしたが、私がopenshift(jboss 7、mysql 5.5)にアプリケーションをデプロイすると、UTFの書式設定が機能していないようです。私はサーブレットが文字をデコードできないことがわかるので、サーバー側でログオンしようとしましたが、jboss環境問題のようです。コードの後ろにあるフロント/バックエンドのコードを見つけてください。すでに試したことを示しています。Openshift JBoss文字エンコーディング
おかげで、
<form role="form" id="createadform" name="createadform" action="createads" method="POST" enctype="multipart/form-data">
<div class="row" >
<div class="col-md-6 col-md-offset-3" >
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">Aşağıdaki formu doldurarak ilanınızı oluşturabilirsiniz.</h3>
</div>
<div class="panel-body ">
<div class="col-md-6" >
<div class="form-group has-feedback" style="width: 100%">
<label for="isim">Başlık (En fazla 25 karakter)</label>
<input type="text" class="form-control" id="headline" name="headline" maxlength="25" required>
</div>
<div class="form-group has-feedback">
<label for="minSalary">Maaş Alt Sınırı</label>
<input type="number" class="form-control" id="minsalary" name="minsalary" required>
</div>
<div class="form-group has-feedback">
<label for="maxSalary">Maaş Üst Sınırı</label>
<input type="number" class="form-control" id="maxsalary" name="maxsalary" required>
</div>
<div class="form-group has-feedback">
<label for="currency">Para Birimi</label>
<select class="form-control" id="currency" name="currency">
<c:forEach var="currency" items="${currencies}">
<option name="currency" value=${currency.currencyid}>${currency.currencydescription} </option>
</c:forEach>
</select>
</div>
<div class="form-group has-feedback" >
<label for="city">Şehir</label>
<select class="form-control" id="city" name="city">
<c:forEach var="city" items="${cities}">
<option name="city" value=${city.plateno}>${city.name} </option>
</c:forEach>
</select>
</div>
<div class="form-group has-feedback">
<label for="worktype">İş tipi</label>
<select class="form-control" id="worktype" name="worktype">
<c:forEach var="worktype" items="${worktypes}">
<option name="worktype" value=${worktype.worktypeid}>${worktype.name} </option>
</c:forEach>
</select>
</div>
<div class="col-md-6 text-center">
<input type="file" name="resim" id="resim" accept="image/*"/>
</div>
</div>
<div class="col-md-6" >
<div class="form-group has-feedback">
<label for="freetext">İş Tanımı</label>
<textarea class="form-control" style="height: 300px;" id="freetext" name="freetext"></textarea>
</div>
<button type="submit" style="float: right; " class="btn btn-info ">Kaydı oluştur</button>
</div>
</div>
</div>
</div>
</div>
</form>
は、私はまた、ファイルの拡張子を検証するためのjavascriptを持っている:
<script>
$("#createadform").submit(function(e){
e.preventDefault();
var resim = $('resim');
var headline = $('headline');
var minsalary = $('minsalary');
var maxsalary = $('maxsalary');
var currency = $('currency');
var city = $('city');
var worktype = $('worktype');
var freetext = $('freetext');
if ($('#resim').hasExtension(['.jpg', '.jpeg', '.bmp', '.gif', '.png'])) {
this.submit();
}else{
alert("Seçeceğiniz resim için 'jpg, jpeg,bmp,gif ve png' formatlarını kullanabilirsiniz.");
}
});
</script>
私のサーブレットコード:
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
Part resim = request.getPart("resim");
InputStream is = resim.getInputStream();
String resimFilename = FileUtilities.getFileName(resim);
String headline = request.getParameter("headline");
String freetext = request.getParameter("freetext");
System.out.println("FREETEXT in servlet : " + freetext);
int minsalary = Integer.parseInt(request.getParameter("minsalary"));
int maxsalary = Integer.parseInt(request.getParameter("maxsalary"));
int currencyId = Integer.parseInt(request.getParameter("currency"));
int cityId = Integer.parseInt(request.getParameter("city"));
int worktype = Integer.parseInt(request.getParameter("worktype"));
Person user = (Person) request.getSession().getAttribute("user");
int employeeId = user.getPersonid();
私は、スタンドアロンに次のプロパティを追加しました。 xmlファイル:
<system-properties>
<property name="org.apache.coyote.http11.Http11Protocol.COMPRESSION" value="on"/>
<property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/>
<property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
</system-properties>
その後、私はこれらのプロパティをファイルの最後に移動し、jbossはその時間を開始できませんでした。
export JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.connector.URI_ENCODING=\"UTF-8\" \
-Dorg.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING=\"true\""
EDIT 1:
はまた、私は.openshiftでpre_start_jbossas-7ファイル\フォルダをaction_hooks、その中に以下の行を追加して作成している私も、このソリューションを試してみました
を、それはなかったのいずれかの仕事。
Not able to set options in JAVA_OPTS in JBoss openshift
EDIT 2:
私はアクションフックスクリプトのセクションを読み、それらを実行可能にし、再び展開しようとした、まだ私は問題を解決したいと思っていた