Ana Sayfa

14 Aralık 2014 Pazar

Apache Wicket Tree Uygulaması


Apache Wicket ile Tree Uygulaması


TestPage.html

<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd" xmlns="http://www.w3.org/1999/xhtml">
<body>
<table>
<div wicket:id="tree">
</div>
</table>
</body>
</html>


TestPage.java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeNode;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.tree.Tree;

public class TestPage extends WebPage {
 private static List items = new ArrayList();
 static {
items.add(new AccordionItem("Title 1", "content 1.1", "content 1.2","content 1.3"));
  items.add(new AccordionItem("Title 2", "content 2.1", "content 2.2"));
  items.add(new AccordionItem("Title 3", "content 3.1"));
  items.add(new AccordionItem("Title 4", "content 3.1", "content 3.2"));
 }

 public TestPage() {
  DefaultMutableTreeNode root0 = new DefaultMutableTreeNode("Root");
  final DefaultTreeModel treeModel = new DefaultTreeModel(root0);
  for (AccordionItem accordionItem : items) {
   DefaultMutableTreeNode root = new DefaultMutableTreeNode(
     accordionItem.title);
   for (String s : accordionItem.childs) {
  final DefaultMutableTreeNode rootChild = new DefaultMutableTreeNode(s);
    root.add(rootChild);
   }
   root0.add(root);
  }
  final Tree tree = new Tree("tree", treeModel) {
   private static final long serialVersionUID = 1L;
   @Override
   protected String renderNode(TreeNode node) {
   DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) node;
    return String.valueOf(treeNode.getUserObject());
   }
   @Override
   protected void onNodeLinkClicked(AjaxRequestTarget target,
     TreeNode node) {
    super.onNodeLinkClicked(target, node);
   DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) node;
    System.out.println(treeNode.getUserObject());
   }
  };
  tree.getTreeState().expandNode(root0);
  add(tree);
 }

 public static class AccordionItem {
  private String title;
  private List childs;

  public AccordionItem(String title, String... content) {
   this.title = title;
   this.childs = Arrays.asList(content);
  }
 }
}
pom.xml

   
                  <dependency>
   <groupId>org.apache.wicket</groupId>
   <artifactId>wicket-spring</artifactId>
   <version>1.5.11</version>
   <exclusions>
    <exclusion>
     <artifactId>spring</artifactId>
     <groupId>org.springframework</groupId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.apache.wicket</groupId>
   <artifactId>wicket-core</artifactId>
   <version>1.5.11</version>
  </dependency>
  <dependency>
   <groupId>org.apache.wicket</groupId>
   <artifactId>wicket-datetime</artifactId>
   <version>1.5.11</version>
  </dependency>
  <dependency>
   <groupId>org.apache.wicket</groupId>
   <artifactId>wicket-core</artifactId>
   <version>1.5.11</version>
  </dependency>
  <dependency>
   <groupId>org.apache.wicket</groupId>
   <artifactId>wicket-extensions</artifactId>
   <version>1.5.11</version>
  </dependency>
  <dependency>
   <groupId>org.apache.wicket</groupId>
   <artifactId>wicket-auth-roles</artifactId>
   <version>1.5.11</version>
  </dependency>
  <dependency>
   <groupId>org.apache.wicket</groupId>
   <artifactId>wicket-devutils</artifactId>
   <version>1.5.11</version>
  </dependency>

15 Ekim 2014 Çarşamba

Apache Wicket Framework ile Form işlemleri



<html xmlns:wicket="http://wicket.apache.org">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
 <h2>form</h2>
 <form wicket:id="form">
  <div wicket:id="lbl"></div>
  <input wicket:id="searchH" type="text" />
  <input type="submit" name="Ara" value="Ara" />
   
 </form>
 <br />
        <a href="#" wicket:id="link">TEXT TO REPLACE</a> 
</body>
</html>


import java.io.Serializable;
public class Musteri implements Serializable{

    public String searchH;
    public String getSearchH() {
  return searchH;
 }
 public void setSearchH(String searchH) {
  this.searchH = searchH;
 }
}

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.navigation.paging.PagingNavigator;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.markup.repeater.RepeatingView;
import org.apache.wicket.markup.repeater.data.DataView;
import org.apache.wicket.markup.repeater.data.ListDataProvider;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.PropertyModel;

