java代码实现登录跳转_java实现登录案例
本文实例为大家分享了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实现登录案例相关推荐
- java代码是怎么运行的_Java代码是如何运行起来的?
目录 1.编译 写好:".java"代码后,会通过编译器将代码编译成.class后缀的字节码文件 Java是平台无关的,实现语言无关性的基础就是虚拟机和字节码存储格式 只要编译器按 ...
- Java代码有效和片段有效_Java 9 尝鲜之交互式编程环境
Java 9 JShell--Java 9 的交互式编程环境 本文要求读者有基本的 Java 知识. Tips Java 9 的代码由于提供了新特性,所以有些代码并不支持向后兼容.也就是说,用 Jav ...
- python登录跳转_Python模拟登录和登录跳转的参考示例
# coding:utf-8 import urllib import urllib2 import cookielib from bs4 import BeautifulSoup # 设置登录url ...
- java sso单点登录源码_Java单点登录系统 sso源码下载
这是一个使用Java开发的单点登陆系统(sso). 运行截图 单点登陆介绍 单点登录,这就是我们通常称之为SSO.一般来说,大型系统平台将使用这些东西.它解决了频繁登录和验证的过程,即用户的一次登录被 ...
- java代码如何能运行起来_Java代码如何运行
Java作为高级语言,高度抽象,无法直接运行在机器上,这样就必须设计一个面向Java语言特征的虚拟机,并通过编译器将Java程序转化成虚拟机所能识别的指令序列,也成Java字节码. Java 虚拟机将 ...
- java代码实现解压文件_Java压缩/解压文件的实现代码
用java压缩/解压文件: import java.io.*; import java.awt.*; import java.awt.event.*; import java.util.*; impo ...
- java代码执行了两次_Java中JComboBox的itemStateChanged事件执行两次的解释
今天做项目,用到了JComboBox,即下拉列表框.为了在被选中的项发生改变时获得被选中的项,所以使用的ItemStateChanged事件,可是问题就来了,每次触发该事件,它都执行两次,屡试不爽.一 ...
- java 代码配置 网络调试助手_java源码:网络调试助手
[实例简介] [实例截图] [核心代码] package com.hsw.u11.netassist.view; import java.awt.GridLayout; import java.awt ...
- java代码修改数据库里图片_java如何修改sql存储的图片?
展开全部 :获取数据库连接 1:导入mysql的驱动jar包,mysql-connector-java-5.1.8-bin.jar 2:写代码连接数据库,如下323131333532363134313 ...
最新文章
- bzoj1207(HNOI2004)打鼹鼠
- 资源共享冲突问题概述
- Python教程:如何将list嵌套的list的[]去掉
- 肝了我好久,《Python知识手册V1.0》出来了!!!
- HDU - 3667 Hotel(线段树+区间合并)
- win2003下面显示dbgprint的输出内容
- 每天进步一点点《ML - 从极大似然到EM算法》
- 技术核心 | MySQL性能结构优化原理
- Java中单例模式的几种写法
- 计算机应用cad题库,cad试题库
- python计算均方误差_python 计算平均平方误差(MSE)的实例
- 苹果微信cookie传不到服务器,基于微信公共号开发遇到的cookie问题解决方案小记...
- 【論文筆記】MIDAS:Microcluster-Based Detector of Anomalies in Edge Streams
- 几种css炫酷背景欣赏
- html如何将地址、路径、支付code_url转成二维码
- 七星配资爆量强上攻创业板大阳
- 谷歌地球out了,谷歌火星来了!
- jnz和djnz_【HC89S003F4开发板】 10汇编指令
- java支持wingdings吗,[转]往JRE里添加新字体
- 计算机网络在财务管理中的运用,浅析如何应用计算机网络进行财务管理
热门文章
- python自然语言处理_Python自然语言处理
- Delphi XE10.4 TrayIcon托盘
- 深度学习之SSD总结
- Java--入门指引
- 云计算如何推动园区建设智慧升级?
- zynqsd的读写数据_【正点原子FPGA连载】 第十二章SD卡读写TXT文本实验-摘自【正点原子】领航者 ZYNQ 之嵌入式开发指南 (amobbs.com 阿莫电子论坛)...
- 51单片机OLED收银电子秤称重计价清零去皮金额累计HX711
- C++ isdigit() 的基本用法
- java.security 框架之签名、加密、摘要及证书
- 如何使用Linux之快速入门