Wyklad TI 5


2010-03-31
Technologie internetowe
Wykład 5
Wprowadzenie do skrytpów serwerowych
Skrypty serwerowe
Programy osadzone w kodzie HTML
Technologie PHP, ASP (JavaScript, VBScript),
ASP.NET (JScript, C#, J#, VB.NET .), JSP
(Java)
Wykonywane przez serwer WWW
Brak wymagań względem przeglądarki
Ukryte kody zródłowe
Konieczność komunikacji przez sieć
Serwer musi udostępniać technologię
Możliwość współpracy z bazami danych
1
2010-03-31
Model komunikacji
Żądanie HTTP
Odpowiedz HTTP (HTML, JPG)
Klient
Serwer
Dlaczego ASP.NET ?
Dowolny język programowania .NET (ok. 50)
Filozofia obiektowa sterowana zdarzeniami
Możliwość automatyzacji budowy serwisu
Możliwość pracy komponentowej
Skrypty kompilowane
Możliwości buforowania treści
Wsparcie dla XML i WebSerwisów
Praca w środowiskach Windows i Linux (projekt
MONO)
Darmowe środowiska programistyczne (Visual Web
Developer, #develop)
2
2010-03-31
Język C#
Język opracowany dla Microsoft przez
Andersa Hejlsberga
Język łączący w sobie rozwiązania C++ i
Java
Obecnie jest z najsilniej rozwijanych
języków programowania
Operatory
Arytmetyczne: +,-,*,/,++,-=,+=,*=,/=
Porównań: ==,!=,<,>,<=,>=
Logiczne: &&, ||, !
3
2010-03-31
Instrukcje
for (wyr1;wyr2;wyr3) { /* blok */}
while (warunek) { /* blok */ }
do { /* blok */} while (warunek)
if (warunek) { /* blok1 */} else { /*blok2*/}
switch (zmienna) { case 1: {
/*blok1*/};break; case 2: {
/*blok2*/};break; default: { /*blok*/};}
Zmienne
Język C# wykorzystuje jawne deklaracje zmiennych i typowanie
Typy podstawowe:
" int
" float
" double
Deklaracja zmiennych:
" long
int a;
" short
string imie,nazwisko;
" byte
double x=5;
" char
" string
" bool
4
2010-03-31
Konwersja typów
Konwersja niejawna:
int a=5;
double b=a;
Rzutowanie:
double a=5;
int b=(int)a;
Konwersja:
string a= 5 ;
int b=Convert.ToInt32(a);
Deklaracja metody
typ_zwracany Nazwa(typ1 arg1,typ2 arg 2& )
{
//Ciało metody
}
nagłówek
Deklaracja metody zawsze musi określać typ zwracanych danych. Jeśli metoda nic nie
zwraca, zwracany typ określa się jako void. Brak argumentów metody zapisuje się przy
pomocy pustej listy parametrów () po jej nazwie. Prawidłowe wywołanie metody w kodzie,
musi posiadać wszystkie argumenty wejściowe. Zarówno argumenty wejściowe, jak i
zmienna, do której zostanie podstawiony wynik metody, muszą być zgodne pod względem
typu danych z informacją podaną w deklaracji metody.
5
2010-03-31
Metoda bezargumentowa nie
zwracająca wartości
void Przywitaj() {
Console.WriteLine("Hello");
}
Przywitaj();
}
}
Metoda argumentowa nie
zwracająca wartości
static void Iloczyn(int a,int b) {
Response.Write ("Iloczyn="+a*b);
}
Iloczyn(5,6);
6
2010-03-31
Metoda argumentowa zwracająca
wartość
int Iloczyn(int a,int b) {
return a*b;
}
int x=Iloczyn(5,6)+4;
Response.Write("5*6+4="+x);
Skrypt kliencki i serwerowy
Skrypt widziany przez serwer Skrypt widziany przez przeglądarkę
<%@ Page Language="C#" %> <%@ Page Language="C#" %>

