本文实例为大家分享了java实现登录案例的具体代码,供大家参考,具体内容如下

一、环境搭建

JDK1.8  + Tomcat1.8

二、目录结构

三、代码示例

3.1、fail.html页面

faill.html

亲, 你的用户名或密码输入有误!请重新输入!

返回登录页面

3.2、Login.htm页面

Login.html

用户名:

密    码:

3.3、IndexServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 用户主页逻辑

* */

public class IndexServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

// 设置编码格式

response.setContentType("text/html;charset=utf-8");// setContentType设置浏览器的编码格式

// 1.信息输出至浏览器

PrintWriter writer = response.getWriter();

String html = "";

/**

* 接收request域对象的数据 String loginName =

* (String)request.getAttribute("loginName",userName);

*

*/

/**

* 在用户主页,判断session对象不为空且存在指定的属性则登录成功 才能访问资源。从session域对象中取出会话数据

*

*

* */

// 2.得到session对象

HttpSession session = request.getSession(false);

// 2.1如果不存在session对象,登录不成功,跳转到登录页面

if (session == null) {

response.sendRedirect(request.getContextPath()

+ "/Login.html");

return;

}

// 2.2没有在session对象域中找到相应 session唯一标识ID 则登录不成功,跳转到登录页面

String loginName = (String) session.getAttribute("loginName");

if (loginName == null) {

response.sendRedirect(request.getContextPath() + "/Login.html");

return;

}

html = "

欢迎回来," + loginName + ",安全退出";

writer.write(html);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request, response);

}

}

3.4、LoginServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 登录的逻辑

* 设置编码格式

* 根据参数名获取参数值

* 判断逻辑(使用session域对象)

*

*

*/

public class LoginServlet extends HttpServlet {

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

// 设置编码格式

request.setCharacterEncoding("utf-8");// setCharacterEncoding设置服务器的编码格式

// 1.根据参数名获取参数值

String userName = request.getParameter("UserName");

String userPwd = request.getParameter("UserPwd");

// 2.登录是否的逻辑判断

if("eric".equals(userName) && "123456".equals(userPwd)){

/**分析使用技术:

* context域对象:不合适,可能会覆盖数据

* request.setAttribute("loginName",userName);

*

* request域对象:不合适,整个网站必须得使用转发技术来跳转

* request.getRequestDispatcher("/IndexServlet").forward(request,response);

*

* session域对象:合适

* response.sendRedirect(request.getContextPath()+"/IndexServlet")

* */

//2.1 登录成功

// 2.1.1创建session对象 用于保存数据

HttpSession session = request.getSession();

// 2.1.1把数据保存到session域中

session.setAttribute("loginName", userName); // session对象的唯一标识"loginName" 唯一标识名称 userName

//session.setMaxInactiveInterval(1*60*60*24*30); // session对象的有效时长 可以配置全局的有效时长

//2.1.3跳转到用户主页

response.sendRedirect(request.getContextPath() + "/IndexServlet"); //sendRedirect()重定向 getContextPath()请求路径

}else{

//2.2登录失败 请求重定向

response.sendRedirect(request.getContextPath() + "/fail.html");

}

}

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setCharacterEncoding("utf-8");

doGet(request,response);

}

}

3.5、LogoutServlet.java

package cn.itcase.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

/**

* 退出逻辑

* */

public class LogoutServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

/**

* 安全退出

* 删除session对象中指定的loginName属性即可

*

*/

HttpSession session = request.getSession(false);

if(session != null){

session.removeAttribute("loginName");

}

//返回登录页面

response.sendRedirect(request.getContextPath() + "/Login.html");

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request,response);

}

}

3.6、总结

知道了如何实现前端页面与后端的数据交互

疑惑:如果有多个用户难道还一个一个的去判断他存不存在么?

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持谷谷点程序。

