学习jsp篇:jsp简单实例之二登录
编程环境:IDEA,Tomcat,JavaEE
一、实例二登录
1、在自己建的工程下的web目录下建一个文件夹为login,在login中编写登录代码(其实就是和实例一同一个项目)

2、先建登录页面jsp文件login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录</title>
</head>
<body>
<form action="check.jsp" method="post">
用户名: <input type="text" name="uname" ><br/>
密码: <input type="password" name="upwd"><br/>
<input type="submit" value="登录"><br/>
</form>
</body>
</html>
校验check.jsp页面代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>校验登录</title>
</head>
<body>
<form>
<%
request.setCharacterEncoding("utf-8");
String name=request.getParameter("uname");
String password=request.getParameter("upwd");
if(name.equals("zz")&&password.equals("1111")){
//页面跳转方式一,重定向,数据会丢失
//response.sendRedirect("success.jsp");
//页面跳转方式二,请求转发,数据不会丢失
request.getRequestDispatcher("success.jsp").forward(request,response);
}else{
out.println("登录失败,用户名或者密码有误");
}
%>
</form>
</body>
</html>
登录成功页面success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
String name=request.getParameter("uname");
%>
成功登录
欢迎您: <br/>
<%=name%> <br/> </body>
</html>
3、运行结果



在check.jsp 中有两种跳转方式:(1)请求转发request.getRequestDispatcher(2)重定向response.sendRedirect("xxx.jsp")
在重定向中调用的是response类
4、response---内置对象,响应对象
常见方法:(1)void addCookie(Cookie cookie)服务端向客户端增加cookie对象(2)void sendRedirect(String location)throws IOException 重定向页面跳转(3)void setContextType(String type)设置服务端响应编码
5、请求转发request.getRequestDispatcher和重定向response.sendRedirect("xxx.jsp")的区别(这个知识挺重要的,我觉得)
(1)相同点:都是改变客户端的请求方向
(2)不同点:
| 请求转发 | 重定向 | |
| 地址栏是否改变 | 不改变 |
改变 |
| 是否保存第一次请求时数据 | 保留 | 不保留 |
| 请求次数 | 1 | 2 |
| 跳转发生位置 | 服务端 | 客户端(发出二次请求) |
对于这些不同点,我画个图来解释(请忽略我的渣画技。。)