Skrypt Skrypt


<% 0
1
2
3
4

// SKRYPT SERWEROWY
for (int i=0;i<5;i++) Response.Write(i+"
");
0
1
%>
2
3
4
Wynik
0

1
2
3
4
7
2010-03-31
Osadzanie skryptu serwerowego
INLINE w kodzie HTML

Dzisiejsza data to: <% =System.DateTime.Now.ToLongDateString() %>

Jako blok <% .. %> - dla dynamicznej generacji treści

<%
for (int i=0; i<5; i++) Response.Write(i+"
");
%>

Jako blok - do definicji metod, zdarzeń itd.


Osadzanie skryptu serwerowego
Dołączanie zewnętrznego pliku kodu
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Strona.aspx.cs" Inherits="Strona" %>
Strona.aspx.cs
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class Strona : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
8
2010-03-31
Dyrektywy
<%Page Language="C#" Debug="true">
Język Wyszukiwane
błędów
wykonania
<@%Import Namespace="System.Data" %>
Przestrzeń nazw
Obiekt Page
Obiekt Page reprezentuje stronę przygotowywaną na serwerze przed
wysłaniem jej do przeglądarki użytkownika.
Obiekty zagnieżdżone:
" Request  umożliwia dostęp do informacji o żądaniu wysłanym z
przeglądarki
" Response  obiekt reprezentujący wszystkie dane wysyłane z serwera do
przeglądarki (treść strony, cookies, przekierowania)
" Server  obiekt pozwalający uzyskać informacje o serwerze i jego zasobach
9
2010-03-31
Obiekt Response
Metody:
" Write(x)  dopisuje x do strony HTML
" WriteFile(nazwa)  dodaje zawartość pliku do pakietu HTTP
" End()  zakończenie przetwarzanie i wysłanie pakietu HTTP
" Redirect(url)  wysyła do przeglądarki polecenie
przekierowania na adres URL
REQUEST
Żądanie do strony1.aspx
Nagłówek HTTP z przekierowaniem
Żądanie do strony1.aspx
Zawartość strony strona2.aspx
Dynamiczna generacja HTML
<%@ Page language= C#" %>
<%@ Page Language="C#" %>

Test

Test


<% for (int i=1;i<10;i++)
<%
{ %>
Response.Write("
");

for (int i=1;i<10;i++)
<%
{
for (int j=1; j<10;j++)
Response.Write("");
{
for (int j=1; j<10;j++)
%>
Response.Write("");

Response.Write("");
<% } %>
}

%>
<% } %>

"+(i*j)+"<% =(i*j) %>




10
2010-03-31
Automatyczne przekierowanie
<%@ Page Language="C#" %>

Test

<%
System.Random los=new System.Random();
switch (los.Next(0,3))
{
case 1: Response.Redirect("http://www.onet.pl"); break;
case 2: Response.Redirect("http://www..wp.pl"); break;
case 3: Response.Redirect("http://www.interia.pl"); break;
default: Response.Wrtie("Zostajemy tutaj"); break;
}
%>


Obsługa daty i czasu  klasa DateTime
Metody:
" ToString()  konwersja na tekst daty i czasu
" ToLongTimeString()  konwersa na pełny tekst czasu
" ToShortTimeString()  konwersja na skrócony tekst czasu
" ToLongDateString()  konwersa na pełny tekst czasu
" ToShortDateString()  konwersja na skrócony tekst czasu
Właściowści: <%@ Page Language="C#" %>

" Hour  godzina
Skrypt
" Minute  minuta
<%
" Second  sekunda
DateTime czas=DateTime.Now;
" Year  rok Response.Write(czas.ToLongTimeString() + "
");
Response.Write(czas.Year + "-" + czas.Month + "-" +
" Month  miesiąc (1-12)
czas.Day);
" Day %>

" DayOfWeek (Monday, Tuesday )

" DayOfYear
11
2010-03-31
Obiekt Request
Właściwości:
" Form  kolekcja pól formularza wysłanych metodą POST
" QueryString  kolekcja pól formularza wysłanych modą GET
" Browser  informacje o przeglądarce użytkownika i jej możliwościach
Browser:
" Borwser  Nazwa (IE)
" Type  Typ (IE7)
" Version  Wersja (7.0)
" MajorVersion  Numer główny wersji (7)
" MinorVersion  Numer poboczny wersji (0)
" Beta  Wersja beta (false)
" Crawler  Robot internetowy (false)
" Win32  Windows 32-bitowy (true)
" Frames  Dostępne ramki (true)
" Tables  Dostępne tabele (true)
" Cookies  Dostępne ciasteczka (true)
" EcmaScriptVersion  dostępna wersja JS (1.2)
Przetwarzanie danych z formularza
Serwer
Klient
Dane z formularza
Pytanie.html Odpowiedz.aspx
Wygenerowany kod HTML stanowiący odpowiedz
12
2010-03-31
Przetwarzanie danych z formularza
http://www.moj.pl/odpowiedz.asp?imie=Jan&nazwisko=Kowal
pytanie.htm

Pytanie


Imię:

Nazwisko:




odpowiedz.aspx
<%@ Page Language="C#" %>
Wynik

Przysłano:
Odpowiedz
imie=Jan&nazwisko=Kowal

<%
Response.Write("Przysłano: \n"+Request.QueryString);
%>


Przetwarzanie danych z formularza
http://www.moj.pl/odpowiedz.asp
pytanie.htm

Pytanie


Imię:

Nazwisko:




odpowiedz.aspx
<%@ Page Language="C#" %>
Wynik

Przysłano:
Odpowiedz
imie=Jan&nazwisko=Kowal

<%
Response.Write("Przysłano: \n"+Request.Form);
%>


13
2010-03-31
Przetwarzanie danych z formularza
http://www.moj.pl/odpowiedz.asp?imie=Jan&nazwisko=Kowal
pytanie.htm

Pytanie


Imię:

Nazw:




odpowiedz.aspx
<%@ Page Language="C#" %>

Wynik
Odpowiedz
Imię: Jan
<%
Nazwisko:Kowal
Response.Write("Imię: "+Request.QueryString["imie ]+"Response.Write("Nazwisko:"
+Request.QueryString["nazwisko ]+"%>


Przetwarzanie danych z formularza
http://www.moj.pl/odpowiedz.asp
pytanie.htm

Pytanie


Imię:

Nazw:




odpowiedz.aspx
<%@ Page Language="C#" %>

Wynik
Odpowiedz
Imię: Jan
<%
Nazwisko:Kowal
Response.Write("Imię: "+Request.Form["imie ]+"Response.Write("Nazwisko:"
+Request.Form["nazwisko ]+"%>


14
2010-03-31
Klasa Math
Metody:
" Sqrt(x)
" Abs(x)
" Pow(a,n)
" Round(x), Ceiling(x), Floor(x)
" Sin(rad),Cos(rad), Tan(rad)
Właściwości:
" Sinh(rad), Cosh(rad), Tanh(rad)
" E
" Asin(x),Acos(x),Atan(x), Atan2(x,y)
" PI
" Log(a,pod), Log10(x)
" Max(x1,x2), Min(x1,x2)
" Exp(n)
Obliczenia na danych z formularza
pytanie.htm

Wysokość:

Promięń:


odpowiedz.aspx
<%@ Page Language="C#" %>

Objętość walca

<%
double h,r,V;
h=Convert.ToDouble(Request.QueryString["wys ]);
r=Convert.ToDouble(Request.QueryString["prom"]);
V=Math.PI*Math.Pow(r,2)*h;
Response.Write("Objętość wynosi "+V.ToString("F2 )+" cm2");
%>


Nowe dane


15
2010-03-31
Strona samodzielna
<%@ Page Language="C#" %>

Objętość walca


Wysokość:

Promięń:



<%
if (Request.QueryString.Count > 0)
{
double h, r, V;
h = Convert.ToDouble(Request.QueryString["wys"]);
r = Convert.ToDouble(Request.QueryString["prom"]);
V = Math.PI * Math.Pow(r, 2) * h;
Response.Write("Objętość wynosi " + V.ToString("F2") + " cm2");
}
%>




Wyrażenia regularne  klasa RegEx
Przestrzeń nazw: System.Text.RegularExpressions
RegEx wyrazenie=new RegEx(@"^\d(0}$ );
Metoda IsMatch
string tekst="Hello";
Regex wyrazenie=new Regex(@"^[A-Z][a-z]+$");
if (wyrazenie.IsMatch(tekst)) Response.Write("OK"); else Response.Write("yle");
Metoda Matches
string tekst = "Mój pesel to 80120102256 a twój to 80111102256";
Regex wyrazenie=new Regex(@"\d{11}");
foreach (Match m in wyrazenie.Matches(tekst))
Response.Write(m.Value+"
");
Metoda Replace
string tekst = "Ala ma kota a Ola ma psa";
Regex wyrazenie=new Regex(@"ma");
Response.Write(wyrazenie.Replace(tekst,"posiada"));
16
2010-03-31
Obiekt Server
Metody:
" Transfer  przekierowanie obsługi strony po stronie serwera
" MapPath  tłumaczenie ścieżki względnej na ścieżkę fizyczną
TRANSFER
Żądanie do strony1.aspx
Zawartość strony strona2.aspx
Mapowanie ścieżki
Katalog
Dysk C:
Serwer
wirtualny
Folder Serwisy
Folder DaneStudentów
STRONA DOMYŚLNA
Stona index.aspx
Stona opis.aspx
Server.MapPath("~ ) C:\Serwisy\DaneStudentów
Server.MapPath( ~/opis.aspx ); C:\Serwisy\DaneStudentów\opis.aspx
Server.MapPath( opis.aspx ); C:\Serwisy\DaneStudentów\opis.aspx
17
2010-03-31
Przekazywanie informacji przez hiperłącze

Wybierz wielkość tabliczki mnożenia:

<%
for (int i = 5; i <= 9; i++)
Response.Write("Wielkość " + i + "
");
%>


<%
if (Request.QueryString["wielkosc"] != null)
{
Response.Write("");
int w = Convert.ToInt32(Request.QueryString["wielkosc"]);
for (int i = 1; i <= w; i++)
{
Response.Write("");
for (int j = 1; j <= w; j++)
{
Response.Write("");
}
Response.Write("");
}
Response.Write("
");
Response.Write(i*j);
Response.Write("
");
}
%>

ASP.NET a PHP
<%@ Page Language="C#" %>

Kwadrat Kwadrat







<% if (Request.Form["bok"] != null) if (isset($_POST["bok ])
{ {
double a = Convert.ToDouble(Request.Form["bok"]); $a = $_POST["bok ];
Response.Write("Pole=" + (a * a)); print "Pole=".($a * $a);
} }
%> ?>


18


Wyszukiwarka

Podobne podstrony:
Wyklad TI 1
Wyklad TI 9
Wyklad TI
Wyklad TI 6
Wyklad TI
PREZENTACJA wyklad TI 2
Wyklad TI
Wyklad TI 8
PREZENTACJA wyklad TI 4
Wyklad TI 4
Wyklad TI 3
PREZENTACJA wyklad TI 1
Wyklad TI 7
Wyklad TI
Wyklad TI 2
Wykład TI 05 12 11 2
TI Wykład 08
TI Wykład 03
wyklad Patryka wskaźniki TI 18 12 11

więcej podobnych podstron