public class HomeData extends WebPage 
{
 private static final long serialVersionUID = 1L;
 private Musteri musteri = new Musteri();
 
 public <T> HomeData() {
                            //Butona tıklanınca çalışır
Form<Musteri> frm = new Form<Musteri>("form", new CompoundPropertyModel<Musteri>(musteri)) {
   private static final long serialVersionUID = 1L;
   @Override
   protected void onSubmit() {
    System.out.println("on submit "+musteri.getSearchH());
   }
  };
  
final Label label = new Label("lbl", new PropertyModel<String>(musteri, "searchH"));
  label.setOutputMarkupId(true);
  
  frm.add(label);  
              // TextField onkeyup özelliğine göre çalışır
frm.add(new TextField<String>("searchH").add(new AjaxFormComponentUpdatingBehavior("onkeyup"){
   private static final long serialVersionUID = 1L;
   @Override
   protected void onUpdate(AjaxRequestTarget target) {
    target.addComponent(label);
    System.out.println(musteri.getSearchH());
   }
  }));
                     //Link popup olarak açılır
 add(new AjaxLink("link"){      
  private static final long serialVersionUID = 1L; 
  @Override                                            
  public void onClick(AjaxRequestTarget target) {        
  target.appendJavascript("window.open('http://www.javamakale.com/')");
   }                                                                   
   });
  add(frm);
 }
}

Apache Wicket Framework ile repeater kullanımı

repeater.html

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
 xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<head>
<title>repeat</title>
</head>
<body>
 <div wicket:id="repeater">
  <h3 wicket:id="title"></h3>
  <ul>
   <li wicket:id="childs"><div wicket:id="content"></div></li>
  </ul>
 </div>
</body>
</html>


repeater.java
package org.jtpd.wicket.repeater;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.list.PropertyListView;

public class repeater extends WebPage {
private static List<AccordionItem> items = new ArrayList<AccordionItem>();
static {
 items.add(new AccordionItem("title 1", "content 11", "content 12", "content 13"));
 items.add(new AccordionItem("title 2", "content 21"));
 items.add(new AccordionItem("title 3", "content 31"));
}
public repeater() {
ListView<AccordionItem> view = new PropertyListView<AccordionItem>("repeater", items) {
 private static final long serialVersionUID = 1L;
 @Override
 protected void populateItem(ListItem<AccordionItem> item) {
  item.add(new Label("title"));
  item.add(new PropertyListView<String>("childs") {
   private static final long serialVersionUID = 1L;
   @Override
   protected void populateItem(ListItem<String> item) {
    item.add(new Label("content", item.getModel()));
   }
  });
 }
 };
  add(view);
 }
 public static class AccordionItem {
  private String title;
  private List<String> childs;
  public AccordionItem(String title, String... content) {
   this.title = title;
   this.childs = Arrays.asList(content);
  }
 }
}


19 Ocak 2014 Pazar

IBM DB2 ile DataSource bağlantı



Eclipse Projesi: indir


IBM DB2 Veritabanı yapısı
CREATE table IF NOT EXISTS USERS(
USERID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1),
NAME varchar(20),
SURNAME varchar(20),
PASSPORT INTEGER,
primary key (USERID))