根据上述图可以看到请求转发是服务端内部将响应客户端的对象指针改变了,而重定向是响应告诉客户端他应该向别的对象请求,然后客户端再一次请求。
补充一点:是否保存第一次请求时数据中数据指的是客户端第一次请求时保存在request中的请求信息,请求转发时,仍然会携带该信息,重定向则不会。
学习jsp篇:jsp简单实例之二登录的更多相关文章
- (Hibernate进阶)Hibernate搭建开发环境+简单实例(二)
hibernate是非常典型的持久层框架,持久化的思想是非常值得我们学习和研究的.这篇博文,我们主要以实例的形式学习Hibernate,不深究Hibernate的思想和原理,否则,一味追求,苦学思想和 ...
- 自动化测试基础篇--Selenium简单的163邮箱登录实例
摘自https://www.cnblogs.com/sanzangTst/p/7472556.html 前面几篇内容一直讲解Selenium Python的基本使用方法.学习了什么是selenium: ...
- 【SSH进阶之路】Hibernate搭建开发环境+简单实例(二)
Hibernate是很典型的持久层框架,持久化的思想是很值得我们学习和研究的.这篇博文,我们主要以实例的形式学习Hibernate,不深究Hibernate的思想和原理,否则,一味追求,苦学思想和原理 ...
- IoC容器Autofac正篇之简单实例
先上一段代码. namespace ConsoleApplication3 { class Program { static void Main(string[] args) { ContainerB ...
- IoC容器Autofac正篇之简单实例(四)
先上一段代码. namespace ConsoleApplication3 { class Program { static void Main(string[] args) { ContainerB ...
- JAVA遇见HTML——JSP篇:JSP内置对象(上)
JSP九大内置对象 JSP内置对象是Web容器创建的一组对象,不使用new关键就可以使用的内置对象. <% int[] value={60,70,80}; for(int i:value){ o ...
- SharePoint 2010 BCS - 简单实例(二)外部列表创建
博客地址 http://blog.csdn.net/foxdave 接上篇 由于图片稍多篇幅过长影响阅读,所以分段来写. 添加完数据源之后,我们需要为我们要放到SharePoint上的数据表定义操作, ...
- backBone.js之Model篇 (1) 简单实例
“Model是js应用的核心,包括基础的数据以及围绕着这些数据的逻辑:数据转换.验证.属性计算和访问控制”. 一.初始化方法 我们先来看一个demo,initialize,这是一个初始化方法,但是写这 ...
- vue mock(模拟后台数据) +axios 简单实例(二)
需装上axios,build文件夹中webpack.dev.conf.js文件添加上vue mock配置的东东, 如,继(一) //组件<template> <div> &l ...
随机推荐
- MySQL百分比显示和显示前百分之几的方法
前几天一个朋友让我帮忙写的,随手记录一下,感觉难度也不大,就是写的时候遇到一些问题.优化方便做得不太好.有好的优化方法欢迎分享!(数据库在文章结尾) 要求 1)查询所有时间内,所有产品销售金额占比,按 ...
- 编写Java程序,通过接口摸拟麦当劳食物生产过程,接口设计
返回本章节 返回作业目录 需求说明: 通过接口摸拟麦当劳食物生产过程 实现思路: 通过接口摸拟麦当劳食物生产过程的实现思路: 创建接口食物(Food),该接口需要被所有的食物类所实现.在该接口中定义g ...
- Eclipse启动SpringCloud微服务集群的方法
1.说明 下面这篇文章介绍了Eureka Server集群的启动方法, SpringCloud创建Eureka模块集群 是通过jar包启动时指定配置文件的方式实现的. 现在只有Eureka Serve ...
- 分别使用time 和 datetime模块记录当前时间
工作中经常混淆这两种方法 现记录一下 加深印象 代码如下: >>> import time>>> import datetime>>> ct1 = ...
- MySQL_事务(四大特性)
本文转载:https://www.cnblogs.com/kismetv/p/10331633.html 事务是MySQL等关系型数据库区别于NoSQL的重要方面,是保证数据一致性的重要手段.本文将首 ...
- Go语言实战爬虫项目
Go语言爬虫框架之Colly和Goquery Python爬虫框架比较多有requests.urllib, pyquery,scrapy等,解析库有BeautifulSoup.pyquery.Scra ...
- 论文翻译:2021_AEC IN A NETSHELL: ON TARGET AND TOPOLOGY CHOICES FOR FCRN ACOUSTIC ECHO CANCELLATION
论文地址:https://ieeexploreieee.53yu.com/abstract/document/9414715 Netshell 中的 AEC:关于 FCRN 声学回声消除的目标和拓扑选 ...
- 机器学习&恶意代码静态检测
目录 分析工具 方法概述 二进制灰度图 字节(熵)直方图 字符串信息 ELF结构信息 源码分析与OPcode FCG references: 分析工具 readelf elfparser ninja ...
- pycharm创建脚本头文件模板
代码头文件信息可以包括:python 解析器的位置.字符集.作者信息.创建脚本时间等,pycharm工具创建头部信息模板操作步骤如下: 设置头文件:文件-->设置-->编辑器-->文 ...
- 一文读懂HarmonyOS服务卡片怎么换肤
作者:zhenyu,华为软件开发工程师 关注HarmonyOS的小伙伴肯定对服务卡片已经很熟悉了.服务卡片(也简称为"卡片")是FA(FeatureAbility,元服务)的一种界 ...