1. Introdução ao JSP
JSP (Java Server Pages) é uma linguagem de script do lado do servidor. É uma tecnologia que adiciona a linguagem Java às páginas HTML para gerar páginas dinâmicas: novas tags (<%, %>,...) são adicionadas.
JSP é uma tecnologia de geração dinâmica de páginas da web desenvolvida com base em Java e Servlet. Sua implementação subjacente é Java Servlet.
As páginas JSP são compostas de código HTML e código Java incorporado nelas. O servidor processa esses códigos Java depois que a página é solicitada pelo cliente e, em seguida, retorna a página HTML gerada ao navegador do cliente.
2. Processo de execução JSP O cliente solicita a página JSP -> JSP Parser analisa *.jsp e compila-o em *.java -> o comando javac compila-o em *.class -> executa o arquivo de classe -> responde e retorna o resultado para o cliente
O código JSP contém duas categorias: elementos JSP e dados de modelo. Os dados do modelo referem-se à parte que o mecanismo JSP não processa, ou seja, o mecanismo JSP distribuirá diretamente as partes diferentes das tags <%...%> sem qualquer processamento.
Quando JSP é executado pela primeira vez ou após modificar o arquivo JSP, ele chamará o JSP Parser para compilar o arquivo *.jsp em um programa servlet, portanto será mais lento.
3. Sintaxe básica JSP
1. Dois tipos de anotação
(1) Comentário HTML Você pode adicionar um comentário em formato HTML ao código JSP. Este comentário é enviado ao cliente, mas não é exibido na página.
Se o programador for um hackiller, o comentário retornado no cliente será
(2) Os comentários JSP são escritos no código JSP, mas não são enviados ao cliente.
<%-- Comentário JSP, este comentário será ignorado quando JSP for compilado --%>
<%-- /*Comentários multilinhas no Scriptlet*/ --%>
<%-- /**Comentários de múltiplas linhas no Scriptlet, que podem ser extraídos de arquivos java usando javadoc*/ --%>
<%-- Comentário de linha única JSP--%>
2. 3 elementos de script
(1) Declaração de variáveis globais
<%!int i=0;String="Olá mundo!";
(2)Expressão
No código JSP, as expressões são frequentemente usadas para gerar o valor de uma variável, que pode estar em qualquer lugar
<%! int a=1; int b=2;
<%=a+b%> <%=str>
PS: Você não pode usar o símbolo ";" como terminador de uma expressão. Mas a mesma expressão deve terminar com ponto e vírgula no Scriptlet.
(3) Scriptlet
Um segmento de script é usado para conter um segmento de programa Java válido
<% int b=3;
3. 3 elementos de comando
(1) comando de página
<%@ page contentType="text/html;charset=utf-8"%>
Defina os atributos globais do arquivo JSP, incluindo: idioma, extensões, importação, sessão, buffer, autoflush, isThreadSafe, info, errorPage, isErrorPage, contentType (formato de saída do servidor para o cliente)
Sua localização pode ser em qualquer lugar da página, mas é recomendável colocá-lo no topo da página.
idioma: declara o tipo de linguagem de script Atualmente, apenas “java” pode ser usado.
estende: Indica o nome completo da classe Java que precisa ser adicionada ao compilar JSP. Isso limitará a capacidade de compilação do JSP, portanto, use com cuidado!
import: Lista de pacotes java que precisam ser importados.
sessão: Defina se o cliente requer sessão HTTP. O padrão é verdadeiro.
buffer: O tamanho do buffer é usado pelo objeto out para processar a saída do JSP executado para o navegador do cliente. O valor padrão é 8 KB.
autoFlush: Define se deve forçar a saída se o buffer estourar. Se for definido como verdadeiro (valor padrão), a saída será normal, se for definido como falso, ocorrerá um erro inesperado.
isThreadSafe: Define se o arquivo JSP pode ser usado em vários threads. O padrão é verdadeiro.
informações: informações de texto. Ele pode ser recuperado usando o método Servlet.getServletInfo().
errorPage: Defina o arquivo JSP que manipula eventos de exceção
sErrorPage: Defina se esta página é uma página que lida com eventos de exceção. Se definido como verdadeiro, o objeto de exceção pode ser usado.
contentType: Defina o tipo MIME e o conjunto de codificação de caracteres. O tipo MIME padrão é text/html e o conjunto de caracteres padrão é charset=ISO-8859-1.
Várias diretivas < %@page %> podem ser usadas em uma página, mas exceto pelo atributo import, outros atributos só podem ser usados uma vez.
Pacotes importados por JSP por padrão Os seguintes pacotes foram importados durante a compilação JSP, portanto não há necessidade de usar a diretiva page para introduzi-los no arquivo JSP:
java.lang.*
javax.servlet.*
javax.servlet.jsp.*
javax.servlet.http.*
(2)incluir diretiva
Código HTML
<%@include arquivo = "caminho relativo" %>
Use a diretiva include para incluir um arquivo estático em JSP e analisar as instruções JSP nesse arquivo.
Se o caminho começar com "/", então esse caminho se refere principalmente ao caminho de contexto do aplicativo jsp.
Se o caminho for aberto como um nome de arquivo ou diretório de arquivo, esse caminho será o caminho atual do arquivo JSP que está sendo usado.
(3) comando taglib
Código HTML
<%@ taglib uri = "TagLibrary" prefix = "mypfx" %>
Use a diretiva taglib para definir uma biblioteca de tags e seu prefixo personalizado.
uri: O Uniform Resource Identifier nomeia exclusivamente o rótulo personalizado com base no prefixo do rótulo, que pode ser um caminho relativo ou absoluto.
prefixo: o prefixo do rótulo personalizado. Não use jsp, jspx, java, javax, servlet, sun, sunw como prefixos, estes foram declarados reservados pela Sun.
4. 8 comandos de ação
(1) Salto de página:
A tag
Contém 2 atributos no total
O atributo page é uma expressão ou string que descreve o arquivo ou URL a ser direcionado.
Código HTML
Obtenha o nome de usuário por meio de request.getParameter("username")
(2) Incluir página:
Se apenas arquivos estáticos forem incluídos, essa inclusão apenas adicionará o conteúdo do arquivo incluído ao arquivo JSP, semelhante a < %@include% >;
Se um recurso web dinâmico for incluído, o arquivo incluído também será executado pelo compilador JSP.
Se este arquivo de inclusão for dinâmico, você também poderá usar
(3) Criar Bean:
Crie uma instância do Bean e especifique seu nome e escopo.
Contém 5 atributos.
id: Confirme a variável Bean no escopo definido e use o id para usar esta instância do Bean no programa. O valor de id diferencia maiúsculas de minúsculas.
Escopo: O escopo no qual o Bean existe e o escopo válido do nome da variável id. O valor padrão é página.
class: Use a nova palavra-chave e o construtor de classe para instanciar um bean de uma classe. A classe não pode ser abstrata e deve ter um construtor público sem argumentos.
type: Se este Bean já existir no escopo especificado, usar type atribuirá um tipo de dados a este Bean. Se type for usado sem class ou beanName, o bean não será instanciado.
beanName: beanName pode ser uma string package.class ou uma expressão jsp, e seu valor será passado para o método Beans.instantiate. O valor de type pode ser igual a beanName, sua classe base ou a interface que ele implementa.
(4) Definir propriedades do Bean:
name: Indica o nome da instância do Bean que foi criada em
propriedade: Corresponde às propriedades no Bean
param: refere-se ao nome do parâmetro no objeto de solicitação e define o valor correspondente ao atributo Bean.
valor: use o valor especificado para definir a propriedade Bean. Este valor pode ser uma string ou uma expressão. Se for uma string, será convertido para o tipo do atributo Bean (por exemplo, "0,98" será convertido para o tipo duplo 0,98). Se for uma expressão, seu tipo deverá ser consistente com o tipo do atributo Bean.
PS: Atributos param e atributos de valor não podem ser usados ao mesmo tempo no mesmo
(5) Obtenha propriedades do Bean:
Obtenha o valor do atributo no objeto Bean existente e exiba-o na página.
nome: o mesmo nome da instância do objeto existente.
propriedade: o nome da propriedade no objeto
(6) Use o plug-in do miniaplicativo:
Código HTML Não foi possível carregar o miniaplicativo!
Use
(7) Defina parâmetros:
Pode ser usado em
(8) Mensagem de erro do plug-in:
Quando o plug-in
3. Objetos JSP integrados
1. Solicitação: Objeto de solicitação. Este objeto encapsula as informações enviadas pelo usuário. As informações encapsuladas podem ser obtidas chamando o método correspondente do objeto.
Quando o objeto da solicitação obtiver os caracteres chineses enviados pelo cliente, caracteres ilegíveis aparecerão e um processamento especial deverá ser realizado.
Métodos comumente usados:
getParameter(String parâmetroName): Obtenha as informações de envio do formulário.
getProtocol(): obtém o protocolo utilizado pelo cliente.
getServletPath(): obtém a página onde o cliente enviou as informações.
getMethod(): O método para obter as informações enviadas pelo cliente.
getHeader(String str): Obtenha os valores de Accept, Accept-encoding e Host no arquivo de cabeçalho HTTP.
getRermoteHost(): obtém o endereço IP do cliente.
getServerName: Obtenha o nome do servidor.
getServerPort: Obtenha o número da porta do servidor.
getParameterNames(): obtém os nomes de todos os parâmetros enviados pelo cliente.
2. Resposta: O objeto de resposta responde dinamicamente à solicitação do cliente e envia dados ao cliente.
(1) Responder dinamicamente ao atributo contentType Use o comando page para definir estaticamente o atributo contentType da página. Ao definir este atributo dinamicamente, use response.setContextType("text/html;charset=utf-8");
(2) Redirecionamento de resposta
resposta.sendRedirect("index.jsp");
3. Sessão: objeto de sessão
(1) O que é um objeto Session?
O objeto Session é criado automaticamente quando a primeira página JSP é carregada para concluir o gerenciamento da sessão.
Começa quando um cliente abre um navegador e se conecta ao servidor e termina quando o cliente fecha o navegador e sai do servidor.
(2) ID do objeto Session
Quando um cliente visita uma página JSP no servidor pela primeira vez, o mecanismo JSP gera um objeto Session e atribui um número de ID do tipo String. O mecanismo JSP também envia esse número de ID ao cliente e o armazena em um cookie. desta forma, o objeto Session, somente quando o cliente fecha o navegador é que o objeto Session do cliente é modificado pelo servidor e a correspondência da sessão com o cliente desaparece.
(3)Métodos comuns
public String getId(): obtém o número do objeto Session.
public void setAttribute(String str,Object obj): Adicione o objeto de parâmetro ao objeto Session.
public Object getAttribute(): Obtenha os atributos no objeto Session com base no nome do atributo.
public boolean isNew(): Determine se é um novo cliente.
4. Aplicação: objeto de aplicação
(1) O que é um objeto Aplicativo?
Este objeto Aplicativo é gerado após o servidor ser iniciado. Quando um cliente navega entre várias páginas do site visitado, o objeto Aplicativo é o mesmo e todos os clientes compartilham esse objeto Aplicativo integrado.
(2)Métodos comuns
setAttribute(String key,Object obj): Adicione o objeto de parâmetro ao objeto Application.
getAttibute(String key): Obtenha os atributos no objeto Aplicativo com base no nome do atributo
5. Fora: objeto de saída
O objeto out é um fluxo de saída usado para enviar dados aos clientes.
out.print(): gera vários tipos de dados.
out.newLine(): gera um caractere de nova linha.
out.close(): Fecha o fluxo.
6. Config: Objeto de configuração Geralmente, usamos o objeto Config para obter algumas informações de configuração de inicialização. Os métodos comumente usados são getInitParameter e getInitParameterNames para obter os parâmetros durante a inicialização do Servlet.
7.Página: objeto de página
O objeto de página representa o objeto de classe em execução gerado pelo arquivo JSP e não é recomendado para leitores em geral.
8.PageContext: objeto de contexto de página
A classe PageContext introduzida por JSP permite acessar muitas propriedades da página. A variável pageContext armazena o valor do objeto PageContext associado à página atual. A classe PageContext possui métodos como getRequest, getResponse, getOut e getSession.
9.Exceção: objeto de exceção
O objeto de exceção representa o objeto de exceção gerado quando o arquivo JSP está em execução. Este objeto não pode ser usado diretamente em arquivos JSP comuns, mas só pode ser usado em.
< %@page isErrorPage="true"%> é usado em arquivos JSP. Isso ocorre porque o objeto de erro gerado quando o arquivo JSP está em execução é descartado e só pode ser interceptado por um JSP que usa a tag < %@pageisErrorPage="true"% > para interceptar o objeto de erro. O método mais comumente usado é getMessage, usado para obter informações de erro.
4. Página de login da instância: index.jsp
Código HTML
<%@ page idioma="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>