编程环境: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简单实例之二登录的更多相关文章

  1. (Hibernate进阶)Hibernate搭建开发环境+简单实例(二)

    hibernate是非常典型的持久层框架,持久化的思想是非常值得我们学习和研究的.这篇博文,我们主要以实例的形式学习Hibernate,不深究Hibernate的思想和原理,否则,一味追求,苦学思想和 ...

  2. 自动化测试基础篇--Selenium简单的163邮箱登录实例

    摘自https://www.cnblogs.com/sanzangTst/p/7472556.html 前面几篇内容一直讲解Selenium Python的基本使用方法.学习了什么是selenium: ...

  3. 【SSH进阶之路】Hibernate搭建开发环境+简单实例(二)

    Hibernate是很典型的持久层框架,持久化的思想是很值得我们学习和研究的.这篇博文,我们主要以实例的形式学习Hibernate,不深究Hibernate的思想和原理,否则,一味追求,苦学思想和原理 ...

  4. IoC容器Autofac正篇之简单实例

    先上一段代码. namespace ConsoleApplication3 { class Program { static void Main(string[] args) { ContainerB ...

  5. IoC容器Autofac正篇之简单实例(四)

    先上一段代码. namespace ConsoleApplication3 { class Program { static void Main(string[] args) { ContainerB ...

  6. JAVA遇见HTML——JSP篇:JSP内置对象(上)

    JSP九大内置对象 JSP内置对象是Web容器创建的一组对象,不使用new关键就可以使用的内置对象. <% int[] value={60,70,80}; for(int i:value){ o ...

  7. SharePoint 2010 BCS - 简单实例(二)外部列表创建

    博客地址 http://blog.csdn.net/foxdave 接上篇 由于图片稍多篇幅过长影响阅读,所以分段来写. 添加完数据源之后,我们需要为我们要放到SharePoint上的数据表定义操作, ...

  8. backBone.js之Model篇 (1) 简单实例

    “Model是js应用的核心,包括基础的数据以及围绕着这些数据的逻辑:数据转换.验证.属性计算和访问控制”. 一.初始化方法 我们先来看一个demo,initialize,这是一个初始化方法,但是写这 ...

  9. vue mock(模拟后台数据) +axios 简单实例(二)

    需装上axios,build文件夹中webpack.dev.conf.js文件添加上vue mock配置的东东,  如,继(一) //组件<template> <div> &l ...

随机推荐

  1. 基于Spring MVC + Spring + MyBatis的【学生信息管理系统】

    资源下载:https://download.csdn.net/download/weixin_44893902/45603211 练习点设计: 模糊查询.删除.新增 一.语言和环境 实现语言:JAVA ...

  2. 通过Rancher Desktop在桌面上运行K8s

    Rancher 发行的操作系统新选择:Rancher Desktop for Windows,它可以帮助你在Windows桌面上管理Kubernetes和容器.当然他当然会支持Linux,Mac的. ...

  3. PostgreSQL数据库安装Version10.5

    PostgreSQL数据库安装,基于版本10.5安装, 在Linux系统上使用*.gz二进制压缩包手动安装. 操作系统:Red Hat Enterprise Linux Server release ...

  4. TYPESCRIPT中文教程基础部分下----翻译自TS官方

    type 别名 我们已经使用过 object 和 联合的方式 直接声明类型.但是某个类型在使用多次的情况下就要用到别名了. 别名的语法就像是在定义一个具名的对象一样: type Point = { x ...

  5. 初识python:tkinter 实现 弹球小游戏(面向对象)

    使用蹩脚式面相对象,实现弹球小游戏(非面向对象实现,主要介绍tk基础用法). #!/user/bin env python # author:Simple-Sir # time:2020/8/7 10 ...

  6. spring boot + spring security +JWT令牌 +前后端分离--- 心得

    1.前言 观看这篇随笔需要有spring security基础. 心得: 1.生成token 的变化数据是用户名和权限拼接的字符串 ,其他的固定 2.生成的token是将登录通过的用户的权限拼接的字符 ...

  7. 新增访客数量MR统计之数据库准备

    关注公众号:分享电脑学习回复"百度云盘" 可以免费获取所有学习文档的代码(不定期更新)云盘目录说明:tools目录是安装包res 目录是每一个课件对应的代码和资源等doc 目录是一 ...

  8. SYCOJ27猴子选大王

    题目-猴子选大王 (shiyancang.cn) 一.出队顺序Description有M个人,其编号分别为1-M.这M个人按顺序排成一个圈.现在给定一个数N,从第一个人开始依次报数,数到N的人出列,然 ...

  9. SQL安全执行

    begin tran begin -----------执行SQL开始----------------- update Audioset Name =3 -----------执行SQL结束----- ...

  10. 使用VS Code的MySQL扩展管理数据库

    我将在本文告诉你如何用VS Code的扩展程序管理MySQL数据库,包括连接到MySQL.新建数据库和表.修改字段定义.简单的查询方法以及导入导出. 在许多情况下,我们需要随时查看数据库的记录来确保程 ...