java Web-servlet技术-servlet基础与doGet()方法doPost()方法辨析

2023-11-04

servlet工作原理

创建一个简单的servlet项目,实现验证用户登录

1.创建一个Dynamic Web Project,取名为myservlet

2.创建一个myservlet的package,在package中创建一个名字为LoginServlet的servlet文件,默认勾选doget()和dopost()

3.重写doget()方法

package myservlet;

import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class LoginServlet
 */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginServlet() {
        super();
        // TODO Auto-generated constructor stub
    }



	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//1.设置页面请求与响应的编码格式
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");
		//2.利用request对象调用getParameter方法获取表单传送来的用户名和密码
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		//3.利用response对象调用getWriter方法获得输出流,再利用该输出流的println()向页面传送html标记
		response.getWriter().println("<html>");
		response.getWriter().println("<head>");
		response.getWriter().println("<title>登录信息</title>");
		response.getWriter().println("</head>");
		response.getWriter().println("<body>");
		response.getWriter().println("欢迎【"+ username +"】用户登录成功!");
		response.getWriter().println("</body>");
		response.getWriter().println("</html>");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

4.配置web.xml文件,加入红色框内的代码

5.创建名为servletdemo的jsp页面 

6.运行 

 

下面我们就doGet()和doPost()做一下比较

1.首先当上述项目不变,将其中jsp页面中form标签中的method属性值为post时,在运行后的浏览器url中不显示其用户名和密码。

2.现在我们来重写一下LoginServlet.java中的doPost()方法,运行后会发现,当method="get"时,servlet运行doGet()方法,当method="post"时,servlet运行doPost()方法。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java Web-servlet技术-servlet基础与doGet()方法doPost()方法辨析 的相关文章

  • Open3D(C++) 模型滤波——均值滤波

    目录 一 概述 1 算法原理 2 主要函数 3 算法源码 二 代码实现 三 结果展示 一 概述 1 算法原理 Open3d包含许多网格滤波的算法 最简单的是均值滤波器 该滤波器能用以网格去噪 一个顶点 v i v i v

