Avatar billede coolioclm Nybegynder
16. februar 2005 - 22:18 Der er 37 kommentarer og
1 løsning

Gemme resourcer fra brugeren

Jeg har min hjemmeside på en Tomcat 3.2.3 der ligger på en linux maskine. (Det er et web hotel)
Jeg vil gerne have at mine billeder ikke direkte kan tilgås af brugerne, men selvfølgelig via min hjemmeside.
Hvor kan jeg ligge billederne så de kun kan tilgås af applikationen.
Yderligere vil jeg gerne høre om der er nogen der ved om der er forskel på hvor servletter og java class filer skal ligge på Tomcat 3.2.3 i forhold til version 3.3 og frem.
Jeg kan nemlig ikke tilgå mine class filer.
Avatar billede arne_v Ekspert
16. februar 2005 - 22:24 #1
Hvis brugernes browser kan hente billederne for at vise dem, så er det altså
ikke muligt at forhindre dem i at gemme dem.

Du kan drille de mindst EDB kyndige ved at disable højre klik med
noget JavaScript og den slags.

Filer der ligger under WEB-INF har ikke en URL og kan derfor ikke
umiddelbart downloades eller linkes til.

Jeg mener ikke at 3.2 er anderledes med hensyn til classes. Men det er lang tid
siden (Tomcat 3.2 er jo antik som en Ford T).
Avatar billede coolioclm Nybegynder
16. februar 2005 - 22:29 #2
Ja den er antik, mit web hotel følger åbenbart ikke med tiden.
Jeg har lavet applikationen sådan at en bruger verificeres hver gang en ny side tilgås. Dette gælder også siderne med billeder.
Så billederne skulle kun kunne tilgås af de verificerede brugere.
Kan jeg tilgå html, jsp eller billeder der ligger i WEB-INF fra min applikation?
Avatar billede coolioclm Nybegynder
16. februar 2005 - 22:31 #3
Med hensyn til problemet med at tilgå class filerne, så har jeg fået det til at virke på min egen tomcat 5.0, men at den ikke kan se class filerne når applikationen bliver uploaded til web hotellet
Avatar billede arne_v Ekspert
16. februar 2005 - 22:31 #4
Det er ikke muligt med:

browser<---Tomcat<---fil i WEB-INF

Men du kan godt:

browser<---Tomcat<---servlet<---fil i WEB-INF
Avatar billede arne_v Ekspert
16. februar 2005 - 22:32 #5
Det er ikke Java version som driller ?

(hvis de kører Tomcat 3.2 så kører de måske også en gammel Java, som måske
ikke kan klare klasser compilet med din meget nye Java version)
Avatar billede coolioclm Nybegynder
16. februar 2005 - 22:36 #6
hmmm det havde jeg slet ikke overvejet. Men jeg kan heller ikke tilgå min mysql driver så jeg kan få tilgang til databasen.
Den er lagt i WEB-INF/lib/
Den burde være til rådighed
Alle jsp siderne virker som de skal, det er kun importering af class filer og jar der driller
Avatar billede coolioclm Nybegynder
16. februar 2005 - 22:37 #7
Jeg har skrevet til web hotellet for at høre, men det tager en helvedes langt tid.
Deres arbejds rutiner er åbenbart lige så gamle som deres program versioner :-)
Avatar billede arne_v Ekspert
16. februar 2005 - 22:38 #8
Med hensyn til MySQL driver:

Er den uploadet binært ?

Er driver name og connection url korrekte ?

Hvilken fejl får du ?
Avatar billede coolioclm Nybegynder
16. februar 2005 - 22:43 #9
Fejlen jeg får på min jsp side er:

org.apache.jasper.JasperException: Unable to compile class for JSP/usr/java/jakarta-tomcat-3.2.3/work/www.lindegaardsvensson.dk_8080/_0002floginValidator_0002ejsploginValidator_jsp_0.java:13: Class util.DBConnector not found in import.
import util.DBConnector;
      ^
1 error

    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
    at org.apache.jasper.servlet.JspServlet.doLoadJSP(JspServlet.java:612)
    at org.apache.jasper.servlet.JasperLoader12$1.run(JasperLoader12.java:160)
Avatar billede coolioclm Nybegynder
16. februar 2005 - 22:44 #10
Til dette formål har jeg kun skrevet dette i min jsp, som altså giver ovenstående fejl

<%@page contentType="text/html" import="java.sql.*" import="java.io.*" import="util.DBConnector"%>

DBConnector dbc = new DBConnector();
Avatar billede coolioclm Nybegynder
16. februar 2005 - 22:46 #11
min mySql driver er: mysql-connector-java-3.0.8-stable-bin.jar

Jeg ved ikke om den er uploaded binært? Hvilken betydning har det.
Jeg henviser til den rigtige url, da det virker på min egen tomcat 5
Avatar billede coolioclm Nybegynder
16. februar 2005 - 22:50 #12
Kan det nødvendigt at skrive noget i web.xml ved version 3.2.3 når man skal tilgå jar filer
Avatar billede arne_v Ekspert
16. februar 2005 - 22:52 #13
22:43:38>

Har jo ikke noget med driveren at gøre. Det er din egen .class fil den ikke kan finde.
Avatar billede arne_v Ekspert
16. februar 2005 - 22:53 #14
22:46:22>

Hvis du uploader den som tekst fil bliver den ødelagt.

----

Det argument holder kun hvis connection URL er den samme på hotellet som hos dig selv
Avatar billede arne_v Ekspert
16. februar 2005 - 22:53 #15
22:50:43>

Tror jeg ikke. Men det er som sagt lang tid siden.
Avatar billede arne_v Ekspert
16. februar 2005 - 22:54 #16
Kan du prøve og compile din kode med:

javac -source 1.3 -target 1.1

?
Avatar billede arne_v Ekspert
16. februar 2005 - 22:55 #17
Kan du checke om du uploader .jsp som tekst men .class og .jar binært ?
Avatar billede coolioclm Nybegynder
16. februar 2005 - 22:59 #18
ja jeg prøver lige at compile den.
Jeg må indrømme jeg ikke ved hvordan jeg skal tjekke det. Jeg tror det hele bliver uploadet i det format det har, sådan skrivet ftp programmet det ihvertifald.
Avatar billede coolioclm Nybegynder
16. februar 2005 - 22:59 #19
Ja undskyld det med fejlen, det var ikke den rigtige.
Avatar billede arne_v Ekspert
16. februar 2005 - 23:01 #20
Hvilket FTP program bruger du ?
Avatar billede coolioclm Nybegynder
16. februar 2005 - 23:03 #21
FileZilla
Avatar billede coolioclm Nybegynder
16. februar 2005 - 23:05 #22
Jeg har nu compileret sådan som du skrev, og jeg får ingen fejl ved kompileringen men samme fejl so hele tiden efter jeg har uploadet den.
Avatar billede arne_v Ekspert
16. februar 2005 - 23:07 #23
Jeg kender ikke FileZilla.

Har den ikke en mulighed for at angive text eller binary (måske kaldet ascii eller image) ?
Avatar billede coolioclm Nybegynder
16. februar 2005 - 23:08 #24
Du har ikke et meget lille nemt eksempel liggende på en jsp det tilgår en servlet, som du ved virker, også på en ældre version af tomcat ?
Avatar billede coolioclm Nybegynder
16. februar 2005 - 23:09 #25
Jeg kan se den er sat til auto, hvad skal den være på?
Avatar billede arne_v Ekspert
16. februar 2005 - 23:11 #26
Sæt den til text når du uploader .jsp og til binary når du uploader .class og .jar
Avatar billede arne_v Ekspert
16. februar 2005 - 23:12 #27
blue.jsp:

<img src="Blue"/>

Blue.java:

package test;

import java.awt.*;
import java.awt.image.*;
import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;

import com.sun.image.codec.jpeg.*;

public class Blue extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("image/jpeg");
      BufferedImage bi = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
      Graphics g = bi.getGraphics();
      g.setColor(Color.WHITE);
      g.fillRect(0, 0, 100, 100);
      g.setColor(Color.BLUE);
      g.fillOval(20, 20, 60, 60);
      try {
        JPEGImageEncoder ecd = JPEGCodec.createJPEGEncoder(response.getOutputStream());
        ecd.encode(bi);
      } catch (FileNotFoundException e) {
        e.printStackTrace();
      } catch (ImageFormatException e) {
        e.printStackTrace();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
}

Ovenstående genererer selv grafikken, men den kan nemt modificeres til at læse
grafikken fra en disk fil.
Avatar billede coolioclm Nybegynder
16. februar 2005 - 23:13 #28
ok, tak, jeg prøver den lige
Avatar billede coolioclm Nybegynder
16. februar 2005 - 23:18 #29
ok, for at være sikker på at det er magen til dit, vil jeg lige høre hvor jeg skal ligge de to filer henne
Avatar billede coolioclm Nybegynder
16. februar 2005 - 23:21 #30
Skal jeg ikke tilføje Blue.class til web.xml? Kan den godt finde den hvis den bare bliver lagt ind i classes/test
Avatar billede arne_v Ekspert
16. februar 2005 - 23:21 #31
JSP siden skal ligge der hvor de ligger.

Hvis du beholder package test i servletten skal den ligge som WEB-INF\classes\test\Xxxx.class
Avatar billede arne_v Ekspert
16. februar 2005 - 23:22 #32
Ja den skal tilføjes til web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
        version="2.4">
  <servlet>
    <servlet-name>Blue</servlet-name>
    <servlet-class>test.Blue</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Blue</servlet-name>
    <url-pattern>/Blue</url-pattern>
  </servlet-mapping>
</web-app>
Avatar billede coolioclm Nybegynder
16. februar 2005 - 23:26 #33
Jeg får en side med et fint rødt kryds.
Billedet kan altså ikke vises. Jeg har lavet web.xml om, lagt blue.jsp i roden.
Lagt Blue.class i WEB-INF/classes/test/
og de enkelte dele er uploaded i det rigtige format
Avatar billede coolioclm Nybegynder
16. februar 2005 - 23:38 #34
Dit eksempel virker på min egen tomcat 5
Avatar billede coolioclm Nybegynder
16. februar 2005 - 23:39 #35
Det virker som at min udbyder har problemer med at håndtere servletter. Alt det jeg har prøvet virker på min egen, men ingen ting virker på deres server.
Avatar billede coolioclm Nybegynder
16. februar 2005 - 23:41 #36
Men da de kører Tomcat, og jsp bliver understøttet (og virker) så er det underligt at servletter ikke virker.

Jeg ringer til dem i morgen og får forklaret dette mysterium !
Avatar billede coolioclm Nybegynder
23. februar 2005 - 23:01 #37
Det viste sig at de alligevel ikke understøttede Servletter, men kun JSP !!!!! og man kunne ikke have resourcer liggende nogen steder, som var tilgængelige for ens JSP.
Skod WebHotel som nu er skiftet ud !
Avatar billede arne_v Ekspert
23. februar 2005 - 23:18 #38
Godt gået af det hotel.

JSP sider bliver faktisk compilet til en servlet som så bliver compiler
til en .class fil, så de må virkeligt have tweaket tingene noget.
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
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

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