JSP——编写3个页面,实现登录页面login.jsp,在其中输入用户名,密码,发送到登录验证页面loginCL.jsp,验证登录成功_创建三个jsp项目,编写登录页面怎么写-程序员宅基地

技术标签: JSP  

编写3个页面,实现登录页面login.jsp,在其中输入用户名,密码,发送到登录验证页面loginCL.jsp,验证登录成功,在success.jsp页面显示成功提示、打印出相关信息,验证登录失败,返回login.jsp页面,在login.jsp页面提示“用户名不存在”或“用户密码错误”的提示信息。用户如果直接访问loginCL.jsp或success.jsp,均转向login.jsp页面。

注意:用request属性

1.新建文件login.jsp、loginCL.jsp、success.jsp

2.login.jsp文件代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>

  <head>

    <title>login.jsp页面</title>

  </head>

  <body>

    <form action="loginCL.jsp" method="post" name=form >

     <font size="5">登录界面</font><br>

     用户名:<input type="text" value=""name="username"><br>

     密    码:<input type="text"value="" name="password"><br>

     <input type="submit"value="提交"name="submit">

     <input type="reset"value="重置">   

    </form>

<%=(String)request.getAttribute("usertxt") %>

  </body>

</html>

 

3.loginCL.jsp文件代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>

  <head>

    <title>loginCL.jsp页面</title>

  </head>

  <body>

<%

String referer = request.getHeader("Referer");

if(referer==null||referer.trim().length()==0||

!referer.equals("http://localhost:8081/two/login.jsp")){

response.sendRedirect("login.jsp");

return;

}

request.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=utf-8");

String name=request.getParameter("username");

String password=request.getParameter("password");

//判断登陆界面的用户名和密码,根据输入的不同情况进行不同的处理

if(name.trim().equals("admin")&&password.trim().equals("1234"))

{

request.setAttribute("usertxt", "正常登录!!!");

request.getRequestDispatcher("success.jsp").forward(request, response);

}

else{

request.setAttribute("usertxt", "用户名或密码错误!!!");

request.getRequestDispatcher("login.jsp").forward(request, response);

 

}

%>

  </body>

</html>

 

4.success.jsp文件代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>

  <head>

    <title>success.jsp页面</title>

  </head>

  <body>

<%

String referer = request.getHeader("Referer");

if(referer==null||referer.trim().length()==0||

!referer.equals("http://localhost:8081/two/login.jsp")){

response.sendRedirect("login.jsp");

return;

}

request.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=utf-8");

%>  

<%=(String)request.getAttribute("usertxt") %>

  </body>

</html>

 

5.浏览器显示效果

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lmm0513/article/details/89209836

智能推荐

苹果电脑第一次用pygame创建主窗口卡死的解决方法_pycharm的pygame.display.set_mode很卡怎么办?-程序员宅基地

文章浏览阅读1.3k次,点赞4次,收藏2次。第一次使用pygame写游戏时,我创立窗口的时候遇到了这样的困难。首先给出我出现卡顿原因的代码:import pygamedef main(): screen = pygame.display.set_mode((350, 500), depth=32) background = pygame.image.load('/Users/chenyang0804/Desktop/屏幕快照 2020-08-17 下午8.54.21.png') pygame.display.set_ca_pycharm的pygame.display.set_mode很卡怎么办?

【Unity】Unity Editor中使输入框失去焦点_guiutility.keyboardcontrol-程序员宅基地

文章浏览阅读2.2k次。【Unity】Unity Editor中使输入框失去焦点Unity自定义编辑器窗口时,如果想让当前正在输入文本的输入框失去焦点,必须把焦点移动到另一个输入控件。如果用代码使当前输入框失去焦点的话,很简单,就一行代码:GUIUtility.keyboardControl = 0;..._guiutility.keyboardcontrol

Linux阅码场 - Linux内核月报(2020年06月)-程序员宅基地

文章浏览阅读1.4k次。关于Linux内核月报Linux阅码场Linux阅码场内核月报栏目,是汇总当月Linux内核社区最重要的一线开发动态,方便读者们更容易跟踪Linux内核的最前沿发展动向。限于篇幅,只会对..._memory tag

c++ pair make_pair_make_pair返回值-程序员宅基地