随机推荐

  • Oracel的多表查询

    笛卡尔积 说到多表查询 我们离不开的就是笛卡尔积的概念 他的作用就是将所有数据无脑的叠加在一起出现了很多没用的数据 他的特点是 笛卡尔积的行数 A表的行数 B表的行数 笛卡尔积的列数 A表额列数 A表的列数 笛卡尔积的数据集合有一些是无效的
  • [ShaderGraph]12.水晶效果

    边缘发光ShaderGraph节点图 内发光ShaderGraph节点图 透明水晶效果ShaderGraph节点图 效果图 节点解析 边缘光的效果不涉及新节点 自发光的涉及到的新节点是One Minus 透视效果涉及的新节点是View Di
  • 深入了解Python 变量作用域

    更多编程教程请到 菜鸟教程 https www piaodoo com 友情链接 好看站 http www nrso net 高州阳光论坛https www hnthzk com 特点 python的作用域是静态的 在源代码中变量名被赋值的
  • python编写知乎爬虫实践

    爬虫的基本流程 网络爬虫的基本工作流程如下 首先选取一部分精心挑选的种子URL 将种子URL加入任务队列 从待抓取URL队列中取出待抓取的URL 解析DNS 并且得到主机的ip 并将URL对应的网页下载下来 存储进已下载网页库中 此外 将这
  • 前端-elemen-ui中el-cascader组件(自定义)

    关于饿了么儿 的cascader组件后端返回的数据与组件里的参数不同如何处理 后端返回的数据 element ui中Cascader 级联选择器组件结构为 参数不一样 修改方法
  • pytest自动化测试框架tep环境变量、fixtures、用例三者之间的关系

    tep是一款测试工具 在pytest测试框架基础上集成了第三方包 提供项目脚手架 帮助以写Python代码方式 快速实现自动化项目落地 在tep项目中 自动化测试用例都是放到tests目录下的 每个 py文件相互独立 没有依赖 1个文件即1
  • 执行shell脚本出现“let:not found”错误以及解决办法

    问题描述 在写一个脚本循环时候 出现 let not found 这是因为在ubuntu默认是指向bin dash解释器的 dash是阉割版的bash 其功能远没有bash强大和丰富 并且dash不支持let和i 等功能 解决办法 打开一个
  • 消息队列MQ-面试题

    目录 1 什么是消息队列 2 为什么要使用消息队列 1 解耦 2 异步处理 3 削峰 3 使用消息队列带来的一些问题 4 JMS两种消息模型 5 消息队列由哪些角色组成 6 常见消息中间件比较 7 如何保证消息队列是高可用的 RocketM
  • vue开发过程中node和sass互相对应的版本

    点击查看官网node sass和node对应的版本 1 点击查看稳定版链接 2 点击查看拓展版链接 1 检查node版本 2 删除node modules 3 保留原始的package json文件 4 安装node sass 5 安装sa
  • 二维码生成+解码

    在线二维码解码器 二维码安全检测工具 如下
  • Apache Struts2漏洞复现之s2-005漏洞复现

    0x01 声明 仅供学习参考使用 请勿用作违法用途 否则后果自负 0x02 简介 Apache Struts 2是一个用于开发Java EE网络应用程序的开放源代码网页应用程序架构 它利用并延伸了Java ServletAPI 鼓励开发者采
  • Kafka零拷贝

    Kafka除了具备消息队列MQ的特性和使用场景外 它还有一个重要用途 就是做存储层 用kafka做存储层 为什么呢 一大堆可以做数据存储的 MySQL MongoDB HDFS 因为kafka数据是持久化磁盘的 还速度快 还可靠 支持分布式
  • 头文件中的ifndef/define/endif的作用

    防止该头文件被重复引用 标识的命名规则一般是头文件名全大写 前后加下划线 并把文件名中的 也变成下划线 如 stdio h define STDIO H 例子 Define CRTIMP ifndef CRTIMP ifdef DLL de
  • jdbc操作Date类型时的比较

    有些oracle数据库查出日期时得到的结果是不一样的 select from table t where t attentionTime to date 2015 09 15 yyyy mm dd 这样的查询语句在一个数据库有时是可以查到有
  • Javascript中函数的形参和函数内局部变量同名的问题

    前言上次牛客网做到这样一个题 非常有意思 陷阱非常多 当时觉得搞明白了 现在再看到 又糊涂了 发现了新的点 看一下 var foo n 1 function foo console log foo n foo n 3 var foo n 2
  • SpringBoot系列 logback-spring日志配置使用记录以及解决依赖包冲突问题

    SpringBoot推荐使用logback spring xml SpringBoot官方推荐使用logback spring xml作为logback框架的自定义日志配置文件 例如 使用logback spring xml而不是logba
  • go 进阶 三方库之 EasJson 与标准库json

    目录 一 Go 标准库 json 二 EasJson 一 Go 标准库 json Go 标准库中提供了内置的 JSON 编码和解码功能 可以用于序列化和反序列化 JSON 数据 import encoding json fmt type P
  • idea点击跳转至.class文件解决方案

    在使用Idea时 点击一些发布的包资源文件时 会跳转到 class文件中而不是正确的源码文件 原因是我们被优先定位到Maven依赖下 我们可以通过设置文件资源来控制跳转 解决方案 进入 class文件后 顶端会有一个显示条 两个选项 Dow
  • 存个档,好不容易解出来的SQL题(取得销售量排名前10的品类里面,每个品类卖的最好的前三个商品及销量(中国式排名))

    题目 取得销售量排名前10的品类里面 每个品类卖的最好的前三个商品及销量 中国式排名 1 获取每个品类内每个商品的销售量排名 SELECT ub item category ub item id COUNT ub item category
  • java Web-servlet技术-servlet基础与doGet()方法doPost()方法辨析

    servlet工作原理 创建一个简单的servlet项目 实现验证用户登录 1 创建一个Dynamic Web Project 取名为myservlet 2 创建一个myservlet的package 在package中创建一个名字为Log