目录

一、环境搭建

二、目录结构

三、代码示例

3.1、fail.html页面

3.2、Login.htm页面

3.3、IndexServlet.java

3.4、LoginServlet.java

3.5、LogoutServlet.java

3.6、总结

一、环境搭建

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进阶篇相关推荐

  1. WEB自动化_登录案例以及免登录的方式

    说明:这是一个WEB自动化_简单的登录案例 登录案例 from selenium import webdriver 1.创建浏览器驱动对象 driver = webdriver.Chrome(&quo ...

  2. 无忧考吧2017二级java_无忧考吧二级JAVA超级模拟软件下载_无忧考吧二级JAVA超级模拟软件官方下载-太平洋下载中心...

    无忧考吧二级JAVA超级模拟软件是一款可以帮助用户朋友来学习计算机二级java语言考试的软件,使用这款二级java模拟考试软件可以帮助用户快速的掌握学习内容和操作逻辑,让你顺利的通过二级java考试. ...

  3. java ee4.8下载_在WildFly 8.2中修补焊接3 – Java EE 8的第一个实验RI

    java ee4.8下载 Java EE 8一直在发展,并且已经提出了几个新的组件JSR. JSR 365将定义CDI 2.0的规范. 红帽已经开始开发Weld 3的实现原型, Alpha3最近发布了 ...

  4. 我的世界java启动程下载_我的世界JAVA下载 运行必备官方下载地址

    我的世界这款游戏的正常运行需要Java的支持,Java 是一门编程语言和一个运行平台.不像其它的如 C++ 的语言,Java 并不是直接运行在硬件上,而是运行在一个叫作 JVM 的虚拟机里.. Min ...

  5. 我的世界java服核心下载_我的世界java版

    我的世界java版手机下载是一款高自由度的沙盒模拟建造游戏,这个版本是Java版本,增加了很多不同的游戏生物,还有超多好玩的游戏内容,感兴趣的玩家们千万不要错过了,快来下载这款我的世界java版1.1 ...

  6. java 1.3 下载_我的世界Java版1.16.3

    我的世界Java版1.16.3是一款经过一系列测试终于在今天与大家见面的正式版哦,这款版本游戏里保证让玩家们感受到最稳定.最流畅的游戏体验,另外玩家们可以与自己的小伙伴一起感受不一样的游戏乐趣,感兴趣 ...

  7. java护照号码校验_学无止境之小白学java……第001天

    学习主题:预科阶段 对应视频: http://www.itbaizhan.cn/course/id/18.html 对应作业: 1. 为什么需要学编程,什么样的人可以做程序员? 编程是现实逻辑的表达, ...

  8. java 并发编程多线程_多线程(一)java并发编程基础知识

    线程的应用 如何应用多线程 在 Java 中,有多种方式来实现多线程.继承 Thread 类.实现 Runnable 接口.使用 ExecutorService.Callable.Future 实现带 ...

  9. java引用公共类_使用键引用从Java公共类获取值 - java

    我们有一个Java公共类, public class Test { public class ob1 { public static final String test = "T1T1&qu ...

  10. java azure blob 查询_快速入门:适用于 Java 的 Azure Blob 存储客户端库 v8 | Microsoft Docs...

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 快速入门:使用 Jav ...

最新文章

  1. python线程,进程,协程
  2. 通过wsdl2java工具生成客户端段代码(wsdl2java -p cn.com.css.misps.graph.webservice.impl -d F:\src -all http://10.)
  3. 【Alljoyn】 Alljoyn学习笔记六 Alljoyn基本概念
  4. TCP/IP 网络编程 (三)
  5. Golang 常见设计模式之装饰模式
  6. Android开发之非常好用的日志工具类(公司项目挖出来的)
  7. ES6-1 ES6版本过渡历史
  8. Summer Training day4上帝与集合的正确用法 欧拉函数+降幂公式
  9. python实践作业_实践-python实现假设检验
  10. SimpleFs文件系统初步一(编译并挂载)
  11. PreferenceScreen修改背景颜色
  12. CrossApp更新至0.3.3,推出JS体验版
  13. 【Unity2D】制作游戏主菜单MainMenu
  14. Linux 服务器配置 ASF 云挂卡
  15. Windows语言栏不见了,解决办法。任务栏的语言栏没了、不显示了。语言栏异常导致不能输入中文。默认中文输入法设置。
  16. 怎样选择ADC芯片?
  17. 互联网摸鱼日报(2022-10-08)
  18. 用指向指针的指针方法对n个整数排序输出
  19. 岚图汽车中大型智能电动SUV完成高温高原严苛测试
  20. c语言编写银行业务模拟程序,C语言数据结构实现银行模拟

热门文章

  1. 线性空间的向量组与数量矩阵的乘法
  2. adc分辨率和精度的区别_STM32学习笔记—ADC采集数据常见问题
  3. 穿越迷宫的函数c语言,数据结构课外实践题库(26页)-原创力文档
  4. linux系统怎么启动服务器,Linux操作系统的启动步骤详细说明
  5. 五大特点_皮肤肤质五大分类及其特点
  6. WPF:将Office文档、任意类型文件嵌入到EXE可执行文件中
  7. POJ 2393 Yogurt factory
  8. getBoundingClientRect方法获取元素在页面中的相对位置
  9. apache+nginx 实现动静分离
  10. Requirement-Driven Linux Shell Programming