文章浏览阅读193次。pair 的用法std::pair主要的作用是将两个数据组合成一个数据,两个数据可以是同一类型或者不同类型。C++标准程序库中凡是“必须返回两个值”的函数, 也都会利用pair对象。class pair可以将两个值视为一个单元。容器类别map和multimap就是使用pairs来管理其健值/实值(key/value)的成对元素。pair被定义为struct,因此可直接存取pair中的个别值..._make_pair返回值

微信公众号开发工具汇总-程序员宅基地

文章浏览阅读8.4k次。前面写了篇入坑指南,介绍了下开发微信公众号的基本流程。最近又捣鼓了一阵,发现这开发工具的选择对于提高开发效率真是有莫大的帮助,所谓“只要工具选得好,月底奖金跑不了”。今天得空,笔者就给各位老哥列举几个绝对能派上用场的小工具,保证没毛病!微信公众平台技术文档这货实际上是必需品,没了它,您还真是寸步难行。官方文档包含了一个产品最直接也最全面的说明,在微信公众平台技术文档中,详细说明了微信公众号开发的概念_微信公众号开发工具

获得硬盘ID(序列号、机器码)的C++代码源码_硬盘id获取 c++-程序员宅基地

文章浏览阅读612次。获得硬盘的序列号(ID/机器码)的C++源码_硬盘id获取 c++

随便推点

最长上升子序列优化(贪心+二分)(超级详细的讲解)-程序员宅基地

文章浏览阅读2.6k次,点赞20次,收藏27次。详细讲解优化的原理,并给出通俗的证明和简单的代码帮助你彻底掌握优化过程!!_最长上升子序列优化

AttributeError: module ‘tensorflow.compat.v1’ has no attribute ‘contrib’_attributeerror: module 'tensorflow' has no attribu-程序员宅基地

文章浏览阅读3.5k次,点赞4次,收藏22次。项目场景:提示:这里简述项目相关背景:AttributeError: module ‘tensorflow.compat.v1’ has no attribute ‘contrib’问题描述提示:这里描述项目中遇到的问题:公司的是3080显卡,跑tensorflow1.x的代码,最终的环境时tensorflow2.6的,运行会报这个错原因分析:提示:这里填写问题的分析:原因是tensorflow1.x的contrib包被整合进了三个包里(据这位大佬说:https://blog.csd_attributeerror: module 'tensorflow' has no attribute 'contrib

学成在线(一)项目介绍_学成在线项目怎么写成简历-程序员宅基地

文章浏览阅读3.4w次,点赞12次,收藏99次。CMS接口开发1 项目的功能构架1.1 项目背景1.2 功能模块1.3 项目原型2 项目的技术架构2.1技术架构2.2 技术栈2.3 开发步骤3 CMS需求分析3.1 什么是CMS3.2 静态门户工程搭建3.2.1 导入门户工程3.2.2 配置虚拟主机 在nginx中配置虚拟主机:3.2.3 SSI服务端包含技术3.3 CMS页面管理需求4 CMS服务端工程搭建注释也是必不可少的KaTeX数学公..._学成在线项目怎么写成简历

使用指针实现字符串拷贝_字符指针拷贝-程序员宅基地

文章浏览阅读488次。【代码】使用指针实现字符串拷贝。_字符指针拷贝

Qt自定义控件9:波浪进度条1_qt 波浪进度球-程序员宅基地

文章浏览阅读502次。Qt自定义控件8:波浪进度条1先看效果图:思路:利用QPaintPath画出封闭路径,填充颜色,圆弧使用正弦函数,根据横坐标递增,画出正弦函数线。关键代码:void WaterProgressBar1::paintEvent(QPaintEvent *event){ int width = this->width(); int height = this->h..._qt 波浪进度球

5G协议批量下载 python3_批量下载3gpp 协议-程序员宅基地

文章浏览阅读673次。最近需要3GPP的5G协议,手动一个一个下载比较麻烦,抽空用python3写了个下载程序,可以从3gpp的ftp服务器批量下载协议文件。3GPP协议下载地址:https://www.3gpp.org/ftp/Specs/archive/38_series/代码使用了线程池,可以多线程从3gpp下载协议。代码流程:1、首先从下载地址获取要下载的所有文件的 文件名、url、大小、日期、本地存储地址,写入ini文件2、读取ini文件中的信息,使用线程池进行文件下载#coding:utf-_批量下载3gpp 协议

推荐文章

热门文章

相关标签