Avatar billede Daniel.E Praktikant
06. oktober 2004 - 02:48 Der er 11 kommentarer og
3 løsninger

Hurtig i gang med jsp

Hej

Jeg skal i gang med JSP, og har aldrig prøvet det før.

Jeg har rigelig erfaring med programmering i forvejen, så jeg behøver ikke "Dummy-JSP-For-You" guiden, men en som skærere lige igennem.

Jeg har også lige et par spørgsmål om JSP.


1).  Hvad er dens formål ?
2).  Hvorfor JSP ?
3).  Hvad kan JSP, som PHP ikke kan ?

Står det for noget med Java Scripting Pages ??
Avatar billede simonvalter Praktikant
06. oktober 2004 - 04:49 #1
http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/JSPIntro.html
http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets.html

http://www.google.dk/search?hl=da&ie=UTF-8&q=jsp+tutorial&meta=

brug tomcat eller resin som din servlet container de er rimligt hurtige at komme igang med.

1. det har samme formål som php, at lave dynamiske websites tror ikke der er så meget mere i det men det kan sikkert siges smartere ;)

2. java er svjv rimlig brugt inden for enterprise applicationer og browseren er udbredt som klient da det bla. letter opdateringer af mange klienter på samme tid.
derfor er det vel også naturligt at benytte java til præsentation og lette kommunikationen til resten af systemet.

3. tale direkte med et java system.. jeg skal ikke kunne sige om der er andre fordele.

jsp kan iøvrigt hurtigt blive lige så stort et rod som php eller asp hvis du ikke passer på. leg med jsp men jeg mener at hvis det skal laves ordenligt skal du benytte et ordenligt mvc framework some f.eks struts. Jsf kan jeg også anbefale dig at kigge på. med rod mener jeg f.eks at have scriptlet kode i dine jsp filer... lidt som at blande php kode og html tags.


og jsp er javaserver pages
Avatar billede medions Nybegynder
06. oktober 2004 - 08:51 #2
Du har muligheder for Codebehind osv. med JSP, det er et rigtig lækkert programmeringssprog!

JSP = Java, og det vil derfor være til fordel at fx. sætte sig ind i Java inden man sætter sig ind i JSP. JSP er ren Java kode... :)

Det skulle ikke være for svært at finde en Java guide ude på nettet, da det er et meget velkendt sprog!

En anden dejlig ting ved java er at du kan arbejde med Servlets og at det kan kører på alle Operativ Systemer!

//>Rune
Avatar billede arne_v Ekspert
06. oktober 2004 - 11:28 #3
http://www.eksperten.dk/artikler/28 giver en kort intro til JSP og servlets
Avatar billede arne_v Ekspert
06. oktober 2004 - 12:10 #4
JSP bygger på samme princip som ASP og PHP med mulighed for blandet
kode og HTML. JSP kan bruge Java kode både embedded og i seperate klasser.

Grunde til at vælge JSP:

