Java Web + perguntas da entrevista de processamento de dados

Um, explique a estrutura da solicitação HTTP:

  1. A solicitação HTTP consiste em três partes: linha de solicitação, cabeçalho da solicitação, linha de solicitação do corpo da
    solicitação - normalmente na primeira linha de HTTP, indica o método de envio (get / post), o endereço de envio e o número da versão HTTP.
    O cabeçalho do pedido -descreve as informações auxiliares enviadas do navegador para o servidor.
    Accept-Language: zh-CN indica que o navegador usa preferencialmente chinês
    User-Agent: representa o ambiente de uso do usuário (julgue se o usuário está usando um telefone celular ou acessando um computador e, em seguida, exiba continuamente de forma diferente de acordo com as especificações do navegador)
    Conteúdo -Tipo: Explica o
    corpo da solicitação de formato do formulário enviado - os dados reais enviados pelo navegador ao servidor. Na pergunta da solicitação, os dados usam a forma de pares chave-valor. A "chave" e o "valor" estão conectados por "=". Use "&" para separar vários pares de valores-chave. (O corpo da solicitação está presente apenas na solicitação de postagem e não há corpo da solicitação na solicitação get) O corpo da solicitação será anexado ao url e enviado ao servidor.
    Insira a descrição da imagem aqui
  2. Resposta - o resultado retornado pelo servidor ao navegador. A
    resposta HTTP contém três partes: a linha de resposta, o cabeçalho da resposta e o corpo da resposta.
    Linha de resposta - normalmente na primeira linha da resposta, contém a versão http, o código de status e a descrição em inglês do código de status.
    200 - indica que o acesso foi bem
    - sucedido 404 - indica que o recurso não foi encontrado
    500 - representa um erro interno do servidor.
    Cabeçalho de resposta - expressa algumas informações auxiliares dos dados retornados, qual servidor web é usado,
    Serviço - significa qual servidor web é usado,
    Content-Type: significa qual método o navegador usa para processar os dados depois que eles são retornados ao navegador. (Texto / html significa interpretar os dados retornados como html para exibição)
    Data - o tempo do
    corpo da resposta gerado pelos dados de resposta - os dados reais retornados pelo servidor ao navegador (fragmentos html, conteúdo binário, xml)

Em segundo lugar, explique o processo de execução do Servlet.

  • O cliente envia uma solicitação http para o servidor tomcat, incluindo o endereço de mapeamento do servlet e os parâmetros a serem passados ​​- "o tomcat analisa cada arquivo web.xml, encontra o url correspondente e o nome do servlet correspondente -" encontre o servlet correspondente de acordo com o nome do servlet, e para instanciar e inicializar este servlet- "Tomcat executa o método service () na instância do servlet-" Depois que o método é executado, o resultado da execução do programa é retornado ao navegador por meio da resposta- "O navegador recebe este código e explica isso.
    Insira a descrição da imagem aqui

3. Tempo de instanciação do Servlet:
Por padrão , o servlet é instanciado quando é acessado pela primeira vez.Você também pode configurar o loadon-startup por meio do web.xml para torná-lo instanciado quando a décima quinta fase iniciar.

Quarto, como o servlet lida com um ambiente concorrente?
O servlet é baseado na simultaneidade do processamento multi-thread de singleton. Use a tecnologia multi-threading para fornecer serviços da web.

5. No caso de processamento multi-thread, como resolver o problema de segurança de thread?
Todos os threads compartilham uma instância de servlet. Portanto, quando usamos servlet, não é permitido criar variáveis ​​de estado e objetos no servlet. Porque isso produzirá resultados inesperados durante o acesso simultâneo.

Sexto, qual é o ciclo de vida do Servlet?

  1. Carregando - Quando o aplicativo java é iniciado, o tomcat fará a varredura do arquivo web.xml para saber quais servlets estão disponíveis no momento. (O servlet não será instanciado durante o carregamento) (Criação de objeto no nível java durante a criação)
  2. Create-Created quando o url acessa o endereço do servlet pela primeira vez. Ao mesmo tempo, o construtor é executado.
  3. Inicialização - Depois que o servlet cria o objeto, ele executa imediatamente a função de inicialização init () para inicializar o servlet. (A inicialização é um método usado exclusivamente pelo próprio servlet para inicializar os recursos de execução do servlet)
  4. Fornece o método service-service ().
    Método servlce () - Para todas as solicitações de entrada (não importa se é post / get), o método servlet é usado para recebimento e processamento.
    Se a solicitação for refinada, o método service () também pode ser refinado no método doGet () / doPost (). doGet () - lida apenas com solicitações de obtenção,
    doPost () - lida apenas com solicitações de postagem.
  5. Destroy-Use o método destroy () para destruir completamente os recursos do servlet quando o aplicativo da web for reiniciado ou fechado.

