servlet技术--使用注解模拟用户登录实现页面跳转
1、servlet体系结构
servlet实质就是按servlet规范编写的Java类,可以处理web应用中的相关请求。

2、servlet技术特点
1、功能强大
- 2、可移植性
- 3、性能高效
- 4、安全性高
- 5、可扩展
3、servlet和jsp的区别
1、角色不同
- 2、编程方法不同
- 3、servlet需要编译后运行
- 4、速度不同
4、servlet开发
(使用注解开发、简单啊、那个配置的还有修改配置文件、烦的一批。不过也好弄、没有注解方便、哈哈哈)
注解开发只需要在java类的上面加上这句话@WebServlet("/My"),括号里的内容自己命名、反斜杠一定要带上。前端怎样找到这个类就要用到这个括号里的内容。例如用from表单提交数据、这样写: <form action="My" method="post">
代码结构(使用的idea开发工具、maven项目)

前端三个页面
主页index
<%--
Created by IntelliJ IDEA.
User: 静小文
Date: 2021/12/19
Time: 22:40
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<form action="My" method="post">
姓名:<input type="text" name="username"><br>
密码:<input type="text" name="password"><br>
<button type="submit">提交</button>
</form>
</body>
</html>
登录成功页面success.jsp
<%--
Created by IntelliJ IDEA.
User: 静小文
Date: 2021/12/19
Time: 22:57
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>成功</title>
</head>
<body>
登录成功!!!
<a href="index.jsp">首页</a>
</body>
</html>
登录失败页面error.jsp
<%--
Created by IntelliJ IDEA.
User: 静小文
Date: 2021/12/19
Time: 22:58
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>错误页面</title>
</head>
<body>
登录失败!!!
<a href="index.jsp">首页</a>
</body>
</html>
servlet
package com.zheng;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/My")
public class MyServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置请求的编码,防止中文乱码
request.setCharacterEncoding("UTF-8");
String username = request.getParameter("username");//获取用户名
String password = request.getParameter("password");//获取用户名
if ("admin".equals(username) && "123".equals(password)) {
//模拟数据库
RequestDispatcher requestDispatcher = request.getRequestDispatcher("success.jsp");//跳转登录成功页面
requestDispatcher.forward(request, response);
} else {
RequestDispatcher requestDispatcher = request.getRequestDispatcher("error.jsp");//跳转登录成功页面
requestDispatcher.forward(request, response);
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
注意:通过doget方式提交、参数会在url地址栏中显示
测试
用户名和密码正确的情况


用户名和密码错误的情况


提示:如果IDEA中没有servlet选项,则在pom中添加以下依赖
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
servlet技术--使用注解模拟用户登录实现页面跳转的更多相关文章
- 通过配置http拦截器,来进行ajax请求验证用户登录的页面跳转
在.NET中验证用户是否登录或者是否过期,若需要登录时则将请求转向至登录页面. 这个流程在进行页面请求时是没问题的,能正确进行页面跳转. 然而在使用xmlhttprequest时,或者jq的getJs ...
- xpath技术解析xml以及案例模拟用户登录效果
问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!!! xpath就在此情况下产生了--主要是用于快速获取所需的[节点对象]. 在dom4j中如何使用xPath技术 1) ...
- jdbc封装模拟用户登录
dao层 接口 package com.qu.dao; public interface ILoginDAO { /** * 模拟用户登录 * 验证用户名 密码是否正确 * select * from ...
- 模拟用户登录,内含验证码验证和request等操作
模拟用户登录,内含验证码验证和jsp等操作 1.案例需求: 1. 访问带有验证码的登录页面login.jsp 2. 用户输入用户名,密码以及验证码. * 如果用户名和密码输入有误,跳转登录页面,提示: ...
- 运用String类实现一个模拟用户登录程序
package Test; import java.util.Scanner; // 模拟用户登录程序 // 思路: // 1.用两个String类分别接收用户名和密码 // 2.判断输入的用户名和密 ...
- java.net.URL 模拟用户登录网页并维持session
java.net.URL 模拟用户登录网页并维持session 半成品,并非完全有用 import java.io.BufferedReader; import java.io.InputStream ...
- python 初学习 模拟用户登录
#!/usr/bin/env python#coding:utf-8''' 2017年8月19日 模拟用户登录,userfile 文件保存字典 用户名,和密码 sorryname 文件保存字典 登录过 ...
- python3.0 模拟用户登录,三次错误锁定
# -*- coding:utf-8 -*- #需求模拟用户登录,超过三次错误锁定不允许登陆 count = 0 #realname passwd Real_Username = &quo ...
- scrapy模拟用户登录
scrapy框架编写模拟用户登录的三种方式: 方式一:携带cookie登录,携带cookie一般请求的url为登录后的页面,获取cookie信息应在登录后的页面获取,cookie参数应转成字典形式 # ...
随机推荐
- RGBColor类定义
这个类主要是颜色操作,操作详细原理如下图: 类声明: class RGBColor { public: RGBColor(); ~RGBColor(); RGBColor(ldouble a); RG ...
- DS队列----银行单队列多窗口模拟
题目描述 假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙.当有窗口空闲时,下一位顾客即去该窗口处理事务.当有多个窗口可选择时,假设顾客总是选择编号最小的窗口. 本 ...
- 它把RabbitMQ的复杂全屏蔽了,我朋友用它后被老板一夜提拔为.NET架构师
本文技术源自外企,并已在多个世界500强大型项目开发中运用. 本文适合有初/中级.NET知识的同学阅读.(支持.NET/.NET Framework/.NET Core) RabbitMQ作为一款主流 ...
- java学习第一天.day02
整数类型常量 整数类型的常量JVM默认使用 int 类型来存储 小数类型类型 小数类型的常量JVM默认使用 double 类型来存储 . ASCII表 A在码表的顺序是65,a在码表的顺序是97
- HDU4372 Count the Buildings (+题解:斯特林数)
题面 (笔者翻译) There are N buildings standing in a straight line in the City, numbered from 1 to N. The h ...
- Docker问题:"docker build" requires exactly 1 argument.
今天在搭建Docker私有仓库的时候.提示错误:"docker build" requires exactly 1 argument. 原因是因为(少了一个 '.' , '.' 代 ...
- OpenJudge1.5.17
20:球弹跳高度的计算 总时间限制: 1000ms 内存限制: 65536kB 描述 一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下. 编程计算气球在第10次落地时,共经过 ...
- SpringMVC 01: SpringMVC + 第一个SpringMVC项目
SpringMVC SpringMVC概述: 是基于MVC开发模式的框架,用来优化控制器 是Spring家族的一员,也具备IOC和AOP 什么是MVC: 它是一种开发模式,是模型视图控制器的简称,所有 ...
- KingbaseES OUT 类型参数过程与函数的调用方法
对于含有 out 类型参数的过程或者函数,只能通过块方式调用,这是因为,ksql 还不支持类似 Oracle 那样通过 var 定义变量. 一.带OUT的procedure 调用 创建过程: crea ...
- KingbaseES 自增列三种方式
KingbaseES中3种自增长类型sequence,serial,identity的区别: 对象 显示插入 显示插入后更新最大值 清空表后是否重置 是否跟事务一起回滚 多对象共享 支持重置 出现错误 ...