Exercicio em JSP e JavaBeans

ola Pessoal,

estou tentando resolver o seguinte exercicio:

Implementar uma aplicação web que permita o usuário realizar as seguintes operações sobre uma string qualquer fornecida pelo proprio usuario e visualizar o correspondente resultado:
-Conversão para maiusculas
-Conversao para minusculas
-Inversao na ordem dos caracteres

criei o JavaBean Senteca

package Sentenca;
        
public class Sentenca {
    
    /** Creates a new instance of Sentenca */
    public Sentenca() {
    }
    
    public String strUpper(String frase)
    {
        frase.toUpperCase();
        return frase;
    }
    
    public String strLower(String frase)
    {
        frase.toLowerCase();
        return frase;
    }
    
    public String strReverse(String frase)
    {
        StringBuffer text = new StringBuffer(frase);
        text.reverse();
        String reverse = text.toString();
        return reverse;
    }
}

depois criei o formulario html e a pagina jsp para realizar a;
-capturar a string fornecida no formulario html;
-captura a operação escolhida pelo usuario;
-chamar o método do javabean correspondente a operacao escolhida fornecendo a string como parametro
-retornar o resultado da chamado do metodo para o cliente web,

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<jsp:useBean id="Sentenca" class="Sentenca.Sentenca" />

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Manipulando Strings</title>
    </head>
    <body>

    <h1>Exercicio Manipulando String's</h1>
    <table border="1">
    <form >
        <table border="1">
            <tbody>
                <tr>
                    <td>Digite uma String qualquer</td>
                </tr>
                <tr>
                    <td><input type="text" name="Frase" value="" /></td>
                </tr>
                <br>
                <select name="Opcao">
                    <option value=0>Converter Maiuscula</option>
                    <option value=1>Converter Minuscula</option>
                    <option value=2>Inverter String</option>
                </select>
        </table>
        <input type="submit" value="OK" />
    </form>
    
    <%
        String str = new String(request.getParameter("Frase"));
        int opcao = Integer.parseInt(request.getParameter("Opcao"));
        
        switch(opcao)
            {
                case 0:
                Sentenca.strUpper(str);
                out.println("Resultado da Conversão: " +str);
                break;
            }
    %>
    
    
    </body>
</html>

reparem que criei apenas a primeira opcao para testar, mas logo de cara apresentou o seguinte erro que nao consigo identificar o que possa ser,

HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: Exception in JSP: /index.jsp:37

34:     </form>
35:     
36:     <%
37:         String str = new String(request.getParameter("Frase"));
38:         int opcao = Integer.parseInt(request.getParameter("Opcao"));
39:         
40:         switch(opcao)


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)


root cause 

java.lang.NullPointerException
	java.lang.String.<init>(String.java:147)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:87)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.17

Caso alguem consiga identificar o meu erro, ficaria agradicido…
abraco a todos…

na primeira vez que a pagina abre, o valor de “Frase” é null…

logo, na linha

String str = new String(request.getParameter("Frase"));

voce esta tentando instanciar uma string nula, por isso o erro, java.lang.NullPointerException…

verifique antes se o valor de request.getParameter(“Frase”) é nulo ou não :wink:

Valeu a dica marcushlm, no momento nao consigo testar sua dica… assim que conseguir ti falo se deu certo…
obrigado pela atenção…

marcushlm, realizei a alteração ao meu modo aqui… nao sei se esta correto…

o erro que estava apresentando nao esta mais…

porém quando eu digito a palavra e escolho uma opção para converter simplismente imprime a palavra sem realizar modificação alguma…

abaixo esta como deixei o codigo…
o javabean nao alterei nada…

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<jsp:useBean id="Sentenca" class="Sentenca.Sentenca" />

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Manipulando Strings</title>
    </head>
    <body>

    <h1>Exercicio Manipulando String's</h1>
    <table border="1">
    <form>
        <center>
            <table border="0">
            <tbody>
                <tr>
                    <td>Digite uma String qualquer</td>
                </tr>
                <tr>
                    <td><input type="text" name="Palavra" value="" /></td>
                </tr>
                <br>
        </table>
            <select name="Opcao">
                <option value=0>Converter Maiuscula</option>
                <option value=1>Converter Minuscula</option>
                <option value=2>Inverter String</option>
            </select>
        <input type="submit" value="OK" />
        </center>
    </form>
    
    <%
       if(request.getParameter("Palavra")== null)
           {
            String frase = new String (" ");
           }
           else{ 
                    String frase = new String(request.getParameter("Palavra"));
                    int opcao = Integer.parseInt(request.getParameter("Opcao"));
        
                    switch(opcao)
                     {
                       case 0:
                       Sentenca.strUpper(frase);
                       out.println("<center>");
                       out.println("Frase: " +frase);
                       out.println("</center>");
                       break;
                       
                       case 1:
                       Sentenca.strLower(frase);
                       out.println("<center>");
                       out.println("Frase: " +frase);
                       out.println("</center>");
                       break;
                       
                       case 2:
                       Sentenca.strReverse(frase);
                       out.println("<center>");
                       out.println("Frase: " +frase);
                       out.println("</center>");
                       break;
                     }
              }
           
    %>
    
    
    </body>
</html>

valew pela ajuda kra…abraco

puxa pessoal algume mais ai se habilita em mi ajudar… ateh agora nao consegui resolver este exercicio… ele nao esta executando a funcao do beans…