Threads e JSP

6 respostas
I

Olá pessoal… preciso fazer o controle de serviços utilizando threads, já fiz em aplicações desktop mas nao tenho nenhuma experiencia em JSP (nenhuma é nenhuma mesmo).
Voces teriam algum tutorial explicando como fazer as benditas threads em JSP?
(segue a classe que seria o que preciso, só que em JSP).

package threads;

public class Show{

    public static void main(String[] agrs) {

                mensagem01();
                System.out.println();
                mensagem02();
                System.out.println();
                mensagem03();
                System.out.println();
    }

    public static void mensagem01() {
                try {
                           System.out.println("Start Script Mensagem01:");
                           String msg="Process01.";
                           System.out.println(msg);
                           new Thread().sleep(4000);
                           for (int i = 0; i < 10; i++) {
                                       msg +=".";
                                       //new Thread().wait(4000);
                           }
                           msg +=" OK!";
                           System.out.println(msg);
                } catch (Exception e) {
                           // TODO: handle exception
                }
    }

    public static void mensagem02() {
                try {
                           System.out.println("Start Script Mensagem02:");
                           String msg="Process02.";
                           System.out.println(msg);
                           new Thread().sleep(8000);
                           for (int i = 0; i < 10; i++) {
                                       msg +=".";
                                       //new Thread().wait(4000);
                           }
                           msg +=" OK!";
                           System.out.println(msg);
                } catch (Exception e) {
                           // TODO: handle exception
                }
    }

    public static void mensagem03() {
                try {
                           System.out.println("Start Script Mensagem03:");
                           String msg="Process03.";
                           System.out.println(msg);
                           new Thread().sleep(1000);
                           for (int i = 0; i < 10; i++) {
                                       msg +=".";
                                       //new Thread().wait(4000);
                           }
                           msg +=" OK!";
                           System.out.println(msg);
                } catch (Exception e) {
                           // TODO: handle exception
                }
    }

}

Valeu pela ajuda pessoal!

6 Respostas

E
new Thread().sleep(1000);

Essa é a primeira vez que vejo um código desses. Normalmente eu escreveria

Thread.sleep (1000);

que não força a criação de threads, que são recursos do sistema operacional muito dispendiosos.

rmendes08

Igor Mendes:
Olá pessoal… preciso fazer o controle de serviços utilizando threads, já fiz em aplicações desktop mas nao tenho nenhuma experiencia em JSP (nenhuma é nenhuma mesmo).
Voces teriam algum tutorial explicando como fazer as benditas threads em JSP?
(segue a classe que seria o que preciso, só que em JSP).

package threads;

public class Show{

    public static void main(String[] agrs) {

                mensagem01();
                System.out.println();
                mensagem02();
                System.out.println();
                mensagem03();
                System.out.println();
    }

    public static void mensagem01() {
                try {
                           System.out.println("Start Script Mensagem01:");
                           String msg="Process01.";
                           System.out.println(msg);
                           new Thread().sleep(4000);
                           for (int i = 0; i < 10; i++) {
                                       msg +=".";
                                       //new Thread().wait(4000);
                           }
                           msg +=" OK!";
                           System.out.println(msg);
                } catch (Exception e) {
                           // TODO: handle exception
                }
    }

    public static void mensagem02() {
                try {
                           System.out.println("Start Script Mensagem02:");
                           String msg="Process02.";
                           System.out.println(msg);
                           new Thread().sleep(8000);
                           for (int i = 0; i < 10; i++) {
                                       msg +=".";
                                       //new Thread().wait(4000);
                           }
                           msg +=" OK!";
                           System.out.println(msg);
                } catch (Exception e) {
                           // TODO: handle exception
                }
    }

    public static void mensagem03() {
                try {
                           System.out.println("Start Script Mensagem03:");
                           String msg="Process03.";
                           System.out.println(msg);
                           new Thread().sleep(1000);
                           for (int i = 0; i < 10; i++) {
                                       msg +=".";
                                       //new Thread().wait(4000);
                           }
                           msg +=" OK!";
                           System.out.println(msg);
                } catch (Exception e) {
                           // TODO: handle exception
                }
    }

}

Valeu pela ajuda pessoal!

Desculpe desapontá-lo, mas esse código executa em uma única thread. Além do mais, para que raios você quer criar thread dentro de JSP’s !? :shock: . JSP’s devem ser usadas somente para apresentação de dados, não deve conter regras de negócio e muito menos threads, conexões com banco e coisas do tipo. Outro fato que você deve considerar é que o web container já trata isso para você. Cada requisição a um Servlet ou JSP já é tratada em uma thread separada.

I

Opa!
Valeu pela atenção pessoal!

Nao implementei as threads ai nao!!! ASHUAHSUHSUHSA
Eu só preciso parar um processo por um tempo determinado para depois executá-lo novamente.
Mas quando passo para o jsp esses erros do Apache:

An error occurred at line: 8 in the jsp file: /Teste/Teste.jsp

Syntax error on token void, @ expected

5:

6:

7: <%

8:     public static void mensagem01() {

9:                 try {

10:                            out.println(Start Script Mensagem01:);

11:                            String msg=Process01.;
An error occurred at line: 8 in the jsp file: /Threads/Teste.jsp

Syntax error, insert enum Identifier to complete EnumHeaderName

5:

6:

7: <%

8:     public static void mensagem01() {

9:                 try {

10:                            out.println(Start Script Mensagem01:);

11:                            String msg=Process01.;
An error occurred at line: 8 in the jsp file: /Threads/Teste.jsp

Syntax error, insert EnumBody to complete BlockStatement

5:

6:

7: <%

8:     public static void mensagem01() {

9:                 try {

10:                            out.println(Start Script Mensagem01:);

11:                            String msg=Process01.;

Eu acho q deve ser uma coisa mto boba, mas como eu nao tenho noçao nenhuma de jsp, devo estar patinando em coisa simples.

E

Em JSP você não faz esse tipo de coisas (você normalmente faz alguma coisa do tipo “pegar algum dado no banco e mostrá-lo o mais rapidamente possível”.

Normalmente você pode agendar a execução de alguma tarefa, usando o Quartz, que é uma biblioteca que pode ser adicionada à sua aplicação Web.

I
Seria alguma coisa do tipo:

Funcao 1- Start por 2 segundos;

Funcao 1 - Stop

Funcao 2 - Start por 5 segundos;

Funcao 2 - Stop

Funcao 3 - Start por x segundos;

Funcao 3 - Stop

A decisao de implementar isto por threads foi decisao minha, pois seria a maneira como implementaria no Java Desktop.
Estou aceitando qualquer sugestao!!

Na verdade, isto seria implementado num software de controle de datacenter, para balanceamento de carga entre servidores virtualizados. Mas como eu disse, nao conheço nada de JSP.

I

Consegui resolver… fiz a mesma coisa, mas separei o metodo da maneira mais porca com o <%! .
Agora funcionou.

Ficou bem ruim, mas fiquei mto feliz de rodar um JSP pela primeira vez na vida!
Obrigado pela atençao pessoal!

Criado 14 de maio de 2012
Ultima resposta 14 de mai. de 2012
Respostas 6
Participantes 3