PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : dynamischer content


pate33
10.12.2002, 13:53
Hi,

ich hatte vorher ne loesung mit php.

dort hatte ich in der index.php ne funktion get_content(variable);

variable wurde per get in der url uebergeben.

z.b.: index.php?variable=userpage

daraufhin wurde die funktion get_content aufgerufen und die userpage geladen.

das ganze will ich nun in jsp machen.

d.h. ich muss ja theoretisch nen javabean schreiben.

nur wie kann ich aus diesem javabean html code zurueck geben?
d.h. dass eben der content geladen wird.

ich hoffe das versteht jemand ... :rolleyes:

thanks.:D


MrEasy
10.12.2002, 14:37
nö versteh' ich net ganz
beans schreibt man normalerweise um darin logik auszuführen und nix darstellungstechnisches

ich denke mal, du willst folgendes machen:


String sParameter = request.getParameter("variable");
if (sParameter != null) {
getContent();
}

// .....

/**
* getContent schreibt html-code raus
*/
private void getConten() {
out.print("<h1>Hallo HTML</h1>");
// t.b.c.
}

pate33
10.12.2002, 14:40
hm, aber ich kann doch auch ein bean schreiben, mit einer klasse global, welche z.b. eine methode enthaelt get_content() ... und dort wird dann mit out.print gearbeitet, oder?

und, achja, wie uebergeb ich ne variable?

get_content($variable) bestimmt net, oder? :D

MrEasy
10.12.2002, 18:20
hmm, da fragste was :)
ja du müsstest auch im bean das html ausgeben können, könnte aber sein, dass du dafür den Printwriter (also das "out") übergeben musst

mit getContent($variable) klappt's sicher net, immerhin sind wir hier net bei ner skriptsprache :D

der Methodenrumpf sollte so, oder ähnlich aussehen:
private void getContent(String variable);
dann kannste mit getContent(variable); aufrufen

pate33
11.12.2002, 09:48
Hi,

ich habs per system.out gemacht gehabt, aber das funtzt net ...

als was muss ich das out uebergeben? string wohl net, oder?! ;)

ansonsten funtzt z.z. alles. :)

pate33
11.12.2002, 13:45
package jspdemo;

import java.util.*;
import java.io.*;

public class beanFunctions
{

private PrintWriter out;

public beanFunctions()
{
}

public void setWriter(PrintWriter out)
{
this.out=out;
}

public void getContent(String target)
{
if (target != null)
{
out.print("hallo");
}
}
}


das iss der code von dem bean.

dabei kommt aber leider:

500 Internal Server Error
java.lang.NullPointerException


was mach ich falsch?

pate33
11.12.2002, 15:46
habs hinbekommen ... dank mreasy's unterstuetzung ... ;)


package jspdemo;

/**
* Import of foreign classes/packages
*/
import javax.servlet.jsp.*;
import java.io.*;

/**
* @author Patrick Heneise
* @version 0.1
* function collection class
*/
public class beanFunction
{

private JspWriter out;

public beanFunction()
{
}

/**
* Sets the JSPWriter to display html code
* @param out jsp out method
*/
public void setWriter(JspWriter out)
{
this.out=out;
}

/**
* getContent: method to display dynamicly generated code
* @param target string target. tells what page should be loaded.
*/
public void getContent(String target)
{
try
{
// catch exception
if (target != null)
{
out.print("success");
}
else
{
out.print("error");
}
}
catch (java.io.IOException ex)
{
// print a message if an exception occurs.
System.out.println(ex.getMessage());
}
}

/**
* getMenu: method to display dynamicly generated code
* @param target string target. tells what page should be loaded.
*/
public void getMenu()
{
try
{
// catch exception
out.println("success");
}
catch (java.io.IOException ex)
{
// print a message if an exception occurs.
System.out.println(ex.getMessage());
}
}
}


thanks

pate33
12.12.2002, 15:12
eine frage war noch offen: wie erkenne ich, ob die variable per get oder per post uebergeben wurde??

MrEasy
12.12.2002, 16:02
afaik geht das mit JSP's nicht
bei Servlets gibt's dafür die methoden doGet() und doPost()

pate33
12.12.2002, 17:08
ist aber ne ueble sicherheitsluecke, oder net?

im prinzip kann ich doch dann einfach in der url definieren: username=administrator oder so und hab dann admin rechte ... :confused: :confused:

Jan Krüger
12.12.2002, 17:18
na und? dann könnte man auch per telnet nen HTTP-request mit username=administrator im post abschicken und schon hätte man den gleichen effekt. post ist nicht dazu da, mehr sicherheit zu bieten (ausnahme: seiten mit 'post' werden nicht gecached, passwörter werden nicht in der URL sichtbar und so)

MrEasy
12.12.2002, 17:36
Original geschrieben von Patrick Heneise
ist aber ne ueble sicherheitsluecke, oder net?

im prinzip kann ich doch dann einfach in der url definieren: username=administrator oder so und hab dann admin rechte ... :confused: :confused:

wenn das deine einzige sicherheitsabfrage ist, ist das in der tat eine üble sicherheitslücke ;)

einen get-request kannste aber genauso faken wie das post, also is das imho unerheblich

schreib name + passwort in die session dann kannste in jeder admin-seite am anfang einen code-teil includen, der das abcheckt, ob das gültige daten sind