jsp登陆校验演示 servlet、login、success

jsp的登录校验Demo

part_1:login.jsp:登录页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
 String path = request.getContextPath();
 String basePath = request.getScheme() + "://"
 + request.getServerName() + ":" + request.getServerPort()
 + path + "/";
%> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <base href="<%=basePath%>"> 

 <title>My JSP 'Login.jsp' starting page</title> 

 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 --> 

 </head> 

 <%
 String fdbkMsg = (String) request.getAttribute("fdbkMsg");
 if (null == fdbkMsg) {
 fdbkMsg = "";
 }
 %> 

 <%
 Boolean logedIn = (Boolean) session.getAttribute("logedIn");
 if (null == logedIn) {
 logedIn = false;
 } else if (logedIn) {
 //如果在本次会话已经登陆,直接重定向到success-page-1
 response
  .sendRedirect("/ServletDemoProject/LOGIN-DEMO/success-page-1.jsp");
 }
 %> 

 <%
 String username = "";
 Cookie[] cookies = request.getCookies();
 if ((null != cookies) && (cookies.length > 0)) {
 for (Cookie c : cookies) {
 if ("admin".equals(c.getValue())) {
  username = "admin";
  break;
 }
 }
 }//end if-condition
 %> 

 <body>
 <br>
 <div align="center">
 请登录:
 <br>
 <form action="/ServletDemoProject/servlet/LoginVerificationServlet"
 method="post">
 用户名:
 <input type="text" name="username" value="<%=username%>" />
 <br>
 密 码:
 <input type="password" name="password" value="" />
 <br>
 <font color='red'><%=fdbkMsg%></font>
 <br>
 <input type="submit" value="提交" />
 <br>
 </form>
 </div>
 </body>
</html> 

part_2:LoginVerificationServlet.java:校验登录信息,此处没有连接数据库,默认只有username:admin,password:888888才算登录成功;登陆失败时:重新转发到Login.jsp并提示用户登陆失败,重新登陆;

package cn.mike.servlet.test_1209_Login; 

import java.io.IOException; 

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; 

public class LoginVerificationServlet extends HttpServlet { 

 private static final long serialVersionUID = -6886327892796230543L; 

 public void doGet(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 String username = request.getParameter("username");
 String password = request.getParameter("password");
 if (("admin".equals(username)) && ("888888".equals(password))) {// 登录成功
 // 保存cookie到客户端
 Cookie userCookie = new Cookie("username", username);
 userCookie.setMaxAge(60 * 2);// expiry : 2 minutes
 response.addCookie(userCookie);
 // 重定向到一个新的页面,并提示XXX用户登录成功(使用session存取用户名);
 request.getSession().setAttribute("username", username);
 request.getSession().setAttribute("logedIn", true);
 response
  .sendRedirect("/ServletDemoProject/LOGIN-DEMO/success-page-1.jsp");
 } else {// 登陆失败
 // 转发到登录界面,并提示错误信息:
 request.setAttribute("fdbkMsg", "用户名或密码错误!");
 request.getRequestDispatcher("/LOGIN-DEMO/Login.jsp").forward(
  request, response);
 }
 } 

 public void doPost(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException { 

 // do same as GET-method :
 doGet(request, response);
 } 

} 

part_3:success-page-1.jsp:校验登录成功后重定向到该页面,提示用户已经成功登陆;如果用户试图通过不正当途径,e.g:从地址栏访问,将会转发到登录界面,并作提示;

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
 String path = request.getContextPath();
 String basePath = request.getScheme() + "://"
 + request.getServerName() + ":" + request.getServerPort()
 + path + "/";
%> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <base href="<%=basePath%>"> 

 <title>My JSP 'success-page-1.jsp' starting page</title> 

 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 --> 

 </head> 

 <%
 String username = (String) session.getAttribute("username");
 if (null == username) {
 //如果username为空值,说明不是通过正常渠道来的,转发到Login页面;
 request.setAttribute("fdbkMsg", "别想走后门进来,赶紧登录!");
 request.getRequestDispatcher("/LOGIN-DEMO/Login.jsp").forward(
  request, response);
 }
 %> 

 <body>
 <br>
 <%=username%>已经成功登陆。
 <br>
 <font>您可以选择浏览:</font>
 <br>
 <a href="/ServletDemoProject/LOGIN-DEMO/success-page-2.jsp">点这儿有精彩.</a>
 <br>
 <a href="/ServletDemoProject/LOGIN-DEMO/success-page-2.jsp">点这儿更精彩.</a>
 <br />
 <a href="/ServletDemoProject/LOGIN-DEMO/success-page-2.jsp">你敢点这儿吗.</a>
 <br />
 </body>
</html> 

part_4:success-page-2.jsp:登陆成功页面2,如果已经登陆成功将用户名保存到session,在访问该页面时将会校验一下,防止从地址栏暴力访问;

<%@ page language="java" import="java.util.Date" pageEncoding="UTF-8"%>
<%@ page language="java" import="java.text.SimpleDateFormat"%>
<%
 String path = request.getContextPath();
 String basePath = request.getScheme() + "://"
 + request.getServerName() + ":" + request.getServerPort()
 + path + "/";
%> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <base href="<%=basePath%>"> 

 <title>My JSP 'success-page-2.jsp' starting page</title> 

 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 --> 

 </head> 

 <%
 String username = (String) session.getAttribute("username");
 if (null == username) {
 request.setAttribute("fdbkMsg", "呵呵嗒,这里是你来的地方吗?快登陆!");
 //转发到登录界面:
 request.getRequestDispatcher("/LOGIN-DEMO/Login.jsp").forward(
  request, response);
 } 

 SimpleDateFormat sDateFormat = new SimpleDateFormat("a");
 Date today = new Date();
 String am_pm_str = sDateFormat.format(today);
 String am_pm_str_in_chinese = "";
 if ("am".equalsIgnoreCase(am_pm_str)) {
 am_pm_str_in_chinese = "上午";
 } else
 am_pm_str_in_chinese = "下午"; 

 // set null;
 sDateFormat = null;
 today = null;
 am_pm_str = null;
 %> 

 <body>
 <br />
 <font><b><%=username%><%=am_pm_str_in_chinese%>好,能来到页面2真不简单.</b>
 </font>
 </body>
</html> 

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

(0)

相关推荐

  • JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)

    下面通过通过图文并茂的方式给大家介绍JavaWeb实现用户登录注册功能实例代码,一起看看吧. 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据. Servlet+JSP+JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式. 这里以一个最常用的用户登录注册程序来讲解Servlet+JS

  • JSP开发Servlet重写init()方法实例详解

    JSP开发Servlet重写init()方法实例详解 写一个Servlet时,有时需要我们重写该Servlet的初始化方法,然后,究竟是重写init(ServletConfig config),还是重写init(),这是个问题.要明了这一点,首先要知道Servlet的几个类和接口的联系: ServletConfig接口:其中有getServletName();getServletContext();getInitParameter(String name);getInitParameterNam

  • jsp+servlet实现最简单的增删改查代码分享

    话不多说,请看代码 package ceet.ac.cn.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import ceet.ac.cn.model.Admin; public class A

  • JSP中通过Servlet 将服务器硬盘图片并展示到浏览器

    JSP中通过Servlet 将服务器硬盘图片并展示到浏览器 其实这个实例非常简单,但是今天有人问我了,而且我也写了个小例子,就顺便发上来吧! 在浏览器显示一张图片,使用标签 <img src=""> img 元素向网页中嵌入一幅图像. 请注意,从技术上讲,<img> 标签并不会在网页中插入图像,而是从网页上链接图像.<img> 标签创建的是被引用图像的占位空间. <img> 标签有两个必需的属性:src 属性 和 alt 属性. HTML

  • JSP 开发之Servlet解决网页缓存问题

    JSP 开发之Servlet解决网页缓存问题 (1)我们为什么要防止游览器页面缓存的问题: 所以在不需要缓存的页面中需要实现不缓存页面: 代码如下: package com.lc.HttpTest; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.ser

  • Servlet+JavaBean+JSP打造Java Web注册与登录功能

    采用Java Web所实现的MVC结构图如下,其中控制器部分采用Servlet来实现,模型部分采用JavaBean来实现,而大部分的视图采用Jsp页面来实现. 思想基础 JSP+JavaBean两层结构工作原理应该是比较熟悉的,也比较好理解. 但是有一点必须要清楚就是用户通过浏览器来发送网页的请求,此请求到达服务器后在服务器端查找对应的网页,如果是首次请求(第二次就不用解释执行了),对于JSP来说要生成Servlet,然后通过Servlet引擎来执行 Servlet,把调用JavaBean的结果

  • JSP + Servlet实现生成登录验证码示例

    随机生成四位数验证码,包括汉字,数字,英文大小写. 1.Servlet类 package servlet; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.AffineTransform; import java.awt.geom.Line2D; i

  • 浅谈Servlet转发到JSP页面的路径问题(必看)

    一.现象与概念 1. 问题 在Servlet转发到JSP页面时,此时浏览器地址栏上显示的是Servlet的路径,而若JSP页面的超链接还是相对于该JSP页面的地址且该Servlet和该JSP页面不在同一个文件夹下时,则会出现路径混乱问题. 2. 绝对路径概念 相对于contextPath(当前Web应用的上下文)的路径. 解决方案:超链接用绝对路径而不是相对路径.若/代表的是站点的根目录,在其前面加上contextPath. <a href="<%= request.getConte

  • jsp+servlet+jdbc实现对数据库的增删改查

    一.JSP和Servlet的简单介绍 1.Servlet和JSP简介: Java开发Web应用程序时用到的技术主要有两种,即Servlet和JSP,Servlet是在服务器端执行的Java程序,一个被称为Servlet容器的程序(其实就是服务器) 负责执行Java程序,而JSP(Java Server Page)则是一个页面, 由JSP容器负责执行. 2.Servlet和JSP的区别: Servlet以Java程序为主, 输出HTML代码时需要使用out.println函数,也就是说Java中内

  • jsp登陆校验演示 servlet、login、success

    jsp的登录校验Demo part_1:login.jsp:登录页面: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.ge

  • 在jsp中用bean和servlet联合实现用户注册、登录

    声明:作者原创,版权所有.未经授权,不得转载 在jsp中用bean和servlet联合实现用户注册.登录 作者:imagebear版权:imagebear 本例需要的软件和运行环境:1.Windows2000 Server操作系统2.jdk1.43.JCreator2.5(java源码编辑调试器,吐血推荐!)4.Macromedia JRun MX5.Macromedia Dreamweaver MX(非必需)6.MySQL数据库(最好安装MySQL Control Center) 一.数据库设

  • SpringBoot实现滑块验证码验证登陆校验功能详解

    目录 前言 一.实现效果 二.实现思路 三.实现步骤 1. 后端 java 代码 1.1 新建一个拼图验证码类 1.2 新建一个拼图验证码工具类 1.3 新建一个 service 类 1.4 新建一个 controller 类 1.5 登录接口 2. 前端 vue 代码 2.1 新建一个 sliderVerify 组件 2.2 在登录页使用滑块组件 前言 验证码一直是各类网站登录和注册的一种校验方式,是用来防止有人恶意使用脚本批量进行操作从而设置的一种安全保护方式.随着近几年技术的发展,人们对于

  • jsp页面中获取servlet请求中的参数的办法详解

    在JAVA WEB应用中,如何获取servlet请求中的参数,并传递给跳转的JSP页面?例如访问http://localhost:8088/bbs?id=1 当执行这个bbs servlet时,将url参数id的值传递给bbs.jsp页面? 1.首先要配置web.xml,见下面的配置: <servlet> <servlet-name>bbs</servlet-name> <servlet-class> org.openjweb.core.servlet.BB

  • javascript与jsp发送请求到servlet的几种方式实例

    JavaScript提交至servlet 5种方式: /**第一种提交方式 * */ function submitForm1(){ window.location.href="TestServlet?param=hrefMethod" rel="external nofollow" ; } /**第二种提交方式 * */ function submitForm2(){ var form=document.forms[0]; form.action="Te

  • JSP 开发之THE SERVLET NAME ALREADY EXISTS.解决方法

    The servlet name already exists.解决方法 当我们建立过同名的servlet文件,然后又将其删掉后再用同类名字建一个servlet时就会报错. 解决办法:web.xml里面存有servlet的映射关系,需要自己手动删除web.xml里面的映射关系. 删除,保存刷新即可 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • Struts2的配置 struts.xml Action详解

    在学习struts的时候,我们一定要掌握struts2的工作原理.只有当我们明确了在struts2框架的内部架构的实现过程,在配置整个struts 的框架时,可以很好的进行逻辑上的配置.接下来我就先简单的讲解下struts2的框架工作原理: 一.struts2的工作原理 1.客户端初始化一个指向Servlet容器(例如Tomcat)的请求: 2.这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其

  • 微信小程序支付之c#后台实现方法

    微信小程序支付c#后台实现 今天为大家带来比较简单的支付后台处理 首先下载官方的c#模板(WxPayAPI),将模板(WxPayAPI)添加到服务器上,然后在WxPayAPI项目目录中添加两个"一般处理程序" (改名为GetOpenid.ashx.pay.ashx) 之后打开business目录下的JsApiPay.cs,在JsApiPay.cs中修改如下两处 然后在GetOpenid.ashx中加入代码如下: public class GetOpenid : IHttpHandler

  • 微信小程序 支付功能(前端)的实现

    微信小程序 支付功能(前端)的实现 只提供微信小程序端代码: var app = getApp(); Page({ data: {}, onLoad: function (options) { // 页面初始化 options为页面跳转所带来的参数 var that = this //登陆获取code wx.login({ success: function (res) { console.log(res.code) //获取openid that.getOpenId(res.code) } }

随机推荐