java代码实现登录跳转_java实现登录案例相关推荐

  1. java代码是怎么运行的_Java代码是如何运行起来的?

    目录 1.编译 写好:".java"代码后,会通过编译器将代码编译成.class后缀的字节码文件 Java是平台无关的,实现语言无关性的基础就是虚拟机和字节码存储格式 只要编译器按 ...

  2. Java代码有效和片段有效_Java 9 尝鲜之交互式编程环境

    Java 9 JShell--Java 9 的交互式编程环境 本文要求读者有基本的 Java 知识. Tips Java 9 的代码由于提供了新特性,所以有些代码并不支持向后兼容.也就是说,用 Jav ...

  3. python登录跳转_Python模拟登录和登录跳转的参考示例

    # coding:utf-8 import urllib import urllib2 import cookielib from bs4 import BeautifulSoup # 设置登录url ...

  4. java sso单点登录源码_Java单点登录系统 sso源码下载

    这是一个使用Java开发的单点登陆系统(sso). 运行截图 单点登陆介绍 单点登录,这就是我们通常称之为SSO.一般来说,大型系统平台将使用这些东西.它解决了频繁登录和验证的过程,即用户的一次登录被 ...

  5. java代码如何能运行起来_Java代码如何运行

    Java作为高级语言,高度抽象,无法直接运行在机器上,这样就必须设计一个面向Java语言特征的虚拟机,并通过编译器将Java程序转化成虚拟机所能识别的指令序列,也成Java字节码. Java 虚拟机将 ...

  6. java代码实现解压文件_Java压缩/解压文件的实现代码

    用java压缩/解压文件: import java.io.*; import java.awt.*; import java.awt.event.*; import java.util.*; impo ...

  7. java代码执行了两次_Java中JComboBox的itemStateChanged事件执行两次的解释

    今天做项目,用到了JComboBox,即下拉列表框.为了在被选中的项发生改变时获得被选中的项,所以使用的ItemStateChanged事件,可是问题就来了,每次触发该事件,它都执行两次,屡试不爽.一 ...

  8. java 代码配置 网络调试助手_java源码:网络调试助手

    [实例简介] [实例截图] [核心代码] package com.hsw.u11.netassist.view; import java.awt.GridLayout; import java.awt ...

  9. java代码修改数据库里图片_java如何修改sql存储的图片?

    展开全部 :获取数据库连接 1:导入mysql的驱动jar包,mysql-connector-java-5.1.8-bin.jar 2:写代码连接数据库,如下323131333532363134313 ...

最新文章

  1. bzoj1207(HNOI2004)打鼹鼠
  2. 资源共享冲突问题概述
  3. Python教程:如何将list嵌套的list的[]去掉
  4. 肝了我好久,《Python知识手册V1.0》出来了!!!
  5. HDU - 3667 Hotel(线段树+区间合并)
  6. win2003下面显示dbgprint的输出内容
  7. 每天进步一点点《ML - 从极大似然到EM算法》
  8. 技术核心 | MySQL性能结构优化原理
  9. Java中单例模式的几种写法
  10. 计算机应用cad题库,cad试题库
  11. python计算均方误差_python 计算平均平方误差(MSE)的实例
  12. 苹果微信cookie传不到服务器,基于微信公共号开发遇到的cookie问题解决方案小记...
  13. 【論文筆記】MIDAS:Microcluster-Based Detector of Anomalies in Edge Streams
  14. 几种css炫酷背景欣赏
  15. html如何将地址、路径、支付code_url转成二维码
  16. 七星配资爆量强上攻创业板大阳
  17. 谷歌地球out了,谷歌火星来了!
  18. jnz和djnz_【HC89S003F4开发板】 10汇编指令
  19. java支持wingdings吗,[转]往JRE里添加新字体
  20. 计算机网络在财务管理中的运用,浅析如何应用计算机网络进行财务管理

热门文章

  1. python自然语言处理_Python自然语言处理
  2. Delphi XE10.4 TrayIcon托盘
  3. 深度学习之SSD总结
  4. Java--入门指引
  5. 云计算如何推动园区建设智慧升级?
  6. zynqsd的读写数据_【正点原子FPGA连载】 第十二章SD卡读写TXT文本实验-摘自【正点原子】领航者 ZYNQ 之嵌入式开发指南 (amobbs.com 阿莫电子论坛)...
  7. 51单片机OLED收银电子秤称重计价清零去皮金额累计HX711
  8. C++ isdigit() 的基本用法
  9. java.security 框架之签名、加密、摘要及证书
  10. 如何使用Linux之快速入门