ConnectWithDataSource.Java
import java.io.Serializable;
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class ConnectWithDataSource implements Serializable{

 private static final long serialVersionUID = 1L;
 static Connection connection = null;

 public static Connection getConnection() {

  try {
   InitialContext context = new InitialContext();
   DataSource dataSource = (DataSource) context.lookup("java:/comp/env/jdbc/MYDB");
   connection = dataSource.getConnection();
  } catch (NamingException e) {
   e.printStackTrace();
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return connection;
 }

 public static boolean closeConnection() {

  boolean result = false;
  try {
   if (connection != null && !connection.isClosed()) {
    connection.close();
    System.out.println("Database connection terminated");
    result = true; 
   }
  } catch (Exception ex) {
   ex.printStackTrace();
   result = false;
  }
  return result;
 } 
}

DBController.Java
import java.sql.*;
import javax.naming.*;
import javax.sql.DataSource;
 
public class DBController {
private DataSource ds;
private Connection con;// NEW CHANGE

public void setUp() throws NamingException,SQLException{
 
 InitialContext ctx = new InitialContext();
    ds = (DataSource)ctx.lookup("java:/comp/env/jdbc/MYDB");
    con = ds.getConnection(); // NEW CHANGE
}

public ResultSet readRequest(String dbQuery){
    ResultSet rs=null;
    try{
        Statement stmt = con.createStatement();
        rs = stmt.executeQuery(dbQuery);
    }
    catch(Exception e){e.printStackTrace();}
    return rs;
}

public int updateRequest(String dbQuery){
    int count=0;
    try{
        Statement stmt = con.createStatement();
        count=stmt.executeUpdate(dbQuery);
    }
    catch(Exception e){e.printStackTrace();}
    return count;
}

public void terminate(){
    try {con.close();}
    catch(Exception e){e.printStackTrace();}
}
}

Kisiler.Java
 public class Kisiler
{
private int _tcno;
private String _adi;
private String _soyadi;
public Kisiler() {

}
public int get_tcno() {
    return _tcno;
}
public void set_tcno(int _tcno) {
    this._tcno = _tcno;
}
public String get_adi() {
    return _adi;
}
public void set_adi(String _adi) {
    this._adi = _adi;
}
public String get_soyadi() {
    return _soyadi;
}
public void set_soyadi(String _soyadi) {
    this._soyadi = _soyadi;
}
 
}

PersonelBean.Java
import java.io.Serializable; 
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.naming.NamingException;

@ManagedBean(name = "yb")
@SessionScoped
public class PersonelBean implements Serializable{
 private static final long serialVersionUID = 1L;
 public PersonelBean() {
    }
    public List<Kisiler> getPersonelList() throws SQLException,NamingException{

     DBController cntrl =new DBController();
     cntrl.setUp();

        ResultSet resultSet =  cntrl.readRequest("SELECT * FROM DB2ADMIN.users");

        List<Kisiler> list = new ArrayList<Kisiler>();

        while(resultSet.next()){
         Kisiler personel = new Kisiler();
      
         personel.set_adi(resultSet.getString("NAME"));
         personel.set_soyadi(resultSet.getString("SURNAME"));
         personel.set_tcno(resultSet.getInt("USERID"));

            list.add(personel);
        }
        cntrl.terminate();
        return list;
    }
   
}
Context.xml
 <?xml version="1.0" encoding="UTF-8"?>
<Context>
      <Resource name="jdbc/MYDB" auth="Container" 
  type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="db2admin" password="db2admin" 
               driverClassName="com.ibm.db2.jcc.DB2Driver"
               url="jdbc:db2://localhost:50000/MYDB" 
               />  
            
</Context>

test.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
<h:head><title>PrimeFaces Test</title>
</h:head>
<h:body>
<h:form prependId="false">  
  
    <p:dataTable id="dataTable" var="car" value="#{yb.personelList}"  
                 paginator="true" rows="10"  
                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                 rowsPerPageTemplate="5,10,15">  
        <f:facet name="header">  
            Ajax Pagination  
        </f:facet>  
  
        <p:column>  
            <f:facet name="header">  
                <h:outputText value="Model" />  
            </f:facet>  
            <h:outputText value="#{car._adi}" />  
        </p:column>  
  
        <p:column>  
            <f:facet name="header">  
                <h:outputText value="Year" />  
            </f:facet>  
            <h:outputText value="#{car._soyadi}" />  
        </p:column>  
  
        <p:column>  
            <f:facet name="header">  
                <h:outputText value="Manufacturer" />  
            </f:facet>  
            <h:outputText value="#{car._tcno}" />  
        </p:column>  
         
    </p:dataTable>  
  
</h:form>  
                
</h:body></html>


Jquery ile Scroll indikçe Veri Yüklemek

Merhabalar,
Herkesin bildiği gibi Facebook uygulamasındayken, scrool ile sayfanın aşağısına inince veriler otomatik olarak yükleniyor. Bu uygulama çok hoşuma gitmişti. Bende Javada yapmak istedim.
Php'de bulduğum örneği Javada uyarladım sizlere.



Eclipse Projesi: indir


Veritabanı Yapısı
CREATE TABLE 'actor_info' (
  'id' int(5) NOT NULL AUTO_INCREMENT,
  'first_name' varchar(45) NOT NULL,
  'last_name' varchar(45) NOT NULL,
  'film_info' text NOT NULL,
  PRIMARY KEY ('id')
) ENGINE=InnoDB DEFAULT CHARSET=latin1


ConnectionFactory.Java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
 
public class ConnectionFactory {
    //static reference to itself
    private static ConnectionFactory instance = new ConnectionFactory();
    String url = "jdbc:mysql://localhost/test";
    String user = "username";
    String password = "password";
    String driverClass = "com.mysql.jdbc.Driver"; 
 
    //private constructor
    private ConnectionFactory() {
        try {
            Class.forName(driverClass);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    public static ConnectionFactory getInstance()   {
        return instance;
    }
    public Connection getConnection() throws SQLException,
    ClassNotFoundException {
        Connection connection =
            DriverManager.getConnection(url, user, password);
        return connection;
    }
}


EmployeeDAO.Java
import java.util.ArrayList;
import java.util.List;
import java.sql.*;
 
public class EmployeeDAO {
Connection connection;
    Statement stmt;
    private int noOfRecords;

    public EmployeeDAO() { }
 
    private static Connection getConnection() throws SQLException,ClassNotFoundException{
        Connection con = ConnectionFactory.
                getInstance().getConnection();
        return con;
    }
    public List<MyData> viewAllEmployees(int offset,int noOfRecords)
    {
        String query = "select SQL_CALC_FOUND_ROWS * from actor_info ORDER BY id DESC limit "
                 + offset + ", " + noOfRecords;
        List<MyData> list = new ArrayList<MyData>();
        MyData employee = null;
        try {
            connection = getConnection();
            stmt = connection.createStatement();
            ResultSet rs = stmt.executeQuery(query);
            while (rs.next()) {
                employee = new MyData();
                employee.setId(rs.getInt("id"));
                employee.setName(rs.getString("first_name"));
                employee.setLastname(rs.getString("last_name"));
                employee.setInfo(rs.getString("film_info"));
                list.add(employee);
            }
            rs.close();
 
            rs = stmt.executeQuery("SELECT FOUND_ROWS()");
            if(rs.next())
                this.noOfRecords = rs.getInt(1);
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }finally
        {
            try {
                if(stmt != null)
                    stmt.close();
                if(connection != null)
                    connection.close();
                } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return list;
    }
    public int getNoOfRecords() {
        return noOfRecords;
    }
}

MyData.Java
public class MyData {
 private int id;  
    private String name;
    private String lastname; 
    private String info;
    
 
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getLastname() {
  return lastname;
 }
 public void setLastname(String lastname) {
  this.lastname = lastname;
 }
 public String getInfo() {
  return info;
 }
 public void setInfo(String info) {
  this.info = info;
 }
}

index.jsp
<%@page import="com.sample.EmployeeDAO"%>
<%@page import="com.sample.MyData"%>
<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
 <link rel="stylesheet" href="css/style.css">
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
 <script type="text/javascript" src="js/jquery-ias.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
         // Infinite Ajax Scroll configuration
            jQuery.ias({
                container : '.wrap', // main container where data goes to append
                item: '.item', // single items
                pagination: '.nav', // page navigation
                next: '.nav a', // next page selector
                loader: '<img src="css/ajax-loader.gif"/>', // loading gif
                triggerPageThreshold: 3 // show load more if scroll more than this
            });
        });
    </script>
</head>
<% 
 String next="";
 int pagee=1;
 int limit=10;
 
 if(request.getParameter("p")!=null)       
   pagee=Integer.parseInt(request.getParameter("p"));
 
 EmployeeDAO dao = new EmployeeDAO();
 
 int start = (pagee * limit)-limit;
 List<MyData> list = dao.viewAllEmployees(start,limit);
 
 int rowCount = dao.getNoOfRecords();
 int noOfPages = (int) Math.ceil(rowCount * 1.0 / limit);
 if( rowCount > (pagee * limit) ){
  next = ++pagee+"";
}

 %> 
 <body><div class="wrap">
 
<%
 for (MyData m:list) {
 
  %>
     <div class="item" id="item-<%=m.getId()%>">
  <h2>
   <span class="num"><%= m.getId()%></span>
   <span class="name"><%= m.getName()%> <%=m.getLastname()%></span>
  </h2>
  <p><%=m.getInfo()%></p>
 </div>
     <%
 }
%>
<!--page navigation-->
 <% if (next!=null){ System.out.println(next); %>
 <div class="nav">
  <a href='index.jsp?p=<%=next%>'>Next</a>
 </div>
 <%}%>

</div><!--.wrap-->
</body>
</html>


style.css
*{
 margin: 0;
 padding: 0;
 box-sizing: border-box;
 -webkit-box-sizing: border-box;
 -moz-box-sizing: border-box;
 -webkit-font-smoothing: antialiased;
 -moz-font-smoothing: antialiased;
 -o-font-smoothing: antialiased;
 font-smoothing: antialiased;
 text-rendering: optimizeLegibility;
}
body{
 font: 12px Arial,Tahoma,Helvetica,FreeSans,sans-serif;
 text-transform: inherit;
 color: #333;
 background: #e7edee;
 width: 100%;
}
.wrap{
 width: 720px;
 margin: 15px auto;
 padding: 15px 10px;
 background: white;
 border: 2px solid #DBDBDB;
 -webkit-border-radius: 5px;
 -moz-border-radius: 5px;
 border-radius: 5px;
 overflow: hidden;
}
.item{
 margin: 10px 0;
 padding: 5px 10px;
 background: #f9f9f9;
 border-radius: 5px;
}
a{ text-decoration: none; color: #333}
h1{
 font-family: Georgia, "Times New Roman", Times, serif;
 font-size: 2.8em;
 text-align: center;
 margin: 15px 0;
}
h2{font-size: 1.5em; margin: 8px 0}
h2 span.name{font-size: 1em}
h2 span.num{font-size: 1.5em; font-style: italic}
.item p{text-transform: lowercase}

/*Loader style*/
.ias_loader, .ias_trigger {
 text-align:center;
 margin: 30px 0 40px;
}
.ias_trigger a:link,
.ias_trigger a:visited {
    padding: 4px 50px;

    background-color: #f9f9f9;
    border: solid 1px #ddd;
    border-radius: 2px;

    font: bold 12px Arial, sans-serif;
    color: #555;
    text-decoration: none;
}
.ias_trigger a:hover,
.ias_trigger a:active {
    border-color: #ccc;
}

14 Ocak 2014 Salı

IBM DB2 ve Data Studio Kurulumu

IBM'den Kerem Özgür beyin, IBM Yazılım Akademisi yarışmacıları için hazırladığı video.
Bende sizlerle paylaşıyorum.

IBM DB2 10.5 Kurulumu

 IBM Data Studio Kurulumu

Bu videoları yayınladığı için Kerem Özgür beye teşekkür ediyorum.

13 Ocak 2014 Pazartesi

Otomatik Subdomain Oluşturma

Merhabalar,

Dükkan açma mantığında kurulan sitelerde , üye olan kullanıcılara tek bir domain altındaki gibi ürünlerini satabiliyorlar.Örneğin emlak.net, sahibinden.com gibi sitelerde olduğu gibi ve böylelikle site sahibi sitenin verimliliğini artırarak üyelerin artmasına olanak sağlıyor. Siteyi kullanan üyelerde herhangi bir ücret ödemeden site sahibi olabiliyor.
             İnternet ortamında, Java Web olarak nasıl yapılacağı konusunda çok değinilmemiş. Detaylı bir bilgiye ulaşamadım. Bende Jsp(Java Server Page)'da yapmak istedim.
Normal bir hosting satın alarak bu işlemleri yapamayabilirsiniz. Bir çok hosting firmaları bu ayarları yapmanıza olanak sağlamaz ve size ait bir özel ip'niz olması gerekiyor.

Sizler için ben bir aylığına Vps Server kiraladım. İlk başta JDK ve Tomcat Kurulumunu yapmanız gerekiyor. Önceki makalemde bunu anlatmıştım. Oradan takip edersiniz.

Gerçekte oluşturduğumuz bir subdomain yok ama sanal subdomain oluşturcaz.
abc.domain.com                  ======>   bu domaine gelecek talepleri
domain.com/index.jsp?uye=abc  ===>   buraya yönlendirmiş oluyoruz
Uzun ve şık durmayan urllerden kurtulmuş olacağız.

Eclipse'de oluşturduğum dosyayı da direk buradan indirebilirsiniz
Tomcati nereye kurduysanız içindeki webapps klasörünün altında barındırmanız gerekiyor.

Bende "/var/opt/apache-tomcat-7.0.47/webapps/mysite"  olarak barındırdım.


index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>mysite</title>
</head>
<body>
Hello <b>
<% if(request.getParameter("uye")!=null){%>
<%= request.getParameter("uye").split("\\.")[0] %></b>!
<% }%>
</body>
</html>


httpd.conf ayarlarını yapcaz. mysite.com.conf


Sadece 80 portun olduğu yeri kendi sahip olduğunuz domain'e göre değiştirmeniz  gerekiyor

<VirtualHost ipniz:80 >
    ProxyRequests On #ekleyin
    ProxyVia On     #ekleyin

    <Proxy *>    #ekleyin
    AddDefaultCharset Off
    Order deny,allow
    Allow from all
   </Proxy>

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^(.+)\.mysite\.com$ [NC]    #ekleyin
    RewriteCond %1 !^(www|ftp|mail|siparis|sepet)$ [NC]   # bu domainler hariç
    RewriteRule ^(.*)$ http://mysite.com$1?uye=%{HTTP_HOST} [P,QSA] #ekleyin
    JkMount /* default

    ServerName "mysite.com:80"
        ServerAlias  "www.mysite.com"
        ServerAlias  "*.mysite.com"    # buraya * ekliyoruz
        ServerAlias  "ipv4.mysite.com"
        UseCanonicalName Off

ProxyPass / http://mysite.com:8080/mysite/  # 8080 portunu 80 portuna yönlendiriyoruz
ProxyPassReverse / http://mysite.com:8080/mysite/  

 #diğerleride aynen kalıyor

Şimdi Domainimizin Dns ayarları ile oynayacağız. Benim vps serverda plesk panel kuruluydu, sizde farklı panellerden de yapabilirsiniz.



“Record type” kısmını “A” Olarak seçiyorum
“Enter Domain Name” kısmınada “*” işareti koyuyorum.
“Enter IP Adres” kısmına domainimizin bulunduğu serverin ip adresini yazıyoruz.

Serverdaki yerinide vereyim size /var/named/run-root/var/mysite.com
mysite.com.   IN NS  ns.mysite.com.
ns.mysite.com.   IN A  --ipniz--
mysite.com.   IN A  --ipniz--
webmail.mysite.com.   IN A  --ipniz--
mail.mysite.com.   IN A  --ipniz--
ipv4.mysite.com.   IN A  --ipniz--
*.mysite.com.   IN A  --ipniz--
ftp.mysite.com.   IN CNAME  mysite.com.
*.webmail.mysite.com.   IN CNAME  mysite.com.
www.mysite.com.   IN CNAME  mysite.com.
mysite.com.   IN MX 10 mail.mysite.com.
mysite.com.   IN TXT  "v=spf1 +a +mx -all"

Terminalden Apache server'ı "service httpd restart" ile yeniden başlattın. 



İşletim Sistemi Seçenekleri: Centos 5.5 (64Bit)
Kontrol Paneli Seçenekleri: Plesk 11,9 Unlimited Domain
Apache Server 2.2 kurulu aldım.

Umarım faydalı olmuştur.

12 Ocak 2014 Pazar

Linux Vps Server'a JDK ve Tomcat Kurulumu

Merhabalar,
JDK(Java Development Kit) kurcaz ve sonra Tomcat Kurulumunu yapcaz.

ilk önce terminalden vps server'a SSH bağlantısı kurcaz.
Putty veya WinSCP programlarını kullanabilirsiniz. Her ikiside işinizi görür.

Putty ile SSH bağlantısı
ssh root@makina-ipmiz  
root@makina-ipmiz's password: Şifremizi giriyoruz
[root@server ~]#  ve bağlanıyoruz
[root@server ~]# "ls" veya "dir" ile var olan klasörleri getiriyoruz.
Eğer herhangi birşey listelenmediyse  "cd .." ile bir üst klasöre geçin

JDK Kurulumu
Siz hangi versiyonu kurmak istiyorsanız o versiyonu kurun
[root@server1 /]# cd var
[root@server1 var]# cd tmp  "ben tmp klasörüne kurdum sizde sizde istediğiniz yerde kurabilirsiniz."
[root@server1 tmp]# wget -o jdk-6u24-linux-x64-rpm.bin http://download.oracle.com/otn-pub/java/jdk/6u24-b07/jdk-6u24-linux-x64-rpm.bin
[root@server1 tmp]# chmod +x jdk-6u24-linux-x64-rpm.bin 
[root@server1 tmp]# ./jdk-6u24-linux-x64-rpm.bin
Done.  "jdk kurulumu tamamlandı"

Tomcat Kurulumu
[root@server1 /]# cd var 
[root@server1 var]# cd opt
[root@server1 opt]# wget http://ftp.itu.edu.tr/Mirror/Apache/tomcat/tomcat-7/v7.0.50/bin/apache-tomcat-7.0.50.tar.gz
[root@server1 opt]# md5sum apache-tomcat-7.0.50.tar.gz "kontrol ediyoruz"
[root@server1 opt]#  tar -xzf apache-tomcat-7.0.50.tar.gz 
[root@server1 opt]# cd apache-tomcat-7.0.50/
[root@server1 apache-tomcat-7.0.50]# cd bin
[root@server1 bin]# ./startup.sh
"ve Tomcat'i çalıştırmış olduk."

http://makina-ipmiz:8080/ ile Tomcat'i görüntüleriz.
Tomcat 7 için minimum JDK versiyon 1.6 olması gerekiyor.
Buradan JDK'nın son versiyonu indirebilirsiniz :www.oracle.com/


http://makina-ipmiz:8080/ ile Tomcat'i görüntüleriz.
Tomcat 7 için minimum JDK versiyon 1.6 olması gerekiyor.
Buradan JDK'nın son versiyonu indirebilirsiniz :www.oracle.com/

Biz yukarıda Tomcat'i manuel olarak başlattık. Terminalden kolayca otomatik olarak "service tomcat start","service tomcat stop","service tomcat restart" komutları ile yönetmek istiyorsanız. Aşağıdaki işlemleri takip edin.
[root@server1 /]# cd etc
[root@server1 etc]# cd init.d
[root@server1 init.d]# vi tomcat

Ve buradaki Script'i kaydediyoruz.
Unutmadan yukarıda Tomcat'i nerde çıkardıysan, Aşağıdaki "CATALINA_HOME" yoluda aynı olacak,
 
# cat /etc/init.d/tomcat
#!/bin/bash

# Tomcat7: Start/Stop Tomcat 7
#
# chkconfig: - 90 10
# description: Tomcat is a Java application Server.

# Source function library
. /etc/init.d/functions
#. /etc/sysconfig/network

CATALINA_HOME=/var/opt/apache-tomcat-7.0.50
CATALINA_BASE=/var/opt/apache-tomcat-7.0.50
TOMCAT_USER=tomcat
LOCKFILE=/var/lock/subsys/tomcat

RETVAL=0
start(){
   echo "Starting Tomcat7: "
   su - $TOMCAT_USER -c "$CATALINA_HOME/bin/startup.sh"
   RETVAL=$?
   echo
   [ $RETVAL -eq 0 ] && touch $LOCKFILE
   return $RETVAL
}

stop(){
   echo "Shutting down Tomcat7: "
   $CATALINA_HOME/bin/shutdown.sh
   RETVAL=$?
   echo
   [ $RETVAL -eq 0 ] && rm -f $LOCKFILE
   return $RETVAL
}

case "$1" in
   start)
      start
      ;;
   stop)
      stop
      ;;
   restart)
      stop
      start
      ;;
   status)
      status tomcat
      ;;
   *)
      echo $"Usage: $0 {start|stop|restart|status}"
      exit 1
      ;;
esac
exit $?

apache server'ı yeniden başlatmak içinde: service httpd restart

Metin içindeki belli bir metin parçasını çıkarma

Merhabalar,
Metin içindeki istenmeyen metin parçalarını String işlemleriyle çıkarabiliriz.

Html Sayfası

<div style="height:57px;" id="div_1"> 
Kefilin ölmesi durumunda yapılması gereken nedir. Alacağımızı nasıl garanti altına alabiliriz.
(See attached file: kefil İşlemleri.docx)(See attached file: bilgi sis.
bilgilendirme Turk Kapatma.png)Saygılarımla </div>

Jquery kodu
var ttext=$('#div_1').text();
var subvalue=ttext.substring(ttext.indexOf("(See"),ttext.lastIndexOf(")")+1);
ttext=ttext.replace(subvalue,"");
alert(ttext);


Bu Makalenin Test sayfası varsa ekleyebilirsiz. http://jsfiddle.net/