Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
2
20240528-BJava
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
20240528-BJava
Commits
794888fd
Commit
794888fd
authored
Jun 12, 2024
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
JSP z beanami i taglibami
parent
6a1d5207
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
129 additions
and
0 deletions
+129
-0
pom.xml
PC23-Serwlety/pom.xml
+18
-0
PrzykladowyBean.java
...erwlety/src/main/java/serwlety/beans/PrzykladowyBean.java
+34
-0
przyklad.jsp
PC23-Serwlety/src/main/webapp/przyklad.jsp
+77
-0
No files found.
PC23-Serwlety/pom.xml
View file @
794888fd
...
@@ -29,6 +29,24 @@
...
@@ -29,6 +29,24 @@
<artifactId>
commons-lang3
</artifactId>
<artifactId>
commons-lang3
</artifactId>
<version>
3.14.0
</version>
<version>
3.14.0
</version>
</dependency>
</dependency>
<dependency>
<groupId>
jakarta.servlet.jsp.jstl
</groupId>
<artifactId>
jakarta.servlet.jsp.jstl-api
</artifactId>
<version>
3.0.0
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
org.glassfish.web
</groupId>
<artifactId>
jakarta.servlet.jsp.jstl
</artifactId>
<version>
3.0.1
</version>
<scope>
provided
</scope>
</dependency>
<!-- stara klasyczna wersja - tylko dla starszych serwerów. Java EE 8 lub starsze: -->
<!-- <dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency> -->
</dependencies>
</dependencies>
<build>
<build>
...
...
PC23-Serwlety/src/main/java/serwlety/beans/PrzykladowyBean.java
0 → 100644
View file @
794888fd
package
serwlety
.
beans
;
import
java.util.Random
;
public
class
PrzykladowyBean
{
private
String
napis
=
"Ala ma kota"
;
private
Random
random
=
new
Random
();
private
int
liczba
;
public
String
getNapis
()
{
return
napis
;
}
public
String
getNapisDuzymiLiterami
()
{
return
napis
.
toUpperCase
();
}
public
void
setNapis
(
String
napis
)
{
this
.
napis
=
napis
;
}
public
String
[]
getWords
()
{
return
napis
.
split
(
" "
);
}
public
int
wylosuj
()
{
return
random
.
nextInt
(
1000
);
}
@Override
public
String
toString
()
{
return
"PrzykladowyBean z zawartością "
+
napis
;
}
}
PC23-Serwlety/src/main/webapp/przyklad.jsp
View file @
794888fd
<
%@
page
contentType=
"text/html;charset=UTF-8"
language=
"java"
%
>
<
%@
page
contentType=
"text/html;charset=UTF-8"
language=
"java"
%
>
<
%@
taglib
prefix=
"c"
uri=
"jakarta.tags.core"
%
>
<html>
<html>
<head>
<head>
<title>
Title
</title>
<title>
Title
</title>
...
@@ -10,6 +11,13 @@
...
@@ -10,6 +11,13 @@
<p>
Wynik operacji Java:
<
%=
java
.
time
.
LocalTime
.
now
()
%
></p>
<p>
Wynik operacji Java:
<
%=
java
.
time
.
LocalTime
.
now
()
%
></p>
<p>
Wynik wyrażenia EL: ${2+3*4}
</p>
<p>
Wynik wyrażenia EL: ${2+3*4}
</p>
<form>
<label
for=
"imie"
>
Podaj imię:
</label>
<input
type=
"text"
name=
"imie"
id=
"imie"
>
<br>
<button>
Wyślij
</button>
</form>
<h3>
Skryptlety - różne wersje
</h3>
<h3>
Skryptlety - różne wersje
</h3>
<!-- To jest komentarz HTML - on będzie wysłany do klienta -->
<!-- To jest komentarz HTML - on będzie wysłany do klienta -->
<
%
--
To
jest
komentarz
w
JSP
.
Klient
tego
nie
zobaczy
--
%
>
<
%
--
To
jest
komentarz
w
JSP
.
Klient
tego
nie
zobaczy
--
%
>
...
@@ -21,14 +29,23 @@
...
@@ -21,14 +29,23 @@
out
.
println
("
Hej
,
tu
Java
wewn
ą
trz
JSP
");
out
.
println
("
Hej
,
tu
Java
wewn
ą
trz
JSP
");
System
.
out
.
println
("
a
kuku
");
System
.
out
.
println
("
a
kuku
");
int
x =
321;
int
x =
321;
String
[]
imiona =
{"Ala",
"
Ola
",
"
Ela
"};
%
>
%
>
<p>
Znowu tryb HTML
</p>
<p>
Znowu tryb HTML
</p>
<
%
--
brzydki
styl
,
ale
dzia
ł
a:
--
%
>
<ul>
<
%
for
(
String
imie
:
imiona
)
{
%
>
<li><
%=
imie
%
></li>
<
%
}
%
>
</ul>
<
%
--
Istniej
ą
specjalne
wersje
skryptlet
ó
w
.
<
%
--
Istniej
ą
specjalne
wersje
skryptlet
ó
w
.
Powy
ż
ej
widzielismy
zwyk
ł
y
blok
kodu
.
Powy
ż
ej
widzielismy
zwyk
ł
y
blok
kodu
.
Poni
ż
ej
zobaczymy
wstawienie
warto
ś
ci
do
outputu:
--
%
>
Poni
ż
ej
zobaczymy
wstawienie
warto
ś
ci
do
outputu:
--
%
>
<p>
Wypisanie wyniku:
<
%=
2
*
x
%
></p>
<p>
Wypisanie wyniku:
<
%=
2
*
x
%
></p>
<p>
Odczyt czasu:
<
%=
java
.
time
.
LocalTime
.
now
()
%
></p>
<p>
Odczyt czasu:
<
%=
java
.
time
.
LocalTime
.
now
()
%
></p>
<p>
Prametr imie:
<
%=
request
.
getParameter
("
imie
")
%
></p>
<
%!
<
%!
static
int
licznik =
100;
static
int
licznik =
100;
...
@@ -40,5 +57,65 @@
...
@@ -40,5 +57,65 @@
<p>
Metoda:
<
%=
dajGlos
()
%
></p>
<p>
Metoda:
<
%=
dajGlos
()
%
></p>
<
%
--
Plik
JSP
jest
na
serwerze
t
ł
umaczony
na
klas
ę
serwletu
i
kompilowany
.
--
%
>
<
%
--
Plik
JSP
jest
na
serwerze
t
ł
umaczony
na
klas
ę
serwletu
i
kompilowany
.
--
%
>
<h2>
Inne sposoby
</h2>
<p>
Mądrzejszy sposób korzystania z JSP łączy takie trzy techniki:
</p>
<ol>
<li><strong>
Expression Language (EL)
</strong>
- wyrażenia wpisywane w znacznikach
<code>
$ { }
</code>
,
<li><strong>
beans
</strong>
- obiekty przygotowane po stronie aplikacji lub w samym skrypcie JSP, do których JSP ma dostęp,
<li><strong>
taglibs
</strong>
- biblioteki dodatkowych tagów, które działają jak polecenia, chociaż są pisane jak tagi HTML.
</ol>
<h3>
EL
</h3>
<
%
--
proste
wyra
ż
enie
EL
--
%
>
<p>
Wynik obliczenia: ${2 + 3 * 4}
</p>
<p>
Parametr imie:
<strong>
${param.imie}
</strong></p>
<jsp:useBean
id=
"obiekt"
class=
"serwlety.beans.PrzykladowyBean"
/>
<p>
Obiekt beanowy: ${obiekt}
</p>
<p>
Napis: ${obiekt.napis}
</p>
<p>
Napis DL: ${obiekt.napisDuzymiLiterami}
</p>
<
%
--
<
p
>
Napis: ${obiekt.liczba}
</p>
-->
<
%
--
Mo
ż
na
wywo
ł
ywa
ć
metody
o
nazwach
niezgodnych
z
konwencj
ą
getter
ó
w:
--
%
>
<p>
Wywołanie metody: ${obiekt.wylosuj()}
</p>
<jsp:setProperty
property=
"napis"
name=
"obiekt"
value=
"Ola ma psa"
/>
<p>
Napis po zmianie: ${obiekt.napis}
</p>
<p>
Duże litery: ${obiekt.napisDuzymiLiterami}
</p>
<
%
--
Gdy
wpisujemy
odwo
ł
anie
do
obiektu
,
to
jest
on
printowany
za
pomoc
ą
toString
().
Gdy
wpiszemy
co
ś,
co
wygl
ą
da
na
odczyt
pola
obiektu
,
to
jest
wywo
ł
ywany
getter
zwracaj
ą
cy
to
property
,
np
.
osoba
.
wiek
powoduje
wywo
ł
anie
getWiek
()
Gdy
wpiszemy
co
ś
z
nawiasami
na
ko
ń
cu
,
to
jest
to
wywo
ł
anie
metody
.
Polecenie
setProperty
skutkuje
wywo
ł
aniem
settera
,
np
.
setNapis
(...)
--
%
>
<
%
--
Biblioteka
tag
ó
w
("
taglib
")
to
jest
zestaw
polece
ń
zapisywanych
w
formie
znacznik
ó
w
w
obr
ę
bie
JSP
.
Te
znaczniki
zawsze
s
ą
poprzedzane
prefiksem
,
np
.
<
c:if
>
....
Tagliby można definiować samodzielnie, ale w 98% przypadków używa się zestawu nazywanego JSTL
"Java Standard Tag Library"
--%>
<h3>
Taglibs
</h3>
<ul>
<c:forEach
var=
"i"
items=
"5,10,15"
>
<li>
${i}
<c:choose>
<c:when
test=
"${i % 2 == 0}"
>
parzyste
</c:when>
<c:otherwise>
nieparzyste
</c:otherwise>
</c:choose>
</li>
</c:forEach>
</ul>
<p>
Słowa napisu:
</p>
<ul>
<c:forEach
var=
"word"
items=
"${obiekt.words}"
>
<li>
${word}
</li>
</c:forEach>
</ul>
</body>
</body>
</html>
</html>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment