Category Archives: Code

servlet doGet /doPost

there is a method to get the launch the doGet method servlet when we start the server on eclipse or when we access the server.
there is a JSP page which is in charge to display all the details given by a database.
we must load the database before launching the JSP and displaying the date.

all the magic happen in the web.xml configuration file :

================================================================================================================================================================

 

<?xml version=”1.0″ encoding=”UTF-8″?>
<web-app xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://java.sun.com/xml/ns/javaee” xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd” version=”3.0″>
<display-name>Lab03_Project</display-name>

<context-param>
<param-name>instruction</param-name>
<param-value>
Please enter a temperature to convert.
</param-value>
</context-param>

<servlet>
<servlet-name>Driver</servlet-name>
<servlet-class>a00805231.assignment1.Driver</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>Driver</servlet-name>
<url-pattern>/assignment1</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>assignment1</welcome-file>
</welcome-file-list>
</web-app>

we have to get the serlvet name Driver and the access to the Main class called Driver as well.
there is a server mapping which is going to map the url assignment1 to the servlet name.

then there is the welcome file before it was my main JSP page called index.jsp so the server were launching this page by default then skipping the doGet method which load the DB(this need to be fixed later to implement this inside the init method of the servlet.
here we choose to provide the url-pattern called assignment1 which is going to launch the servelet main class and the doGet by default.

This is a remionder for me in case i need this later.

COMP-2613 RaodMap

COMP-2613

Week
Outcome/Material Covered
Assignment
Note! The topics below have links to the Java Tutorial. You are expected to read the material each week.
0
The following is covered in the prerequisites and you are expected t know this material:
1
The eclipse Integrated Development Environment
Lab 1
2
Core Classes – Numbers & Strings
Debugging
Lab 2
3
Quiz 1
Lab 3
4
Lab 4
5
Quiz 2
Lab 5
6
Midterm Exam (1 hour)
Assignment Q & A
Assignment 1 due before session 7
7
Lab 7
NOTE: Course Withdrawal Deadline
Please inform your instructor that you are dropping this course. You must also fill out and submit the ‘REQUEST TO WITHDRAW FROM A PART-TIME STUDIES COURSE’ before week 8 or else you will receive a failing grade on your academic record.
8
(read up to Guarded Blocks)
Lab 8
9
User Interfaces with Swing
Lab 9
Quiz 3
10
Design patterns featuring Model-view-Controller
Lab 10
Assignment 2 due before session 11
11
Quiz 4
12
Final Exam

deferencer pointeur en C

Ici, je vais expliquer le notion de deferencement de pointeurs en C.

Un pointeur contient une addresse qui identifie l’addresse d’une variable.

 

lorsque l’on veut acceder a une valeur, une donnee localise a une addresse memoire qui est pointe par un pointeur, on apeller cela deferencer un pointeur.

en C ceci est un pointeur de char :

const char*  p = “abc”;

on utilise 4 octets (bytes), 4 car on mets en memoire 4 caractere a, b, c et 0 pour indiquer au C ou ce termine la chaine de caractere.

tous ceci est stocke dans un addresse memoire quelconque et sont addresse est stocke dans la variable p

 

addresse memoire                                     variable                               contenue
1000                                                                                                                      ‘a’
1001                                                                                                                      ‘b’
1002                                                                                                                      ‘c’
1003                                                                                                                        0
….
2000-2003                                                                p                                         1000

pour deferencer p on utilise une de ces code :

assert(*p == 'a');le premier caractere a  l'addresse p sera 'a'
assert(p[1] == 'b'); p[1] deference le pointeur cree en ajoutant p et une  fois la taille de la chose que p pointe dans ce cas ce un char de taille 1 octet 
assert(*(p + 1) == 'b');on ajoute 1 au pointeur soit addresse 1001

p++; va faire pointer sur addresse 1001 et

assert(*p == 'b'); et p pointera vers 'b'

Dans le cas ou on utilise l’allocation de memoire dynamique avec un malloc

int* p = malloc(sizeof(int)); reserve de la memoire a un endroit  quelconque

*p = 10; on deference le pointeur de la memoire et on ecrit une valeur
fn(*p);  appelle fonction fn et passe la valeur a l'addresse de p.
(*p) += 3; change la valeur de p et ajoute 3.
free(p); libere la memoire alloue dynamiquement.


un cas pour les void  * :

le compilateur nous transmettra un message d’erreur si on essaie de deferencer un void * car il ne sait pas la taille de la variable qu’il  pointe.

si  par exemple la variable pointe est un char qui est un octet le compilateur accedera ce seul octet. si il sagit d’un double il y aura plus de memoire alloue mais aussi son architecture sera differente. avant de deferencer ce pointeur generique void * nous devrons le caster vers le type de valeur desire.

quelques exemples pour le deferencement :

int nb = 6;
void *ptr;
ptr = &nb; /* ici dans la case memoire de ptr on range l’addresse de nb. */
printf(“\nLa valeur de nb est : %d”,*((int*)ptr)); /* on caste le ptr en pointeur de int, puis on accede a sont contenant grace a l’etoile exterieure (*…..). */

ou alors :

int nbptr
void* ptr = NULL;
ptr = &nb;
nbptr = *((int*)ptr); /* meme explication que au dessus, le pointeru

Le pointeur void* ne pointe vers rien de particulier, si l’on veut le deferencer, il faut d’abors changer de type de pointeur, dans ce cas ci il faut passer par un pointeur de int.
soit l’ecriture (int*) qui caste le pointeur void* appeler ptr en pointeur de int, mais ce n’est pas fini.
notre pointeur ressemble a int* ptr, pour acceder a la case memoire par ce pointeur il faut donc regarder ou il pointe ou le deferencer avec *((int*) ptr) qui va donc extirper la valeur int de la case memoire.