* Hvis du kender Java så er JSP oplagt (hvis du kender VBS så er ASP oplagt,
  hvis du kender PHP så PHP, hvis du kender C# eller VB.NET så ASP.NET).

* Hvis du bruger andre dele af J2EE såsom EJB eller JCA, så er JSP oplagt
  da det er både nemmere og hurtigere at kalde Java fra Java.

* Hvis du skal lave et stort projekt så vil JSP (eller ASP.NET) være oplagte
  p.g.a. mulighederne for opdeling og genbrug.

Grunde til ikke at vælge JSP:

* Det er markant sværere at lære end ASP og PHP (men nok ikke sværere end ASP.NET).

* Det er ikke så udbredt. Det bruges primært til high end løsninger. Og der
  er f.eks. meget få web hoteller der understøtter det.
Avatar billede arne_v Ekspert
06. oktober 2004 - 12:11 #5
Codebehind er et ASP.NET udtryk og selvom man kan tilsvarende ting i JSP, så
er måden det gøres på meget forskellig.
Avatar billede arne_v Ekspert
06. oktober 2004 - 12:15 #6
Jeg er meget uenig i nødvendigheden af JSF/Struts/WebWork.

Jeg mener at man kommer meget langt med almindelig JSP, hvis man bruger
JSTL + EL + bean klasser. Måske kombineret med et par servlets til
specielle formål.

Man skal op i en vis applikations størrelse for at de frameworks
tjener sig selv ind igen arbejds mæssigt.

Men selvfølgelig pynter det at have Struts på sit CV. Det er noget
som efterspørges.
Avatar billede simonvalter Praktikant
06. oktober 2004 - 12:51 #7
Ja man kan opnå meget af det samme men at lære at opbygge det ordenligt og få meget af den funktionalitet som et framework tilbyder er også en stor opgave.

Man får lynhurtigt massere af validerings kode i servlets eller direkte i din jsp.
Du skal selv kode navigerings regler, hente parametre og sætte dem og en hel masse andet standard kode som du vil komme til at skrive igen og igen. og hvis der skal være bare lidt styr på det så sidder du jo næsten og laver dit eget mvc framework medmindre dine krav er meget simple.

jeg siger ikke at man skal hoppe på et framework før man har sat sig ind i servlets/jsp/jstl men jeg vil foreslå man gør det når man er kommet lidt ind i det for det er virkligt meget nemmere at arbejde med og jeg mener man bliver meget mere produktiv.

Struts vil jeg nu også mene er en stor omgang og ikke helt nemt.

JSF har lært meget af struts og er en stor forbedring.
Det er rimlig hurtigt at sætte sig ind i og selv om mange tror at det er nødvendigt at bruge værktøjer til at sætte det op så er det lige så nemt uden.
Der er ikke nogen der siger at man skal lave sin egne komponenter første gang man hopper på det.
jeg satte en kammerat ind i det mest basale på 30 min og så kunne han gå igang med at kode backing beans til det og min lillebror som ikke kan kode kunne designe sitet efter en hurtig forklaring af hvordan de forskellige tags ser ud men selvfølgelig kræver det at man lærer lidt mere hvis man virklig skal udnytte det fuldt ud
men de fleste hopper heller ikke direkte på en servlet/jsp/jstl/el løsning.
Avatar billede arne_v Ekspert
06. oktober 2004 - 14:33 #8
Mine erfaringer er med Struts og WebWork.

Men for mindre løsninger synes jeg tit at det bliver til dobbelt så
mange filer med dobbelt så mange linier kode for at lave det samme.

KISS er sommetider vigtigere end MVC.
Avatar billede Daniel.E Praktikant
06. oktober 2004 - 19:20 #9
det ser godt ud.  I må alle godt give et svar, så uddeler jeg point....
Avatar billede arne_v Ekspert
06. oktober 2004 - 19:22 #10
svar
Avatar billede simonvalter Praktikant
07. oktober 2004 - 03:28 #11
svar

jeg har lavet et lille eksempel

denne klasse er en backing bean som håndteres af jsf, men det er bare en ganske almindelig bean. den har en atribut som kunne svare til en værdi i et text field og så har den en metode som kan arbejde med den og som retunerer en string afhængig af hvad der sker i metoden.

public class SomeBean {

private String someString;

public void setSomeString(String s){this.someString = s;}

public String someAction(){
try{

// do something

catch(Exception ex)
{return "retry";}

return "success";
}


}


i jsf konfigurationen er beanen sat med session scope og den kan nu bruges fra vores jsp side.
der er også lavet en navigerings regel der siger at hvis vi står på somepage.jsp og får retuneret success fra vores managed bean bliver vi sent til anotherpage.jsp

<faces-config>

<managed-bean>
  <description>
      Backing bean that contains some informaiton.
    </description>
    <managed-bean-name>someBean</managed-bean-name>
    <managed-bean-class>package.SomeBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
  </managed-bean>

<navigation-rule>
        <from-view-id>/somepage.jsp</from-view-id>
        <navigation-case>
            <description>
            </description>
            <from-outcome>success</from-outcome>
            <to-view-id>/anotherpage.jsp</to-view-id>
        </navigation-case>
        <navigation-case>
            <description>
            </description>
            <from-outcome>retry</from-outcome>
            <to-view-id>/somepage.jsp</to-view-id>
        </navigation-case>
    </navigation-rule>
</faces-config>


til sidst har vi vores side som nu intet scriptlet kode har, ingen request.getParameter osv. overførelsen af atributter sker helt automatisk.
vi får også valideret at den bliver sat med required og får vedhæftet en fejlmeddelse på komponentet hvis den ikke er sat.


<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
<html>
  <head>
    <title>Simple jsp page</title>
      </head>
    <body>
      <f:view>
          <h:form id="someForm">
              <table>
                            <tr>
                                <td align="right">
                                    <h:outputText value="SomeValue"/>
                                            </td>
                                            <td align="left">
                                      <h:inputText value="#{someBean.someString}" id="username" required="true"/>
                                      <h:message styleClass="errorMessage" for="username"/>
                          </td>
                      </tr>
                      <tr>
                                  <td colspan="2" align="center">
                                    <h:commandButton value="Save" action="#{someBean.someAction}"/>
                                  </td>
                          </tr>   
            </table>
            </h:form>
      </f:view>
    </body>
</html>


til sidst specificeret vi i vores web.xml at vi skal bruge jsf med

    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

Det er egentligt alt det kræver og så har man en klar seperation af html og logik.
at lære at bruge komponenter, validatorer, convertere osv er ikke så svært det er først når man skal lave egne eller forstå jsfs lifecycle det bliver lidt svært men så kan jeg anbefale at læse OReillys JavaServer Faces bog.

med værktøjer som sun studio creator eller borland jbuilder 2005 så kan man også lave drag and drop ala ASP.NET hvis man skulle have lyst til det.
Avatar billede medions Nybegynder
07. oktober 2004 - 17:53 #12
Arne_v> Hvis du søger et billigt webhotel til JSP kan jeg anbefale dig DanSite, www.dansite.dk ...

//>Rune
Avatar billede arne_v Ekspert
07. oktober 2004 - 19:29 #13
Ellers tak - jeg hoster selv.
Avatar billede roo104 Nybegynder
10. oktober 2004 - 12:27 #14
Der er også http://javabog.dk/JSP/
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester