Newsgroup: it.comp.java
Titolo: non visualizza la pag .jsp

mi sto domandando perche se scrino una pagina html con un form di
questo tipo:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<!-- This file was generated by the VisualAge for Java Servlet
SmartGuide. -->
<HEAD>
</HEAD>
<BODY>
<FORM METHOD="get" ACTION="/mia.jsp">
<P>Please complete the form.</P>
<TABLE border="0">
<TR>
  <TD>Porta seriale</TD>
  <TD>
    <INPUT TYPE="text" NAME="portname" ID="portname"  SIZE="20"
MAXLENGTH="20" >
  </TD>
</TR>
<TR>
  <TD>Comando da inviare</TD>
  <TD>
    <INPUT TYPE="text" NAME="message" ID="message"  SIZE="20"
MAXLENGTH="20" >
  </TD>
</TR>
</TABLE>
<P>
<INPUT TYPE="submit" NAME="Submit" ID="Submit" VALUE="Submit">
&nbsp;
<INPUT TYPE="reset" NAME="Reset" ID="Reset" VALUE="Reset">
&nbsp;
</P>
</FORM>
</BODY>
</HTML>
e idue parametri li mando alla pagina mia.jsp:
<%@ page language="java" import="javax.comm.*,riccardo.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'Prova.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
  <body>
    <% String portname=request.getParameter("portname");
      String message=request.getParameter("message");
     try {
            CommPortIdentifier portId =
CommPortIdentifier.getPortIdentifier(portname);
            if (portId.getPortType() ==
CommPortIdentifier.PORT_SERIAL) {
               SimpleReadWrite1 srw = new
SimpleReadWrite1(portId,message);
            }
            else {
               System.err.println(portname + " is not serialport");
              // System.exit(1);
            }
         }
             catch (NoSuchPortException e) { //Port nicht vorhanden
               System.err.println("No such port: " + portname);
              // System.exit(1);
            }
             catch (PortInUseException e) { //Port ist
gesperrt/inGebrauch
               System.err.println("Port in use: " + portname);
              // System.exit(1);}
     out.println("risposta andata a buon fine");
     out.println("se vuoi vedere il risultato clicca :");
       %>
        <a
href="
http://localhost:8080/chesialultima/Risposta.jsp
">qui</a>
  </body>
</html>
ed il file web.xml è questo:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
	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
">
<welcome-file-list>
<welcome-file>MyHtml.html</welcome-file>
</welcome-file-list>
</web-app>
non riesco ad inviare i dati alla pagina jsp sbaglio questa riga?:
<FORM METHOD="get" ACTION="/mia.jsp">
non ci prova nemmeno a cambiare l'url ho provato a cambiare ACTION nei
più svariati modi!
ciao e grazie


Io di solito uso almeno le servlet insieme alle jsp e quindi potrei darti un
suggerimento sbagliato.. ma hai provato a dare un nome al form? Se fai
questo errore scrivendo portlet per ws, per esempio, non funziona.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

non ho dato alcun nome al form questo form funziona se chiamo una
servlet e no se chiamo questa jsp ovviamente la servlet viene mappata
sul file web.xml


La jsp l'hai compilata e l'hai messa in WEB-INF?
Perchè non debugghi l'applicazione?

già fatto con risultati identitici

ma la mia.jsp la metti dentro la cartella che rappresenta il
contex-path giusto ?mi stanno venendo i dubbi anche sulle certezze

devo fare un pò di luce dannie: io avevo una mia web application in
cui c'era mia.jsp che richiamava una classe che dialogava con un moden
esterno collegato alla seriale e metteva la risposta in un file di
testo il cui contenuto era acceduto da Risposta.jsp. Quindi
mia.jsp>>>classe>>>file di testo>>>>risposta.jsp
TUTTO FUNZIONAVA come in una felice favola
Ma poi dato che il nome della porta seriale a cui era collegato il
modem e il comando lo davo da dentro la classe ho deciso di
inviarglielo da un form allora ho costruito una pag MyHtml.html che
inviava questi parametri a mia.jsp che li passava alla classe.
MORALE DELLA FAVOLA:adesso non funziona il modem dopo aver premuto sul
submit si blocca trasmettendo sempre senza trasmettere nulla nel mio
file perchè.....ecco la classe:
package riccardo;
import java.io.*;
import javax.comm.*;
/**
 * Simple program to read characters from the command-line, send
 * them to the specified serial port, and echo any characters
returned.
 * Modeled after the SimpleRead and SimpleWrite sample programs
included
 * with the Java Communications API distribution.
 */
    public class SimpleReadWrite1
	{
      InputStream  in;
      OutputStream out;
      private static String message;
     boolean t = true;
      Thread readerThread;
      SerialPort serialPort;
	protected static Object srw;
      static String portname;
    /**
     * Main method.
     */
       public static void main(String[] args) {
         try {
            CommPortIdentifier portId =
CommPortIdentifier.getPortIdentifier(portname);
            if (portId.getPortType() ==
CommPortIdentifier.PORT_SERIAL) {
               SimpleReadWrite1 srw = new
SimpleReadWrite1(portId,message);
            }
            else {
               System.err.println(portname + " is not a serial port");
              // System.exit(1);
            }
         }
             catch (NoSuchPortException e) { //Port nicht vorhanden
               System.err.println("No such port: " + portname);
              // System.exit(1);
            }
             catch (PortInUseException e) { //Port ist
gesperrt/inGebrauch
               System.err.println("Port in use: " + portname);
              // System.exit(1);
               }
             }
    /**
     * Constructor.
     */
       public SimpleReadWrite1(CommPortIdentifier portId,String
message) throws
PortInUseException {
       //	System.out.println("ciao sono nel costruttore");
         try {
            SerialPort serialPort = (SerialPort)
portId.open("SimpleReadWrite",2000);
//Port mit
            in  = serialPort.getInputStream();
            out = serialPort.getOutputStream();
            serialPort.notifyOnDataAvailable(true);
            serialPort.setSerialPortParams(19200,
//Schnittstelleneinstellungen initialisieren
                                           SerialPort.DATABITS_8,
                                           SerialPort.STOPBITS_1,
                                           SerialPort.PARITY_NONE);
            byte[] readBuffer = new byte[33];
              out.write(message.getBytes());
              int numBytes = in.read(readBuffer);
              PrintWriter out1 = new PrintWriter(
					   new
FileWriter("C:/Jakarta/jakarta-tomcat-5.0.28/webapps/chesialultima/nome.txt",true));
					   out1.print(new String(readBuffer));
					   out1.close();
			       serialPort.close();
         } //Exception-Handling
             catch (IOException e) {
               System.err.println("Problem opening streams");
              // System.exit(1);
            }
             catch (UnsupportedCommOperationException e) {
               System.err.println("Problem setting port parameters");
               //System.exit(1);
            }
 
 
 
 
 
 
	}
    }
ciao e grazie

mi sono accorto di una cosa strana ho corretto il mio progetto e
guardate che ho notato:
scrivo un form con un campo che passa una variabile stringa di nome
portname ad una pagina jsp
MyHtml.html>>>mia.jsp
ecco il codice di entrambe:
MyHtml:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<!-- This file was generated by the VisualAge for Java Servlet
SmartGuide. -->
<HEAD>
</HEAD>
<BODY>
<FORM METHOD="post" ACTION="mia.jsp">
<P>Please complete the form.</P>
<TABLE border="0">
<TR>
  <TD>portname</TD>
  <TD>
    <INPUT TYPE="text" NAME="portname" ID="portname"  SIZE="20"
MAXLENGTH="20" >
  </TD>
</TR>
</TABLE>
<P>
<INPUT TYPE="submit" NAME="Submit" ID="Submit" VALUE="Submit">
&nbsp;
<INPUT TYPE="reset" NAME="Reset" ID="Reset" VALUE="Reset">
&nbsp;
</P>
</FORM>
</BODY>
</HTML>
mia.jsp:
<html>
  <head>
    <title>My JSP 'Prova.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
  <body>
    <% String portname=request.getParameter("portname");
   //String message=request.getParameter("message");
     try {
            CommPortIdentifier portId =
CommPortIdentifier.getPortIdentifier(portname);
            if (portId.getPortType() ==
CommPortIdentifier.PORT_SERIAL) {
              SimpleReadWrite1 srw = new SimpleReadWrite1(portId);
            }
            else {
               System.err.println(portname + " is not a serial port");
               System.exit(1);
            }
         }
             catch (NoSuchPortException e) { //Port nicht vorhanden
               System.err.println("No such port: " + portname);
               System.exit(1);
            }
             catch (PortInUseException e) { //Port ist
gesperrt/inGebrauch
               System.err.println("Port in use: " + portname);
               System.exit(1);}
     out.println("risposta andata a buon fine");
     out.println("se vuoi vedere il risultato clicca :");
       %>
        <a href="
http://localhost:8080/ciaobello/Risposta.jsp
">qui</a>
  </body>
</html>
dopo la pag. mia.jsp elabora portname trasformandola in portId e la
passa ad una classe che comunica con il modem va tuuto a buon fine
dentro alla classe c'è il comando che viene scritto sulla porta e a
cui il modem risponde.
ecco la classe:
package riccardo;
import java.io.*;
import javax.comm.*;
/**
 * Simple program to read characters from the command-line, send
 * them to the specified serial port, and echo any characters
returned.
 * Modeled after the SimpleRead and SimpleWrite sample programs
included
 * with the Java Communications API distribution.
 */
    public class SimpleReadWrite1
	{
private InputStream in;
private OutputStream out;
String message="AT\r";
    	public SimpleReadWrite1(CommPortIdentifier portId) throws
		PortInUseException {
            	  try {
                    SerialPort serialPort = (SerialPort)
        portId.open("SimpleReadWrite",2000);
//        Port mit
                    in  = serialPort.getInputStream();
                    out = serialPort.getOutputStream();
                    serialPort.notifyOnDataAvailable(true);
                    serialPort.setSerialPortParams(19200,
//Schnittstelleneinstellungen initialisieren
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
                    byte[] readBuffer = new byte[33];
                      out.write(message.getBytes());
                      int numBytes = in.read(readBuffer);
                      PrintWriter out1 = new PrintWriter(
        					   new
FileWriter("C:/Jakarta/jakarta-tomcat-5.0.28/webapps/ciaobello/nome.txt",true));
        					   out1.print(new String(readBuffer));
        					   out1.close();
        			       serialPort.close();
                 } //Exception-Handling
                     catch (IOException e) {
                       System.err.println("Problem opening streams");
                      // System.exit(1);
                    }
                     catch (UnsupportedCommOperationException e) {
                       System.err.println("Problem setting port
parameters");
                       //System.exit(1);
                    }
            }
    /**
     * Constructor.
     */
       //	System.out.println("ciao sono nel costruttore");
	}
vi sarete accorti che dopo archivio tutto in un file di testo messo nel
contex-path.
CHE C'è ALLORA Bè SE AGGIUNGO AL MIO FORM UN ALTRO CAMPO CON
MESSAGE(CHE è IL COMANDO PER IL MODEM) E LO TOLGO TRA LE DICHIARAZIONE
DELLA CLASSE E LO PASSO COME PARAMETRO NELLA PAG mia.jsp del tipo:
SimpleReadWrite1 srw = new SimpleReadWrite1(portId,message);
voilà il modem continua a rispondere senza in effetti rispondere nulla
quindi non funziona più nulla che succede?
PERDONATE LA LUNGHEZZA MA HO PENSATO FACCIATE PRIMA A COPIARE IL CODICE
E PROVARLO
CIAO E GRAZIE

è come se  il secondo parametro che passo "message" non lo passi alla
classe?!

è come se il secondo parametro che mando alla classe ,sto parlando del
parametro message , non lo veda la classe a cui dovrebbe arrivare