Apache Http Client 4.1: Impostare il proxy

April 4th, 2011 No comments

Apache Http Client 4.1: Impostare il proxy

Ottenuto in qualche modo un oggetto valido HttpClient, il resto è:

HttpClient httpclient = new DefaultHttpClient();
HttpHost proxy = new HttpHost(proxyIP, proxyPort, "http");
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
Categories: Java, Programmazione Tags: , ,

Apache Http Client 4.1: Inviare un file xml tramite POST

April 4th, 2011 No comments

Ottenuto in qualche modo un oggetto valido HttpClient, il resto è:

HttpPost post = new HttpPost("http://localhost:8080/servlet...");
 
// Creo il file XML da inviare tramite post
xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-15\"?><... il mio file xml ..." ;
 
try {
 
	post.setEntity(new StringEntity(xml));
 
	HttpResponse response = httpclient.execute(post);
	HttpEntity entity = response.getEntity();	
 
	if (entity != null) {
		System.out.println(EntityUtils.toString(entity));
	}	    	
 
} catch (UnsupportedEncodingException e) {
	...
} catch (ClientProtocolException e) {
	...
} catch (ParseException e) {
	...
} catch (IOException e) {
	...
}
Categories: Java, Programmazione Tags: , , ,

Delphi e Lotus Notes: scorrere i documenti di una vista

March 1st, 2011 3 comments

Innanzitutto occorre importare la libreria:

Domino_TLB

poi dichiarare le variabili:

_session:TNotesSesion;
_notesdb:IDatabase;
_views: OleVariant;
_view: IView;
_documents: IDocumentCollection;
_document: IDocument;

ed ecco un pò di codice di esempio:

begin
 
  CoInitializeEx(nil, COINIT_APARTMENTTHREADED);
 
  try
 
      // Creo la sessione
      _session := TNotesSession.Create(nil);
      // La inizializzo con la mia password notes
      _session.Initialize('password');
 
      // Creo l'oggetto database 
      _notesdb := _session.GetDatabase('server','database',False);
 
      // Ecco come ottenere l'elenco di tutte le viste
      _views := _notesdb.Views;
      for I := 0 to VarArrayHighBound(_views, 1) - VarArrayLowBound(_views, 1) do
      begin
        _view := IView(IUnknown(_views[I]));
        writeln(_view.Name);
       end;
 
      // Esempio di utilizzo della proprietà GetAllDocumentsByKey di una vista
      _view := _notesdb.GetView('Lamiavista');
      if _view <> nil then
      begin
        _documents := _view.GetAllDocumentsByKey('Valore della chiave',true);
        //adesso che ho una collezione di documenti, la ciclo, ed estraggo il
        // valore del campo 'pippo' di ogni documento
        _document := _documents.GetFirstDocument;
        while _document <> nil do
        begin
          writeln(String(_document.GetItemValue('pippo')[0]));
          _document := _documents.GetNextDocument(_document);
        end;
      end;
 
    readln;
end;

Struts2: come integrare Struts2 e Tiles2

January 8th, 2011 No comments

Scarica il progetto di esempio (Eclipse Helios).

Ho realizzato un progetto di esempio che integra Struts 2 e Tiles 2, da poter utilizzare come punto di partenza per progetti futuri. come IDE utilizzo Eclipse Elios, come servlet container Tomcat 7, il tutto dentra una Ubuntu 10.10 a 64 bit.

In maniera molto veloce e superficiale è sufficiente:

  • creare un Progetto Web in Eclipse
  • Aggiungere le librerie sotto indicate al progetto
  • Aggiungere i file struts.xml e tiles.xml e configurarli correttamente
  • configurare correttamente il file web.xml
  • creare le eventuali jsp

Di seguito una immagine delle librerie e dei file presenti nel mio progetto Web:

Il file struts.xml deve contenere la seguente dichiarazione:

	<package name="default" extends="struts-default" namespace="/">
		<result-types>
			<result-type name="tiles"
				class="org.apache.struts2.views.tiles.TilesResult" />
		</result-types>
	</package>

Nel mio esempio definisco la pagina in questo modo nel file tiles.xml:

<tiles-definitions>
 
	<definition name="baseLayout" template="/BaseLayout.jsp">
		<put-attribute name="title" value="" />
		<put-attribute name="header" value="/Header.jsp" />
		<put-attribute name="menu" value="/Menu.jsp" />
		<put-attribute name="body" value="/Body.jsp" />
		<put-attribute name="footer" value="/Footer.jsp" />
	</definition>
 
</tiles-definitions>

ovvero con 4 sezioni: header, menù, body e footer

Il risultato finale è la strabiliante pagina web:

Scarica il progetto di esempio (Eclipse Helios).

a>

Struts2: differenza di comportamento nei tag s:property, s:text nel caso di innerhtml

January 5th, 2011 2 comments

Questo è un esempio di come si comportano diversamente il tag s:property e il tag s:text quando all’interno della stringa che deve essere visualizzata sono presenti tag HTML.

Considero una action con una proprietà di tipo String[] il cui valore di ogni elemento è simile a questo: ”

links[0] = "<a href=\"www.google.it\">google</a>";

ovvero contiene codice HTML che posso volere essere visualizzato come tale oppure essere iniettato nella pagina:

private String[] links;
public void setLinks(String[] links) {
	this.links = links;
}
 
public String[] getLinks() {
	return links;
}	
 
public String execute() throws Exception {
 
	setLinks(new String[]{}"<a href=\"http://www.google.it\">google</a>", 
                     "<a href=\"http://www.twitter.com\">twitter</a>"");
	return SUCCESS;
}

Nella JSP di ritorno della action scrivo:

<ul>
<s:iterator value="links" >
    <li><s:property /></li>
</s:iterator>
</ul>
 
<ul>
<s:iterator value="links" var="link">
	<li><s:text name="link"/></li>
</s:iterator>
</ul>

Il risultato che ottengo sono due liste, nella prima delle quali il codice html è visibile come tale, mentre nella seconda il codice html viene inettato all’interno della pagina, come innerhtml:

Utilizzando <s:property>:

    <a href="www.google.it">google</a>
    <a href="www.twitter.it">twitter</a>

Utilizzando <s:text>:

Categories: Java, Struts Tags: , , , ,