Re:[Questão] SCWCD

Na jsp (tag useBean), o tipo está assim “com.bookstore.MusicCD” e a classe está assim : class=“com.bookstore.Book”.

O compilador JSP tentará gerar a seguinte linha:

com.bookstore.MusicCD bookorcd = new com.bookstore.Book();

O que claramente não compila já que Book não estende MusicCD.
Edit: Não compila quer dizer que o arquivo .java é gerado a partir da JSP, porém o compilador não consegue transformá-lo em um .class. Ou seja, a JSP nem consegue ser transformada em um Servlet.
Me corrijam se estiver errado.

Vai dar uma exception em tempo de COMPILAÇÃO do JSP.

Em execução seria se no JSP ocorresse uma NullPointer por exemplo. Mas o Servlet NÃO chega a ser transformado em .class, portando é erro de compilação.

O JSP só ser compilado após a primeira requisição não torna o erro um erro de execução, porque ele ocorre na compilação e não na execução do JSP.

[code]//in file Book.java
package com.bookstore;
public class Book
{
private String isbn;
public Book(){ isbn = “UNDEFINED_BOOK”; }
public String getIsbn(){ return isbn; }
public void setIsbn(String value){ this.isbn = value; }
}

//in file MusicCD.java
package com.bookstore;
public class MusicCD
{
private String isbn;
public MusicCD(){ isbn = “UNDEFINED_CD”; }
public String getIsbn(){ return isbn; }
public void setIsbn(String value){ this.isbn = value; }
}

Code for browse.jsp:
<jsp:useBean class=“com.bookstore.Book” type=“com.bookstore.MusicCD” id=“bookorcd” />
<jsp:getProperty name=“bookorcd” property=“isbn” />
[/code]

What is printed in the generated response of browse.jsp?

Select 1 correct option.

UNDEFINED_BOOK

 
UNDEFINED_CD

 
It will not compile

 
It will compile but will give an exception at request time.

Eu escolhi a ultima, vai compilar mas vai dar erro, mas ao final do simulado a resposta correta é não vai compilar, porque? Essa jsp não seria compilada e traduzida para um servlet na fase de Tradução? Então a resposta correta seria vai compilar mas vai dar erro pois Book não extend a Music.

Vc esta certo, contudo, o jsp só será compilado na fase de Tradução, ou seja, quando alguem acessar aquele jsp pela primeira vez, portanto, erro vai da mas a questão é quando! :slight_smile: