As 50 principais perguntas e respostas da entrevista do Struts (2024)
Aqui estão as perguntas e respostas da entrevista do Struts para calouros e também para candidatos experientes para conseguir o emprego dos sonhos.
1. Quais são os componentes do Struts Framework?
A estrutura do Struts é composta pelos seguintes componentes:
- Servlets Java
- JSP (páginas de servidor Java)
- Tags personalizadas
- Recursos de mensagens
Download gratuito de PDF: Perguntas e respostas da entrevista do Struts
2. Qual é a função de um manipulador em aplicativos baseados em MVC?
É função dos manipuladores transferir as solicitações para modelos apropriados, pois elas estão vinculadas à camada de modelo da arquitetura MVC. Os manipuladores usam informações de mapeamento de arquivos de configuração para transferência de solicitações.
3. Qual é o fluxo de solicitações em aplicações baseadas em Struts?
Aplicativos baseados em Struts usam o padrão de design MVC. O fluxo de solicitações é o seguinte:
- O usuário interage com o View clicando em qualquer link ou enviando qualquer formulário.
- Após a interação do usuário, a solicitação é repassada ao controlador.
- O controlador é responsável por encaminhar a solicitação para a ação apropriada.
- Action é responsável por chamar uma função no Model que possui toda a lógica de negócio implementada.
- A resposta da camada do modelo é recebida de volta pela ação que a passa para a visualização onde o usuário pode ver a resposta.
4. Qual arquivo é usado pelo controlador para obter informações de mapeamento para roteamento de solicitações?
O controlador usa um arquivo de configuração “struts-config.xml arquivo para obter todas as informações de mapeamento para decidir qual ação usar para rotear a solicitação do usuário.
5. Qual é o papel da Action Class no Struts?
No Struts, a Action Class atua como um controlador e executa as seguintes tarefas principais:
- Após receber a solicitação do usuário, ele processa a solicitação do usuário.
- Usa o modelo apropriado e extrai dados do modelo (se necessário).
- Seleciona a visualização adequada para mostrar a resposta ao usuário.
6. Como um bean actionForm é criado?
Substituto
O bean actionForm é criado estendendo a classe org.apache.struts.action.ActionForm
In the following example we have created an actionForm bean with the name 'testForm':
import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.*; public class testForm extends ActionForm { private String Id=null; private String State=null; public void setId(String id){ this.Id=id; } public String getId(){ return this.Id; } public void setState(String state){ this.State=state; } public String getState(){ return this.State; }
7. Quais são os dois tipos de validações suportadas pelo Validator FrameWork?
Validator Framework é usado para validação de dados de formulário. Esta estrutura fornece dois tipos de validações:
- Validação do lado do cliente no navegador do usuário
- Validação do lado do servidor
8. Quais são as etapas de instalação do Struts?
Para usar o framework Struts, precisamos apenas adicionar o arquivo Struts.Jar em nosso ambiente de desenvolvimento. Assim que o arquivo jar estiver disponível no CLASSPATH, podemos usar o framework e desenvolver aplicativos baseados em Strut.
9. Como a validação do lado do cliente é habilitada em um formulário JSP?
Para habilitar a validação do lado do cliente no Struts, primeiro precisamos habilitar o plug-in validador no arquivo struts-config.xml. Isso é feito adicionando as seguintes entradas de configuração neste arquivo:
<!-- Validator plugin --> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/> </plug-in>
Em seguida, as regras de validação são definidas no arquivo validação.xml. Se um formulário contiver um campo de e-mail e quisermos ativar a validação do lado do cliente para esse campo, o código a seguir será adicionado ao arquivo validação.xml:
<form name="testForm"> <field property="email" depends="required"> <arg key="testForm.email"/> </field> </form>
10. Como a tag de mapeamento de ação é usada para encaminhamento de solicitação no arquivo de configuração do Struts?
No arquivo de configuração do Struts (struts-config.xml), as opções de encaminhamento são definidas na tag action-mapping.
No exemplo a seguir, quando um usuário clica no hiperlink teste.do, a solicitação será encaminhada para /pages/testing.jsp usando as seguintes configurações do arquivo struts-config.xml:
<action path="/test" forward="/pages/testing.jsp">
Este encaminhamento ocorrerá quando o usuário clicar no seguinte hiperlink na página jsp:
<html:link</strong> page="/test.do</strong>">Controller Example</html:link>
11. Como o envio duplicado de formulários pode ser controlado no Struts?
No Struts, a classe action fornece dois métodos importantes que podem ser usados para evitar envios duplicados de formulários.
O método saveToken() da classe de ação gera um token exclusivo e o salva na sessão do usuário. O método isTokenValid() é usado para verificar a exclusividade dos tokens.
12. No Struts, como podemos acessar Java beans e suas propriedades?
Bean Tag Library é uma biblioteca Struts que pode ser usada para acessar Java beans.
13. Qual arquivo de configuração é usado para armazenar informações de configuração JSP no Struts?
Para detalhes de configuração JSP, o arquivo Web.xml é usado.
14. Qual é o propósito do método Execute da classe de ação?
O método Execute da classe de ação é responsável pela execução da lógica de negócios. Se algum processamento for necessário a pedido do usuário, ele será realizado neste método. Este método retorna o objeto actionForward que direciona o aplicativo para a página apropriada.
No exemplo a seguir, o método execute retornará um objeto de actionForward definido em struts-config.xml com o nome “exampleAction”:
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class actionExample extends Action { public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{ return mapping.findForward("exampleAction"); } }
15. Qual é a diferença entre os arquivos validação.xml e validator-rules.xml no framework Struts Validation?
Em Validation.xml, definimos regras de validação para qualquer Java bean específico, enquanto no arquivo validator-rules.xml, regras de validação padrão e genéricas são definidas.
16. Como podemos exibir todos os erros de validação para o usuário na página JSP?
Para exibir todos os erros de validação com base nas regras de validação definidas no arquivo validação.xml, usamos tag em nosso arquivo JSP.
17. O que é o tratamento de exceções declarativas no Struts?
Quando a lógica para tratamento de exceções é definida em struts-config.xml ou dentro da tag de ação, ela é conhecida como tratamento de exceções declarativas no Struts.
No exemplo a seguir, definimos exceção no arquivo struts-config.xml para NullPointerException:
<global-exceptions> <exception key="test.key" Type="java.lang.NullPointerException" Path="/WEB-INF/errors/error_page.jsp" </global-exceptions>
18. O que é DynaActionForm?
DynaActionForm é um tipo especial de classe actionForm (subclasse da classe ActionForm) usada para criar beans de formulário dinamicamente. Ele usa arquivos de configuração para criação de bean de formulário.
19. Quais alterações de configuração são necessárias para usar Tiles no Struts?
Para criar componentes reutilizáveis com a estrutura Tiles, precisamos adicionar o seguinte código de definição de plugin no arquivo struts-config.xml:
<plug-in className="org.apache.struts.tiles.TilesPlugin" > <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" /> <set-property property="moduleAware" value="true" /> </plug-in>
20. Qual é a diferença entre Jakarta Struts e Apache Struts? Qual é melhor usar?
Ambos são iguais e não há diferença entre eles.
21. Qual é a utilidade do arquivo de configuração Struts.xml?
O arquivo Struts.xml é um dos principais arquivos de configuração do framework Struts que é usado para definir o mapeamento entre URL e ação. Quando a solicitação de um usuário é recebida pelo controlador, o controlador usa informações de mapeamento deste arquivo para selecionar a classe de ação apropriada.
22. Como as bibliotecas de tags são definidas no Struts?
As bibliotecas de tags são definidas no arquivo de configuração (web.xml) dentro marque da seguinte forma:
<taglib> <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri> <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> </taglib>
23. Qual é o significado das tags lógicas no Struts?
O uso de tags lógicas no Struts ajuda a escrever um código limpo e eficiente na camada de apresentação sem o uso de scriptlets.
24. Quais são os dois tipos de escopo para formbeans?
- Escopo da solicitação: Os valores do Formbean estão disponíveis apenas na solicitação atual
- Escopo da sessão: Os valores Formbean estão disponíveis para todas as solicitações na sessão atual.
25. Como podemos agrupar ações relacionadas em um grupo no Struts?
Para agrupar várias ações relacionadas em um grupo, podemos usar a classe DispatcherAction.
26. Quando devemos usar o SwtichAction?
O melhor cenário para usar a classe SwitchAction é quando temos uma aplicação modular com vários módulos trabalhando separadamente. Usando a classe SwitchAction podemos mudar de um recurso em um módulo para outro recurso em algum módulo diferente do aplicativo.
27. Quais são os benefícios do framework Struts?
O Struts é baseado em MVC e, portanto, há uma boa separação de diferentes camadas no Struts, o que facilita o desenvolvimento e a customização de aplicativos do Struts. O uso de diferentes arquivos de configuração torna os aplicativos Struts facilmente configuráveis. Além disso, o Struts é de código aberto e, portanto, econômico.
28. Quais etapas são necessárias para uma migração de aplicação do Struts1 para o Struts2?
As etapas a seguir são necessárias para a migração do Struts1 para o Struts2:
- Mova o actionForm do Struts1 para o POJO do Struts2.
- Converter o arquivo de configuração do Struts1 (struts-config.xml) para o arquivo de configuração do Struts2 (struts.xml)
29. Como as propriedades de um formulário são validadas no Struts?
Para validação de propriedades preenchidas, o método valid() da classe ActionForm é usado antes de manipular o controle do formbean para a classe Action.
30. Qual é a utilidade do método reset da classe ActionForm?
O método reset da classe actionForm é usado para limpar os valores de um formulário antes do início de uma nova solicitação.
31. Quais são as desvantagens do Struts?
Embora o Struts tenha um grande número de vantagens associadas, ele também requer maior curva de aprendizado e também reduz a transparência no processo de desenvolvimento.
O Struts também carece de documentação adequada e, para muitos de seus componentes, os usuários não conseguem obter recursos on-line adequados para obter ajuda.
32. Qual é a utilidade do arquivo resourcebundle.properties no framework Struts Validation?
O arquivo resourcebundle.properties é usado para definir mensagens de erro específicas em pares de valores-chave para quaisquer possíveis erros que possam ocorrer no código.
Essa abordagem ajuda a manter o código limpo, pois o desenvolvedor não precisa incorporar todas as mensagens de erro dentro do código.
33. Posso ter html propriedade form sem métodos getter e setter formbean associados?
Para cada propriedade do formulário HTML, os métodos getter e setter no formbean devem ser definidos, caso contrário o aplicativo resultará em um erro.
34. Quantos controladores servlet são usados em uma aplicação Struts?
A estrutura Struts trabalha com o conceito de abordagem de controle centralizado e toda a aplicação é controlada por um único controlador de servlet. Portanto, exigimos apenas um controlador de servlet em uma aplicação servlet.
35. Para um único aplicativo Struts, podemos ter vários arquivos struts-config.xml?
Podemos ter qualquer número de arquivos Struts-config.xml para um único aplicativo.
Precisamos das seguintes configurações para isso:
<servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.ActionServlet </servlet-class> <init-param> <param-name>config</param-name> <param-value> /WEB-INF/struts-config.xml /WEB-INF/struts-config_user.xml /WEB-INF/struts-config_admin.xml </param-value> </init-param> ............. ............. </servlet>
36. Quais componentes do modelo são suportados pelo Struts?
Struts suportam todos os tipos de modelos, incluindo Java beans, EJB, CORBA. No entanto, o Struts não possui nenhum suporte integrado para nenhum modelo específico e é escolha do desenvolvedor optar por qualquer modelo.
37. Quando é útil usar IncludeAction?
IncludeAction é uma classe de ação fornecida pelo Struts que é útil quando uma integração é necessária entre Struts e aplicativos baseados em Servlet.
38. O thread do Struts é seguro?
Sim, os Struts são thread-safe. No Struts, um novo objeto servlet não é necessário para tratar cada solicitação; em vez disso, um novo thread de objeto de classe de ação é usado para cada nova solicitação.
39. Quais alterações de configuração são necessárias para usar arquivos de recursos no Struts?
Arquivos de recursos (arquivos .properties) podem ser usados no Struts adicionando a seguinte entrada de configuração no arquivo struts-config.xml:
<message-resources parameter="com.login.struts.ApplicationResources"/>
40. Como nested beans podem ser usados em aplicações Struts?
Struts fornecem uma biblioteca de tags separada (Biblioteca de tags aninhadas) para essa finalidade. Usando esta biblioteca, podemos aninhar os beans em qualquer aplicativo baseado em Struts.
41. Quais são as classes principais do Struts Framework?
A seguir estão as classes principais fornecidas pelo Struts Framework:
- Classe de Ação
- Classe ActionForm
- Classe ActionMapping
- Classe ActionForward
- Classe ActionServlet
42. Podemos lidar com exceções no Struts programaticamente?
Sim, podemos lidar com exceções no Struts programaticamente usando blocos try, catch no código.
try { // Struts code } Catch (Exception e) { // exception handling code }
43. O Struts Framework faz parte do J2EE?
Embora a estrutura Struts seja baseada em tecnologias J2EE como JSP, Java Beans, Servlets etc., não faz parte dos padrões J2EE.
44. Como o mapeamento de ações é configurado no Struts?
Os mapeamentos de ações são configurados no arquivo de configuração struts-config.xml sob a tag do seguinte modo:
<pre><action-mappings> <action path="/login" type="login.loginAction" name="loginForm" input="/login.jsp" scope="request" validate="true"> <forward name="success" path="/index.jsp"/> <forward name="failure" path="/login_error.jsp"/> </action> </action-mappings>
45. Quando devo optar pelo Struts Framework?
Struts devem ser usados quando alguma ou algumas das seguintes condições forem verdadeiras:
- É necessário um desenvolvimento de aplicativos de nível empresarial altamente robusto.
- É necessário um aplicativo reutilizável e altamente configurável.
- Um aplicativo baseado em MVC fracamente acoplado é necessário com segregação clara de diferentes camadas.
46. Por que ActionServlet é singleton no Struts?
No framework Struts, o actionServlet atua como um controlador e todas as solicitações feitas pelos usuários são controladas por este controlador. ActionServlet é baseado no padrão de design singleton, pois apenas um objeto precisa ser criado para esta classe de controlador. Vários threads são criados posteriormente para cada solicitação do usuário.
47. Quais são as etapas necessárias para configurar a estrutura do validador no Struts?
As etapas a seguir são necessárias para configurar a estrutura do validador no Struts: – Ortografia errada
- No diretório WEB-INF coloque os arquivos valdator-rules.xml e validação.xml.
- Habilite o plugin de validação nos arquivos struts-config.xml adicionando o seguinte:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml"/> </plug-in>
48. Quais tecnologias podem ser utilizadas no View Layer no Struts?
No Struts, podemos usar qualquer uma das seguintes tecnologias na camada de visualização:
- JSP
- HTML
- XML/XSLT
- Arquivos WML
- Modelos de velocidade
- Servlets
49. Quais são as condições para que o actionForm funcione corretamente?
ActionForm deve atender às seguintes condições para funcionar corretamente:
- Deve ter um construtor sem argumento.
- Deve ter métodos getter e setter públicos para todas as suas propriedades.
50. Qual biblioteca é fornecida pelo Struts para elementos de formulário como caixas de seleção, caixas de texto, etc.?
Struts fornece uma biblioteca de tags HTML que pode ser usada para adicionar elementos de formulário como campos de texto, caixas de texto, botões de opção, etc.
Essas perguntas da entrevista também ajudarão em sua viva (oral)
Muito obrigado, senhor, incrível; :)) o link para download do pdf não está funcionando.
Erro corrigido! Obrigado por reportar
Obrigado senhor :) :)