0. Escreva na frente
Dicas amigáveis: o endereço de download está abaixo.
O projeto foi basicamente concluído. Com este resumo, escrevi 30 blogs relacionados a este projeto, que acumularam muito. O processo de escrever um blog é um processo de solidificação de idéias. É muito útil para mim mesmo e também pode ajudar os outros. A propósito, definitivamente haverá muitas exceções no processo de aprendizado. A primeira coisa que precisamos fazer é localizar essa exceção. Geralmente, um ou mais causados por: XXX são seguidos pela exceção. Essas são as causas da exceção. Geralmente, procuramos o causado pelo fundo, que geralmente é a raiz do problema. Se você não puder resolver você mesmo, poderá pesquisar no Google ou no Baidu (não publique muitas anormalidades ao pesquisar, preste atenção às partes principais!). Geralmente, 99,9% dos problemas que encontramos foram encontrados por nossos antecessores, e basicamente todos eles podem ser resolvidos. Eu basicamente faço isso quando encontro problemas que não podem ser resolvidos. Se eu os resolver mais, vou sentir isso ~ finalmente, espero que todos ganhem algo ao ler meu blog!
Não vou dizer absurdo. Vamos resumir o projeto deste shopping online abaixo. Eu não vou cobrir tudo. Ele é dividido principalmente em vários módulos a serem resumidos, incluindo quais tecnologias são usadas, etc. A anexarei um link rápido aos detalhes específicos do artigo. Você pode conferir um artigo específico.
Recordando este projeto, ele pode ser dividido nesses principais módulos:
--- Construindo o ambiente do projeto
--- Construa um sistema de gerenciamento de back-end
--- Construa uma página de exibição da recepção
--- Funções relacionadas ao carrinho de compras
--- Função de pagamento online
--- Envie e-mail e mensagens de texto
--- Nome de domínio Aplicativo e implantação do projeto
--- Verificação do formulário e exibição de relatório
A seguir, é apresentada uma análise específica para cada módulo.
1. Construção do ambiente do projeto
Este é um link indispensável em todos os projetos, e haverá muitos problemas confusos. Quando comecei a aprender SSH, sempre lutei para construir o meio ambiente porque não era muito hábil, mas só queria construí -lo "ritmicamente". Ou seja, a construção de um projeto ambiental requer passo a passo, pouco a pouco. Muitas pessoas importam todos os pacotes JAR para ele e, em seguida, escrevem todos os arquivos de configuração ou as colarão de outros lugares e depois os executam e depois penduram ... e depois encontram vários problemas. Por que se preocupar? Dessa forma, mesmo que você o construa 10 vezes, não poderá fazê -lo facilmente. Você tem que comer arroz em uma mordida, e você tem que caminhar passo a passo.
O processo que eu pessoalmente sigo para a construção do ambiente SSH é:
Spring> Hibernate> Spring Integration Hibernate> Struts2> Spring Integration Struts2
Após cada etapa, escreva um teste. Isso é muito importante, porque se você for passo a passo, saberá para onde ir se cometer um erro e onde encontrar o problema. O mais importante é que, se você se tornar proficiente nesse processo, será fácil obter o ambiente da próxima vez. Para obter mais informações sobre a construção do ambiente SSH, consulte o seguinte artigo:
Integrar struts2, hibernate4.3 e spring4.2
Adição básica, exclusão, pesquisa e modificação, extração de serviço e ação e substituição XML por anotações
2. Construa um sistema de gerenciamento de back -end
Eu uso o easyui para criar o sistema de gerenciamento de back -end. Para ser sincero, tenho apenas um pouco de entendimento de Easyui. Não sei muito sobre as coisas do front-end, mas entendo um pouco. Eu também verifiquei todos eles quando os uso. Eu não os aprendi sistematicamente, então não tenho um bom sistema de conhecimento, mas isso não afeta a reprodução. Os programadores gostam de dizer que estão jogando uma tecnologia e parecem bastante sofisticados. Fui gradualmente afetado e gosto de dizer isso, mas estou realmente brincando com o front-end ...
O JQuery Easyui é uma coleção de plug-ins de interface do usuário baseados no jQuery, e o objetivo do JQuery Easyui é ajudar os desenvolvedores da Web a criar uma interface da interface do usuário rica em recursos e lindamente. Os desenvolvedores não precisam escrever JavaScript complexos, nem precisam ter um entendimento profundo dos estilos CSS. Todos os desenvolvedores precisam saber são algumas tags HTML simples.
As solicitações da easyui são todas as solicitações de Ajax e nenhuma nova página aparecerá, elas estão todas na guia da guia ou em uma janela aparece. O sistema de gerenciamento de back -end é dividido principalmente em três partes: gerenciamento de categorias de produtos, gerenciamento de produtos e gerenciamento de vendas. O gerenciamento de vendas é o último.
2.1 Gerenciamento de categoria de produto
Esta parte envolve principalmente a construção do ambiente easia e a estrutura de plano de fundo, consulta em cascata e paginação de bancos de dados, exibição de dados de datagrid, Integração do Struts2 JSON e adição de categorias de produtos, exclusão, atualização e pesquisa. Isso também segue uma sequência de conclusões nesta seção.
O DataGrid exibe dados na forma de uma tabela, e os desenvolvedores não precisam ter conhecimento específico para operá -los. Tem um bom documento de ajuda e é mais detalhado. Neste projeto, também introduzi várias maneiras de criar DataGrid e também introduzi brevemente algumas das propriedades do Datagrid. É um começo. Eu também sou uma ferramenta introdutória. Somente desenvolvendo mais, posso dominar essa tecnologia.
As funções de adição, exclusão, atualização e pesquisa das categorias usam principalmente a função de verificação que vem com a easyui. Ao adicionar categorias de produtos, verifique se a entrada na caixa de entrada está correta, seja necessária, etc.; se uma determinada linha ou várias linhas são selecionadas primeiro ao excluir; Ao atualizar, apenas uma linha pode ser atualizada por vez, etc., todas são solicitações de Ajax.
Para mais informações sobre esta parte, eu já a classifiquei, consulte estes artigos:
Use o easyui para criar uma estrutura de página de back -end. Menu Easyui para implementar a consulta em cascata e a paginação de bancos de dados. Função de exibição de dados DataGrid Struts2 e JSON Integrated Datagrid para implementar a consulta e excluir a função Datagrid para implementar e atualizar a função Datagrid para implementar a Função de adição e atualização
Aqui estão os problemas que encontrei:
Problema de exceção de carregamento preguiçoso na integração STRUTS2 e JSON Hibernate4 Execution Save () ou Update () é inválido
2.2 Gerenciamento de produtos
O gerenciamento de produtos também inclui operações como adicionar e exclusão, o mesmo que o gerenciamento de categorias. Há uma coisa que adiciona produtos e precisa fazer upload de fotos de produtos. Isso envolve a função do STRUTS2 para implementar uploads de arquivo. Precisamos criar uma pasta no lado do servidor para armazenar arquivos carregados e, em seguida, gravar um modelo para receber arquivos. Em relação ao upload de arquivos, precisamos escrever uma classe de ferramenta especificamente. É assim que o desenvolvimento do projeto é. O código comum deve ser extraído, mesmo que haja apenas uma frase de código, ele deve ser extraído! Este é um hábito e deve ser feito. Para detalhes específicos, consulte os artigos listados abaixo:
O módulo básico da categoria de produto é construído e a função de consulta e exclua o produto é implementada. A implementação da função do produto é implementada. A implementação da função de upload de arquivos é implementada.
3. Construa uma página de exibição da recepção
Obviamente, a página do front-end não foi projetada por mim. Resumi algumas tecnologias de back-end relacionadas à exibição front-end, como: o ouvinte obtém dados da página inicial, o timer sincroniza os dados da página inicial e o cache de processamento de cache de cache do Hibernate Nível 2 de produtos populares.
Quando eu estava aprendendo servlet, foi assim que fiz os dados da página inicial. Usei um quadro e exibi os dados à direita. Depois pulei para um servlet na parte correta no index.jsp e depois fui ao servlet para retirar todos os produtos do banco de dados, coloque -os no campo de solicitação e trouxe a nova página JSP para exibir. Embora isso possa ser alcançado, é muito estúpido. Aqui eu usei um ouvinte para fazer isso. Primeiro, eu mesmo defini um ouvinte e, quando o projeto começou, tirei todas as informações do produto no banco de dados, coloquei -as no domínio do aplicativo e depois usei diretamente as expressões EL para recuperá -lo do domínio do aplicativo na página inicial.
Há outro problema. Quando adiciono um novo produto ao sistema de gerenciamento, tenho que reiniciar o TomCat para adicionar o novo produto ao domínio do aplicativo. Por estar no domínio do aplicativo após a primeira vez que o tirei, está determinado a morrer. O recém -adicionado posterior não está no domínio do aplicativo. Para resolver esse problema, usei um cronômetro para sincronizar os dados da página inicial. Por isso, reescrevi o ouvinte que escrevi antes, defino um cronômetro no ouvinte, coloco o código para obter os dados do produto no banco de dados na tarefa do timer e executá-lo imediatamente pela primeira vez e depois o executar a cada 6 horas (o horário pode ser definido na vontade), o que é reaquado no DATABASE em cada 6 horas e salvá-lo). É isso que o site geral faz, como a página inicial do blog pessoal da CSDN, o ranking é atualizado todos os dias, provavelmente por volta das 22h, esqueci o horário específico. Naquela época, a atualização verá a atualização de dados, que também reduzirá a pressão no servidor.
Para detalhes técnicos específicos nesta seção, consulte os seguintes artigos:
Use o ouvinte para exibir os dados na página inicial. Como obter o thread de arquivo de configuração da mola, sincronização do tempo do timer Dados da página inicial Hibernar o processamento de cache secundário Página inicial exibição popular
4. Funções relacionadas ao carrinho de compras
As principais tecnologias envolvidas no carrinho de compras incluem: o processamento em segundo plano da lógica de carrinhos de compras e itens de compras, filtro de login de julgamento, pedidos em cascata no banco de dados e cache de páginas.
Para carrinhos de compras, ele contém principalmente alguma lógica de implementação no back -end. Existem itens de compras no carrinho de compras. O que isso significa? Todos sabemos que, quando compramos coisas no TMall, podemos colocar produtos diferentes no carrinho de compras e, em seguida, há muitos produtos no carrinho de compras, e cada produto pode ter várias quantidades. Cada produto e suas informações relacionadas são um item de compras. Portanto, ao adicionar um carrinho de compras, devemos primeiro concluir um item de compras e depois adicionar este item de compras ao carrinho de compras.
Quando um usuário deseja resolver, devemos primeiro determinar se o usuário fez login. Isso usa a tecnologia do filtro, que filtra especificamente um certo tipo de URL e determina se existe um objeto de usuário na sessão atual no filtro. Se houver alguma indicação de que o login tenha sido conectado, basta liberá -lo diretamente. Caso contrário, pule para a página de login para deixar o usuário fazer login. Depois de fazer login, pule para a página que o usuário procurou originalmente. É como um porteiro ~ olhando para a porta ~
Como mencionado agora, as informações do pedido incluem carrinhos de compras e itens de compras. Quando entramos nos pedidos, devemos considerar seus problemas em cascata. Podemos definir os atributos de anotação correspondentes nos Pojos dos dois. No entanto, há um pré -requisito. Por exemplo, se houver uma correlação de chave estrangeira, os campos na parte da chave estrangeira do Pojo correspondente devem receber um bom valor antes de entrar no Pojo. Por exemplo, o pedido deve ser adicionado ao item de linha e os atributos do pedido no item de linha também devem receber um bom valor antes que possam ser entregues para hibernar. Hibernate os cascata na biblioteca de acordo com as anotações configuradas (ou arquivo XML).
O problema com o cache de página refere -se a isso quando o usuário confirmar o pedido, se ele clicar, ele retornará à página de confirmação do pedido. A página de confirmação do pedido agora sai novamente e a sessão ainda está lá, e as informações ainda são as informações agora. Obviamente, este não é o resultado que queremos. Precisamos processá -lo na recepção e no back -end ao mesmo tempo.
Consulte os seguintes artigos para obter detalhes técnicos específicos nesta seção:
Implementação de funções básicas do filtro de carrinho de compras para realizar a função de login para determinar os problemas de armazenamento e cache de página em cascata de informações sobre o pedido
5. Função de pagamento online
Esta parte apresenta principalmente algumas coisas sobre a interface de pagamento de Yibao. De fato, as funções de pagamento on -line são diferentes para diferentes terceiros. O principal objetivo é entender um processo de desenvolvimento de funções de pagamento on -line. Os detalhes técnicos específicos dependem das informações fornecidas pelos terceiros específicos. Mas o processo geral é: chamando a interface do terceiro> chamando a interface bancária> Concluindo o pagamento> O terceiro salta de volta para a página que especificamos.
Esta parte também envolve uma tecnologia importante, que é assim que o Struts2 lida com várias solicitações de modelo. Geralmente, o STRUTS2 pode usar o modelo em ação após a implementação do <Model> modedriven, mas e se houver dois modelos agora? Existe outra interface chamada ParameterSaware no Struts2. Desde que essa interface seja implementada e um mapa que armazena parâmetros seja definido, ela pode receber todos os parâmetros na solicitação de solicitação. Podemos julgar qual modelo usar com base em diferentes parâmetros. Este método pode resolver o problema de Struts2 lidar com várias solicitações de modelo.
Para detalhes técnicos nesta seção, consulte a seguinte postagem do blog:
Uma introdução à plataforma de pagamento on -line, uma demonstração do processo de pagamento de Yibao
Obtenha a exibição de ícones bancários e páginas de pagamento para concluir a lógica da função de pagamento on -line como lidar com várias solicitações de modelo no Struts2
6. Função de envio de e -mail e sms
O envio de e -mails e o envio de mensagens de texto é relativamente simples. Ambas são APIs fixa, apenas sabem como usá -las. Basta verificá -los e também não me lembro deles. A função de envio de email precisa importar o pacote Mail.jar e enviar e -mails de acordo com o processo. A função SMS deve primeiro se aplicar à função de envio de SMS. Após a conclusão do pedido, o terceiro nos fornecerá algumas interfaces de API. Podemos desenvolver a função de envio de SMS enquanto nos referirmos a ela. É um pouco semelhante à função de pagamento e todos confiam em plataformas de terceiros.
Não há dificuldades técnicas nesta parte, principalmente o processo, os artigos relacionados são os seguintes:
Enviar a função SMS após a conclusão do pagamento do pedido bem -sucedido usando o email Java para os usuários
7. Aplicação para namespace de domínio e implantação e liberação de projetos
Esta seção apresenta principalmente como se inscrever em um espaço de nome de domínio gratuito (gratuito por apenas 15 dias ~ mas para aprender, o suficiente ~). Embora nem todos sejam gratuitos, precisamos descobrir esse processo. É melhor passar por isso sozinho. Ele não precisa necessariamente fazer upload de um projeto completo. Uma página JSP ou página estática HTML está bem.
Existem duas maneiras principais de implantar e publicar um projeto: uma é fazer upload usando o FTP, mas isso é lento e pode perder dados. A experiência pessoal é emitir pouco a pouco; Outra maneira é solicitar um espaço de nome de domínio para fornecer um ambiente de implantação. Só precisamos exportar o projeto como um pacote de guerra e depois implantar o pacote de guerra.
Há muitos detalhes a serem prestados antes da implantação do projeto, como modificar alguns caminhos, modificar alguns dados etc. Esses detalhes são explicados em detalhes no meu blog. Esta seção contém um artigo, como segue:
Aplicação para o espaço de nome de domínio e implantação e liberação do projeto
8. Verificação do formulário e exibição do relatório
Algumas coisas são adicionadas mais tarde, que são atualizadas dinamicamente a quantidade de produtos no carrinho de compras, a verificação dos formulários e a exibição de relatórios.
O número de produtos na atualização dinâmica do carrinho de compras é a tecnologia pura de Ajax. Acabei de aprender. A verificação do formulário é principalmente o formulário de login. Não fiz login neste projeto, mas fiz um formulário de login e a função de verificação também é feita. O uso principal é o plug-in de verificação de validação do jQuery. Este plug-in ainda é muito poderoso. Você pode adicionar diretamente o formulário de login ao projeto e definir o salto correspondente. O principal uso do JSChart para a exibição de relatórios é o JSCHART. Esta ferramenta é muito útil e pode gerar código JS de resposta. O que precisamos fazer é enviar solicitações AJAX para o back -end, recuperar dados do back -end de acordo com as necessidades reais e passá -los para o front -end para exibi -los com o gráfico JSChart.
Vou listar as postagens do blog nesta seção abaixo:
Use a tecnologia AJAX para atualizar parcialmente a quantidade do produto e o plug-in total de verificação de preços-validados para exibir relatórios de vendas de produtos em segundo plano usando a tecnologia JSChart
Este é o projeto de shopping online que escreveu muito. O código -fonte no canal de download do CSDN é sincronizado com o meu blog. Se você precisar, você pode baixar o código -fonte que eu carreguei no CSDN (grátis ~ todos os meus recursos são gratuitos). Se eu quiser continuar a melhorá -lo mais tarde, vou colocá -lo no meu github. Todo mundo também pode seguir meu Github (embora seja média ~) Projeto STAR I Carga ~ o seguinte é o endereço de download específico:
Download Endereço (sincronize com o conteúdo do blog)
Endereço de download do Github (se houver uma atualização mais tarde, ele será colocado aqui)
Endereço original: http://blog.csdn.net/eson_15/article/details/514799994#download
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.