mardi 13 septembre 2011

Web / http / https / IE : contenu mixte elements non securises

Si vous créer un site web, dotn le contenu est distribué en HTTPS. Ce dernier peut faire référence à des éléments non sécurisés tel que des image, ou le player Window Media Player ... De ce fait, sous IE, vous aurez à chaque ouverture de la page, une popup, vous demandant si vous souhaitez ou non afficher cette page qui contient des éléments non sécurisés (commençant par http ...) Voici un très bon lien traitant du sujet : Pour corrigez , cela :
  1. si cela est possible, vous pouvez passer ces ressources en https (ex : en
  2. si la ressource ne vous appartient pas ... alors il ne faut pas spécifier le protocole et mettre // (ex : en
  3. la dernière solution est de configurer IE pour qu'il accepte le contenu mixte (ds tools-security->custom level-> accept mixte content (je en suis plus sûr du libellé exact :-) )
Voici un exemple avec le player windows : A noter que les urls ont été modifiées pour être "relative" // en supprimant http ... ce qui supprime le warning sous IE remplacement de : http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer en //www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer Ce qui donne :

Chargement en cours...

web / html / javascript / flash player / video

Voici une petite librairie javascript fort utile nommée flowplayer , qui fonctionne avec jquery et permet d'encapsuler une player flash pour lire des videos / mp3 par exemple ... voici l'exemple de code tiré du site <!-- setup player container --> <div id="player" style="width:500px;height:300px"></div> <div id="info" class="box info"> You have Flash version 9.115 or above. Enjoy high quality video! </div> <!-- flowplayer configuration --> <script> // Flowplayer installation with Flashembed parameters
flowplayer("player", { // our Flash component
src: "/swf/flowplayer-3.2.7.swf", // we need at least this version
version: [9, 115], // older versions will see a custom message
onFail: function() { document.getElementById("info").innerHTML = "You need the latest Flash version to view MP4 movies. " + "Your version is " + this.getVersion() ; } // here is our third argument which is the Flowplayer configuration
}, { clip: "http://blip.tv/file/get/KimAronson-TwentySeconds6421.m4v" }); </script> </body> </html>

mardi 6 septembre 2011

j2ee : retourner du JSON simplement dans une servlet

Voici un exemple cours qui, montre comment retourner simplement du JSON avec une servlet et les lib adéquates : protected String returnJson(HttpServletRequest request, HttpServletResponse response, JSONObject json) { try { response.setContentType("application/json;charset=iso-8859-1"); PrintWriter writer = response.getWriter(); writer.write(json.toString()); writer.close(); return null; } catch (IOException e) { request.getParameterMap().put("json_response", json); return "/json_response.jsp"; } }

mercredi 31 août 2011

web : plugins de developpement JS / CSSsur IE 7

Voici, un lien permettant d'installer le plugin de developpement sous IE 7 (cette dernière étant intégré nativement dans les versions ultérieures

http://www.microsoft.com/download/en/details.aspx?id=18359

jquery : validation plugin

Voici un exemple d'utilisation de jquery validate plugin :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="js/jquery-1.5.1.js"></script>
<script type="text/javascript" src="js/jquery.validate.js"></script>
<style type="text/css">
* { font-family: Verdana; font-size: 96%; }
label { width: 10em; float: left; }
label.error { float: none; color: red; padding-left: .5em; vertical-align: top; }
p { clear: both; }
.submit { margin-left: 12em; }
em { font-weight: bold; padding-right: 1em; vertical-align: top; }
</style>
<script>
$(document).ready(function(){

$('#commentForm').validate( {
rules: {
comment : {
required: true,
email: true
},
comment2 : {
required: true,
url: true
}}
});
});
</script>

</head>
<body>


<form class="cmxform" id="commentForm" method="get" action="">
<fieldset>
<legend>A simple comment form with submit validation and default messages</legend>
<!-- <p>
<label for="cname">Name</label>
<em>*</em><input id="cname" name="name" size="25" class="required" minlength="20" />
</p>
<p>
<label for="cemail">E-Mail</label>
<em>*</em><input id="cemail" name="email" size="25" class="required email" />
</p>
<p>
<label for="curl">URL</label>
<em> </em><input id="curl" name="url" size="25" class="url" value="" />
</p>
<p>
<label for="ccomment">Your comment</label>
<em>*</em><textarea id="ccomment" name="comment" cols="22" class="required"></textarea>
</p>
<p> -->

<p>
<label for="ctest">Your comment</label>
<em>t*</em><input type="text" id="ctest" name="comment" cols="22" minlength="2" size="25" ></textarea>
</p>
<p>
<label for="ctest2">Your comment</label>
<em>t*</em><input type="text" id="ctest2" name="comment2" cols="22" minlength="2" size="25" ></textarea>
</p>
<input class="submit" type="submit" value="Submit"/>
</p>
</fieldset>
</form>
</body>
</html>

mardi 30 août 2011

java : reflexion / instantiation ./ construction

Voici comment créer une instance d'une classe interne via un constructeur quin'est pas celui par défaut.

A noter qu'il est nécessaire pour les classes interne de passer une instance de la classe englobante comme le montre l'exemple suivant :


package com.ldu.divers;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

public class Test {

public class UnDTO2 {
private String lastName = "";
private String firstName = "";
public UnDTO2(String lastName,String firstName) {
this.lastName = lastName;
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

Class c = UnDTO2.class;
Constructor [] cos = c.getDeclaredConstructors();
for (Constructor constructor : cos) {
System.err.println(constructor.toString());
}

try {
Constructor constr = c.getConstructor(Test.class, String.class,String.class);
UnDTO2 dto = constr.newInstance(new Test(), "monNom","Enwoo");

} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

jeudi 4 août 2011

Unix/Linux : comment savoir qu'un repertoire est un filer

Regulièrement, lors de l'écritur de script, je me demande si je peux pointer vers tel endroit ou non sur mon fileSystem, et aussi parfois entre 2 machines.

Un moyen simple de le savoir, et aussi de savoir si 2 répertoires différents montés sur 2 points montages différents correspondent à la même machine, et la commade mount.

$mount

/dev/sda1 on / type ext3 (rw)
none on /proc type proc (rw)
/dev/sda2 on /usr type ext3 (rw)
/dev/sda3 on /var type ext3 (rw)
/dev/sda4 on /tmp type ext3 (rw)
/dev/sda6 on /usr/local/MIDDLELOGS type ext3 (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw)
dmz-data45:/vol/vol5/stockage_system on /LOCAL/system type nfs (ro,nfsvers=3,addr=172.168.200.215)


Comme on peut le remarquer, le réperoire monter en "/LOCAL/system" est en fait une machine distante dont l'IP est 172.168.200.215, et le nom symbolique est dmz-data45, et le répertoire physique est /vol/vol5/stockage

Et voilà, je sait maintenant que je peut mutualiser des choses sur cette machine