Permalink
Browse files

düzenlemeler yapıldı, cache kullanılarak, dosya boyutu sorunu çözüldü

  • Loading branch information...
Ecem Ecem
Ecem authored and Ecem committed Aug 27, 2011
1 parent 56d312f commit 9170d71312b5fb873c20ef9503a66051909ce61c
View
@@ -2,13 +2,14 @@ h1. KULLANIM KLAVUZU
h2. Projenin Çalıştırılması:
-Bu uygulama bir Play uygulamasıdır. Bu nedenle, bu uygulamayı çalıştırmanız için öncelikle bir java derleyicisine ve play framework[1] kurulumuna sahip olmanız gerekir.
+Bu uygulama bir Play uygulamasıdır. Bu nedenle, bu uygulamayı çalıştırmanız için öncelikle bir java derleyicisine ve play framework[1] kurulumuna sahip olmanız gerekir.
Projeyi bilgisayarınıza klonladıktan sonra, komut satırından projeyi klonladığınız dizine, *cd* (cd DosyaYolu) komutuyla ulaşın. Derleyici olarak, Eclipse IDE’sini kullanıyorsanız; Play’in bulunduğu dizini yazıp, *play clean, play deps ve play eclipsify* komutlarını sırayla uygulayın. Proje, bu aşamada Eclipse’e import edilmeye hazır.
Artık Eclipse’i açıp, Import ile klonladığınız bu projeyi seçererek, çalıştırabilirsiniz.
Herhangi bir IDE’yi kullanmadan çalıştırmak istiyorsanız; yine komut satırından cd komutuyla projenin bulunduğu dizine ulaştıktan sonra, play’in bulunduğu dizinini yazıp *play run* komutu ile projeyi çalıştırabilirsiniz.
+Projede kullanılan Zemberek Kütüphaneleri, zemberek klasörünün içinde bulunmaktadır, uygulamayı çalıştırabilmek için bu kütüphaneleri projenin Libraries kısmına eklemeniz gerekir.
Projeyi çalıştırdıktan sonra, kullandığınız browser’dan "http://localhost:9000/":http://localhost:9000/ adresine gidip uygulamayı görebilirsiniz.
@@ -20,6 +20,7 @@
import net.zemberek.yapi.Kelime;
import play.Logger;
+import play.cache.Cache;
import play.data.validation.Required;
import play.mvc.Controller;
@@ -38,6 +39,8 @@
import java.io.InputStream;
import java.io.FileInputStream;
+import utils.*;
+
public class Application extends Controller {
public static final Zemberek z = new Zemberek(new TurkiyeTurkcesi());
@@ -46,6 +49,7 @@ public static void index() {
render();
}
+
public static void kullanicidanAl(@Required String text) {
@@ -54,39 +58,61 @@ public static void kullanicidanAl(@Required String text) {
index();
}
+ Cache.delete(session.getId());
+ String product= Cache.get(session.getId(), String.class);
@fehmicansaglam

fehmicansaglam Aug 28, 2011

Owner

Bir önceki satırda aynı anahtara karşılık gelen değer silindiği için dönen değer her zaman null olacaktır.

@fehmicansaglam

fehmicansaglam Sep 6, 2011

Owner

Buradaki mantık hatasını da düzeltmemiz gerekiyor. Böylece bir text girdikten sonra üzerinde farklı işlemler de yapabileceğiz.

+ if(product==null) {
@fehmicansaglam

fehmicansaglam Aug 28, 2011

Owner

product her zaman null olacağı için bu kontrol gereksiz hale geliyor.

+ Cache.set(session.getId(), text, "3h");
+ }
+
render("Application/kullanicidanAl.html", text);
+}
+
+ public static String getProduct(){
@fehmicansaglam

fehmicansaglam Aug 28, 2011

Owner

Bu metodlara @Util annotationı ekleyelim.

@ecemsomay

ecemsomay Sep 5, 2011

Bu annotationı yeniden yaratmamız mı gerekiyor?

@fehmicansaglam

fehmicansaglam Sep 5, 2011

Owner

Hayır. Built-in play annotation kendisi.

@ecemsomay

ecemsomay Sep 5, 2011

Ekledim, ama bunu ekleyiş amacımız neydi tam olarak?

@fehmicansaglam

fehmicansaglam Sep 5, 2011

Owner

Controller içindeki static void metodlar default olarak action kabul edilir ve çağrıldıklarında bir HTTP redirect oluşur. Bunun önüne geçmek için @Util annotationı kullanılır. Senin metod String döndüğü için sorun olmuyordu gerçi ama yine de koymakta fayda var.

+ String product= Cache.get(session.getId(), String.class);
+ if(controlProduct(product))
+ return product;
+ return null;
+ }
+
+ public static boolean controlProduct(String product){
+ if(product==null){
+ flash.error("Text girmeniz gerekiyor!");
+ index();
+ return false;
+ }
+ else
+ return true;
}
-
- public static void dosyadanOku(@Required File dosyaadı) throws IOException, SAXException, TikaException {
+ public static void dosyadanOku(@Required File dosya) throws Exception {
if (validation.hasErrors()) {
flash.error("Dosya upload etmediniz!");
index();
}
-
- InputStream inputStream = new FileInputStream(dosyaadı);
+
+ InputStream inputStream = new FileInputStream(dosya);
Parser parser = new AutoDetectParser();
ContentHandler contenthandler = new BodyContentHandler(Integer.MAX_VALUE);
Metadata metadata = new Metadata();
ParseContext context = new ParseContext();
parser.parse(inputStream, contenthandler, metadata, context);
- String a = contenthandler.toString();
-
+ String text = contenthandler.toString();
+
+ Cache.delete(session.getId());
+ String product= Cache.get(session.getId(), String.class);
+ if(product==null) {
@fehmicansaglam

fehmicansaglam Aug 28, 2011

Owner

Yukarıda bahsettiğim sorun burada da var.

+ Cache.set(session.getId(), text, "3h");
+ }
- render("Application/dosyadanOku.html", a);
+ render("Application/kullanicidanAl.html", text);
}
- public static String duzenle(String k) {
- k = k.replaceAll("[^a-zA-ZğşıçüöĞÖÇŞÜİ]", " ").replaceAll("\\s+", " ");
- ;
- return k;
- }
-
- public static void heceler(String k) {
+ public static void heceler() {
- k = duzenle(k);
+ String k =getProduct();
+ k = util.duzenle(k);
String dizi[] = k.split(" ");
List<String[]> hecelenmis = new ArrayList<String[]>();
for (String kelime : dizi) {
@@ -100,9 +126,10 @@ public static void heceler(String k) {
render("Application/heceler.html", hecelenmis);
}
- public static void kelimeAyristir(String k) {
+ public static void kelimeAyristir() {
- k = duzenle(k);
+ String k =getProduct();
+ k = util.duzenle(k);
String[] dizi = k.split(" ");
List<List<String[]>> ayrisimlar = new ArrayList<List<String[]>>();
for (String kelime : dizi) {
@@ -111,9 +138,10 @@ public static void kelimeAyristir(String k) {
render("Application/kelimeAyristir.html", ayrisimlar);
}
- public static void kelimeCozumle(String k) {
+ public static void kelimeCozumle() {
- k = duzenle(k);
+ String k =getProduct();
+ k = util.duzenle(k);
String dizi[] = k.split(" ");
List<List<Kelime>> gecis = new ArrayList<List<Kelime>>();
Kelime[] cozumler = null;
@@ -125,15 +153,17 @@ public static void kelimeCozumle(String k) {
render("Application/kelimeCozumle.html", gecis);
}
- public static void asciDonustur(String k) {
+ public static void asciDonustur() {
+ String k =getProduct();
String l = z.asciiyeDonustur(k);
render("Application/asciDonustur.html", l);
}
- public static void oneriler(String k) {
-
- k = duzenle(k);
+ public static void oneriler() {
+
+ String k =getProduct();
+ k = util.duzenle(k);
String[] dizi = k.split(" ");
List<String[]> gecis = new ArrayList<String[]>();
@@ -143,9 +173,10 @@ public static void oneriler(String k) {
render("Application/oneriler.html", gecis);
}
- public static void kelimeDenetle(String k) {
+ public static void kelimeDenetle() {
- k = duzenle(k);
+ String k =getProduct();
+ k = util.duzenle(k);
String dizi[] = null;
dizi = k.split(" ");
int a = 0;
@@ -163,9 +194,10 @@ public static void kelimeDenetle(String k) {
render("Application/kelimeDenetle.html", denetle);
}
- public static void kokBul(String k) {
+ public static void kokBul() {
- k = duzenle(k);
+ String k =getProduct();
+ k = util.duzenle(k);
String[] dizi = k.split(" ");
KokBulucu kok = z.kokBulucu();
List<String[]> gecis = new ArrayList<String[]>();
@@ -176,9 +208,10 @@ public static void kokBul(String k) {
render("Application/kokBul.html", gecis);
}
- public static void sayiBul(String k) {
+ public static void sayiBul() {
- k = duzenle(k);
+ String k =getProduct();
+ k = util.duzenle(k);
String[] dizi = k.split(" ");
KokBulucu kok = z.kokBulucu();
String[] kokler = null;
View
@@ -0,0 +1,11 @@
+package utils;
+
+public class util {
@fehmicansaglam

fehmicansaglam Aug 28, 2011

Owner

Sınıf isimleri büyük harf ile başlar.

+
+ public static String duzenle(String k) {
+
+ k = k.replaceAll("[^a-zA-ZğşıçüöĞÖÇŞÜİ]", " ").replaceAll("\\s+", " ");
+ return k;
+ }
+
+}
@@ -1,7 +1,7 @@
#{extends 'main.html' /} #{set title:'Home' /}
-<form action="@{Application.kullanicidanAl()}" method="GET">
+<form action="@{Application.kullanicidanAl()}" method="POST">
<h3>Text girelim:</h3>
<textarea name="text" rows="10" cols="50"></textarea>
@@ -14,7 +14,7 @@ <h3>Ya da dosyadan yükleyelim:</h3>
<form action="@{Application.dosyadanOku()}" method="POST"
enctype="multipart/form-data">
- <input type="file" name="dosyaadı"> <input type="submit">
+ <input type="file" name="dosya"> <input type="submit">
</form>
#{if flash.error}
@@ -6,11 +6,11 @@ <h1 style="font-size: 50px">
<i><b><center>İşlem seçelim:</center> <b><i>
</h1>
- <a href="@{Application.heceler(text)}">Hecele </a></br> <a
- href="@{Application.kelimeAyristir(text)}">Kelime Ayristir</a></br> <a
- href="@{Application.kelimeCozumle(text)}"> Kelime Cozumle</a></br> <a
- href="@{Application.kelimeDenetle(text)}"> Kelime Denetle</a></br> <a
- href="@{Application.oneriler(text)}"> Kelime Oner</a></br> <a
- href="@{Application.asciDonustur(text)}">ASCII'ya Donustur</a></br> <a
- href="@{Application.kokBul(text)}"> KokBul</a></br> <a
- href="@{Application.sayiBul(text)}">İstatistikleri Goster</a></br>
+ <a href="@{Application.heceler()}">Hecele </a></br> <a
+ href="@{Application.kelimeAyristir()}">Kelime Ayristir</a></br> <a
+ href="@{Application.kelimeCozumle()}"> Kelime Cozumle</a></br> <a
+ href="@{Application.kelimeDenetle()}"> Kelime Denetle</a></br> <a
+ href="@{Application.oneriler()}"> Kelime Oner</a></br> <a
+ href="@{Application.asciDonustur()}">ASCII'ya Donustur</a></br> <a
+ href="@{Application.kokBul()}"> KokBul</a></br> <a
+ href="@{Application.sayiBul()}">İstatistikleri Goster</a></br>
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit 9170d71

Please sign in to comment.