Você está aqui: ASP.NET ::: Dicas & Truques ::: Sessão |
|
Destruindo uma sessão ASP.NET usando o método Abandon() da classe HttpSessionState (e gerando um novo SessionID)Quantidade de visualizações: 9075 vezes |
|
Uma sessão ASP.NET pode ser destruída usando o método Abandon() da classe HttpSessionState. Uma chamada a este método cancela a sessão atual, tornando-a inválida. Além disso, se você estiver usando os eventos Session_Start e Session_End no arquivo Global.asax, estes serão disparados após a chamada à Abandon(). Primeiro o evento Session_End é disparado e então o evento Session_Start dispara devido à criação de uma nova sessão na próxima requisição. Vamos ver um exemplo? Coloque três botões <asp:Button>, uma caixa de texto <asp:TextBox> e um rótulo <asp:Label> em uma página. Quando digitarmos algum conteúdo na caixa de texto e clicarmos no primeiro botão, o valor será guardado na sessão. Ao clicarmos no segundo botão o valor guardado na sessão será obtido e exibido em um controle Label, juntamente com o SessionID. Finalmente, ao clicarmos no terceiro botão a sessão será destruída. Veja o código completo para a página Default.aspx: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Debug="true" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title>Estudos ASP.NET</title> </head> <body> <form id="form1" runat="server"> Valor a ser gravado no sessão:<br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /> ...... Veja agora a implementação do evento Click dos três botões no arquivo de code-behind Default.aspx.cs: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Button1_Click(object sender, EventArgs e){ // vamos gravar o conteúdo da caixa de texto na sessão // note que o nome do item é "nome" Session.Add("nome", TextBox1.Text); // vamos avisar que o item foi adicionado à sessão TextBox1.Text = ""; Label1.Text = "O item e seu valor foram adicionados à sessão. " + "O SessionID é: " + Session.SessionID; } protected void Button2_Click(object sender, EventArgs e){ ...... Execute a aplicação e veja os resultados. Note que, mesmo após a destruição da sessão, o valor do SessionID permanence o mesmo. Em algumas situações este comportamento pode ser indesejado. Assim, se quisermos que o ID da sessão seja destruído juntamente com ela, basta alterarmos o código do evento Click do terceiro botão para a seguinte versão: protected void Button3_Click(object sender, EventArgs e){ // vamos destruir a sessão Session.Abandon(); Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", "")); ...... Teste a aplicação novamente e verá que após destruir a sessão atual, a nova sessão terá um SessionID completamente diferente do anterior. |
|
Link para compartilhar na Internet ou com seus amigos: | |
Java ::: Estruturas de Dados ::: Lista Ligada Simples |
Estruturas de dados em Java - Como criar uma lista singularmente ligada, inserindo e exibindo os valores contidos em cada nóQuantidade de visualizações: 11748 vezes |
Em dicas posteriores você aprendeu sobre listas singularmente e duplamente ligadas. Nesta dica você aprenderá a criar uma lista singularmente ligada (com referências apenas para o próximo nó), inserir alguns nós (sempre no final da lista) e usará um laço while para visitar todos os nós e exibir seus valores. A classe usada para representar cada nó é a seguinte (No.java): // classe No public class No{ public int valor; ...... Note que cada nó contém apenas um valor inteiro e uma referência para o próximo nó. Ao analisar o código você perceberá que tanto a inserção quanto a exibição dos nós são feitas usando métodos. Isso permitirá o reaproveitamento deste código em suas próprias implementações. Veja o código para a lista ligada (Lista.java): public class Lista{ No inicio; // início da lista // função que permite exibir os valores de // todos os nós da lista public void exibir(){ if(inicio != null){ do{ System.out.println(inicio.valor); inicio = inicio.proximo; }while(inicio != null); } else System.out.println("A lista esta vazia\n\n"); } // função que permite inserir nós na lista. // veja que a função recebe o valor a ser // armazenado em cada nó public void inserir(int v){ No temp; // verifica se a lista está vazia if(inicio == null){ // reserva memória para o novo nó ...... Compile as classes No.java e Lista.java e vamos fazer o teste (TesteJava.java): public class TesteLista{ public static void main(String args[]){ // vamos criar uma nova lista Lista lista = new Lista(); // vamos inserir quatro valores na lista lista.inserir(45); ...... |
Delphi ::: VCL - Visual Component Library ::: TListBox |
Como pesquisar e selecionar um item em uma ListBox do DelphiQuantidade de visualizações: 16349 vezes |
O trecho de código abaixo mostra como podemos usar a mensagem LB_SELECTSTRING da Windows API para pesquisar e selecionar um item em uma ListBox. Veja que aqui eu usei a função InputBox() para permitir ao usuário inserir o texto a ser pesquisado. Note também o valor -1 fornecido como wParam para a função SendMessage(). Este valor faz com que a busca se inicie no primeiro item da lista e continue até o final da lista. Veja o código: procedure TForm1.Button2Click(Sender: TObject); var pesquisa: string; begin // vamos solicitar o texto a ser pesquisado na ListBox pesquisa := InputBox('Pesquisar', 'Informe o texto', ''); // vamos pesquisar e selecionar o item encontrado if SendMessage(ListBox1.Handle, LB_SELECTSTRING, - 1, ...... Note que a busca efetuada por LB_SELECTSTRING não é sensitiva a maiúsculas e minúsculas. Assim, Osmar e OSMAR são tratadas igualmente. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
VB.NET ::: Dicas & Truques ::: Strings e Caracteres |
Como retornar o tamanho de uma string em VB.NET usando a propriedade Length da classe StringQuantidade de visualizações: 8641 vezes |
Podemos obter o tamanho de uma string, ou seja, a quantidade de caracteres em uma palavra, frase ou texto em VB.NET usando a propriedade Length da classe String do .NET Framework. Esta propriedade retorna um número inteiro indicando a quantidade de caracteres no objeto String atual. Veja um exemplo de seu uso: Imports System Module Program Sub Main(args As String()) Dim site As String = "Arquivo de Códigos" ' obtém o tamanho da string Dim tam As Integer = site.Length Console.WriteLine("A string contém " & tam & ...... Ao executar este código VB.NET nós teremos o seguinte resultado: A string contém 18 caracteres |
Java ::: Dicas & Truques ::: Data e Hora |
Como exibir a data e hora atual na linguagem Java usando um objeto Date e seu método toString()Quantidade de visualizações: 26244 vezes |
Nesta dica mostrarei como criar um novo objeto da classe Date, do pacote java.util, e usar seu método toString() para exibir a data e hora atual no formato "dia da semana/mês/dia do mês"...etc. Veja o código completo abaixo: import java.util.Date; public class Exemplo{ public static void main(String args[]){ ...... Ao executar este código nós teremos o seguinte resultado: Mon Mar 08 22:13:15 BRT 2019 |
C++ Builder ::: VCL - Visual Component Library ::: TEdit |
Como obter o tamanho do texto de um TEdit usando a função SendMessage() da API do Windows e a mensagem WM_GETTEXTLENGTH usando C++ BuilderQuantidade de visualizações: 5746 vezes |
Embora o C++ Builder já nos forneça as ferramentas necessárias para obter a quantidade de caracteres contidos em um TEdit em tempo de execução, é importante saber como realizar esta tarefa usando a API do Windows. Para isso, podemos usar a função SendMessage() em combinação com a mensagem WM_GETTEXTLENGTH. A função SendMessage() da API do Windows possui a seguinte assinatura: LRESULT SendMessage( HWND hWnd, UINT Msg, ...... Note que precisamos informar o HWND (parâmetro hWnd) para a caixa de texto e a mensagem que será enviada ao controle. Os valores para os parâmetros wParam e lParam devem ser 0 (zero). Veja: void __fastcall TForm3::Button2Click(TObject *Sender) { // vamos obter o tamanho do texto de um TEdit usando a função // SendMessage() e a mensagem WM_GETTEXTLENGTH int tam = SendMessage(Edit1->Handle, WM_GETTEXTLENGTH, 0, 0); ...... Ao executar este exemplo você terá um mensagem com um texto parecido com: O Edit contém 10 caracteres. |
Veja mais Dicas e truques de C++ Builder |
Dicas e truques de outras linguagens |
Quem Somos |
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
|
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..
|
Linguagens Mais Populares |
1º lugar: Java |