Sete, a diferença entre encaminhamento de solicitação e redirecionamento de resposta :

Existem duas maneiras de salto de recursos em javaweb:

  1. Encaminhamento de solicitação -é um salto do servidor, apenas uma solicitação será gerada. A solicitação será encaminhada para a próxima solicitação intacta. (Server Jump)
  • 语法 : request.getRequestDispatcher (). Forward ();
  • Processo de execução: O navegador envia uma solicitação para tomcat- "Depois que o tomcat recebe a solicitação, ele usa o servlet correspondente para processar a solicitação -" e executa request.getRequestDispatcher (). Forward (); - "deixa a solicitação intacta após o processamento. Distribuído para outro servlet- "Depois que o servlet processa a solicitação, ele gera um objeto de resposta-" Envie o resultado da resposta correspondente ao navegador por meio de tomcat- "O navegador vê o resultado da resposta final (há apenas uma solicitação globalmente e o recurso O salto é gerado dentro do servidor, e o navegador não pode senti-lo)
  • Barra de endereço: o encaminhamento de solicitação exibirá apenas o único url solicitado
    Insira a descrição da imagem aqui
  1. Respondendo ao redirecionamento: é um redirecionamento no lado do navegador, que irá gerar 2 solicitações
  • Sintaxe: response.sendRedirect ()
  • Processo de execução: O navegador inicia uma solicitação para tomcat- "Após a entrega, servlet1 chama o método response.sendRedirect (), retorna uma resposta e a envia para o navegador por meio de tomcat, informando ao navegador para criar uma nova solicitação-" O navegador recebe as informações e as envia A segunda solicitação é para servlet2- "servlet2 processa a solicitação 2 e retorna o resultado para o navegador-" O navegador exibe o resultado
  • Barra de endereços: Apenas o url
    Insira a descrição da imagem aqui
    oito da segunda resposta será exibido.O princípio de funcionamento da sessão é a sessão -
    também conhecida como sessão do usuário, que é vinculada à janela do navegador do cliente e armazenada nos dados internos do usuário do servidor.
    O princípio de funcionamento da sessão é que após a conclusão do login do cliente, o servidor irá criar a sessão correspondente.Após a sessão ser criada, o id da sessão será enviado ao cliente, e o cliente irá armazená-lo no cookie do navegador. Enquanto o navegador não estiver fechado, esse cookie sempre existirá. Desta forma, cada vez que o cliente acessar o servidor, ele carregará a id de sessão, após o servidor obter a id de sessão, ele encontra a sessão correspondente na memória para que possa funcionar normalmente.
    Insira a descrição da imagem aqui
    Oito, nove objetos JSP integrados:
    Insira a descrição da imagem aqui

processamento de dados

1. A diferença entre usar Statement e PreparedStatement em JDBC

  1. PreparedStatement é uma instrução SQL pré-compilada, que é mais eficiente do que a instrução. Especialmente quando instruções SQL complexas são executadas ou um determinado SQL é executado com frequência, a vantagem da eficiência de execução é mais óbvia.

  2. PreparedStatement oferece suporte a operações parametrizadas, que são mais flexíveis do que a instrução usando conexão de string para bloquear instruções SQL Melhor legibilidade

  3. PreparedStatement pode evitar injeção de SQL e é mais seguro do que Statement

2. Explique as etapas para usar JDBC:

  1. Carregue o driver JDBC

  2. Criado no link do banco de dados (Conexão)

  3. Comando de criação (PreparedStatement / Instrução)

  4. Para os resultados do processamento da consulta, o objeto ResultSet é usado para receber e os resultados são processados ​​por meio de travessia.

  5. Fechar conexão de banco de dados

Acho que você gosta

Origin blog.csdn.net/qq_36792120/article/details/114198225
Recomendado
Clasificación