Voir cette page : http://www.ja-sig.org/wiki/display/CASC/Using+CAS+with+Java
Pour l'affichage des caractère envoyé de Tomcat vers le navigateur
<?xml version="1.0" encoding="utf-8" ?> <%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ...
Cette partie est nécessaire pour l'encodage des données envoyées en méthode GET
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" />
Cette partie est nécessaire pour l'encodage des données envoyées en méthode POST
<filter> <filter-name>ssi</filter-name> <filter-class> your.package.Filter </filter-class> <init-param> <param-name>contentType</param-name> <param-value>text/x-server-parsed-html(;.*)?</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>expires</param-name> <param-value>666</param-value> </init-param> <init-param> <param-name>isVirtualWebappRelative</param-name> <param-value>0</param-value> </init-param> </filter> <!-- ==================== Built In Filter Mappings ====================== --> <!-- The mapping for the SSI Filter --> <filter-mapping> <filter-name>ssi</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Avec la classe your.package.Filter :
package your.package; import java.io.IOException; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class Filter implements javax.servlet.Filter{ public void destroy() { } /** Preform the filtering. */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding("UTF-8"); chain.doFilter(request, response); } public void init(FilterConfig config) throws ServletException { } }
Interface : Map
| Classe | Utilité |
|---|---|
| LinkedHashMap | Tri dans l'ordre d'insertion |
/* Chargement du driver oracle */ Class.forName("$driver"); /* Connexion a la base de donnees */ String url = "$url"; Connection connection = DriverManager.getConnection(url, utilisateur, mdp);
Avec tomcat, on peut réaliser une file de connexion (connections pool). Faire un Connection.close() ne fermera pas réellement la connexion vers la base de données, mais rendra la connexion disponible pour une autre utilisation. Cette technique permet de réduire la charge du serveur.
Dans le fichier server.xml :
<Context docBase="??" path="/??" reloadable="true" source="??"> <Resource name="dataSource" auth="Container" type="javax.sql.DataSource" maxActive="10" maxIdle="10" maxWait="10000" username="$user" password="$pwd" driverClassName="$driver" url="$url" /> </Context>
Dans le web.xml :
<resource-ref> <res-ref-name>dataSource</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
Dans les classes :
DataSource dataSource = (DataSource)((Context)InitialContext.doLookup("java:comp/env")).lookup("dataSource"); Connection connection = dataSource.getConnection(); //travail connection.close();
Note : Pensez à mettre le driver au format .jar dans le dossier Tomcat/lib.
N'oubliez pas d'appeller la méthode close() pour libérer la connexion, sinon vous aurez une fuite de connexion. (pool leaking)
| Base de données | $driver | $url | Télécharger |
|---|---|---|---|
| Oracle | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:@//machine:port/bdd | |
| PostgreSQL | org.postgresql.Driver | jdbc:postgresql://machine:port:bdd |