当前位置: 首页 > news >正文

简单的Servlet结合Jsp实现请求和响应以及对doGet和doPost的浅析

1、新建jsp,创建表单

<body>
<form action="/MyfirstWeb/login">

username:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>

<input type="submit" value="submit">&nbsp;&nbsp;&nbsp;
<input type="reset" value="reset">

</form>
</body>

此处表单的action属性是重点,指定表单的提交方向。/MyfirstWeb/login是在客户端输入的逻辑路径。

2、创建Servlet

public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
  {
    String username=req.getParameter("username");
    String password=req.getParameter("password");

    resp.setContentType("text/html");

    PrintWriter out=resp.getWriter();
    out.println("<html><head><title>LoginResult</title></head>");
    out.println("<body>username:"+username+"<br>");
    out.println("password:"+password+"</body></html>");
    out.flush();
  }

}

3、配置Servlet

<servlet>
<servlet-name>login</servlet-name>
<servlet-class>com.qcx.web.LoginServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>

总结:在客服端访问jsp,提交表单,通过配置文件xml找到Servlet,服务器实例化该Servlet,并执行其doGet方法。此外在表单属性中,可以设置提交方式为method=doPost。在Servlet类中做相应修改,即可实现doPost方式提交请求。doGet和doPost的区别在于:

1、从表现形式上看,用doGet会在地址栏显示请求参数,而doPost不会。

2、本质上,是因为这两种方式对请求的封装方式不同,doGet将参数作为请求url的一部分直接提交,而doPost将请求参数作为请求体的一部分提交。

在用浏览器提交文件时一定要使用doPost方式。

转载于:https://www.cnblogs.com/qcxdoit/p/6042088.html

相关文章:

  • 原生态纯JavaScript 100大技巧大收集---你值得拥有
  • TreeList
  • 【故障处理】IMP-00010错误 12C的dmp文件导入11G
  • 笔记:表单序列化 serialize()
  • 实时优化算法实现智能物流平台
  • hive 空值、NULL判断
  • H5中JavaScript常用代码片段
  • Qt之QAbstractItemView视图项拖拽(二)
  • mysql中使用 where 1=1和 0=1 的作用
  • 括号
  • ssh远程登录讲解
  • Linux系统备份与恢复
  • libcurl
  • Eureka的故事,专注能让你看到别人看不到的事情
  • 锤子科技官方首页的特效
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • 345-反转字符串中的元音字母
  • Angular数据绑定机制
  • ES6 学习笔记(一)let,const和解构赋值
  • iOS | NSProxy
  • Java|序列化异常StreamCorruptedException的解决方法
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • markdown编辑器简评
  • Twitter赢在开放,三年创造奇迹
  • Vue.js源码(2):初探List Rendering
  • webpack+react项目初体验——记录我的webpack环境配置
  • - 概述 - 《设计模式(极简c++版)》
  • 开源地图数据可视化库——mapnik
  • 扑朔迷离的属性和特性【彻底弄清】
  • 使用docker-compose进行多节点部署
  • 思考 CSS 架构
  • 学习JavaScript数据结构与算法 — 树
  • Java总结 - String - 这篇请使劲喷我
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​ubuntu下安装kvm虚拟机
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #数学建模# 线性规划问题的Matlab求解
  • $.ajax,axios,fetch三种ajax请求的区别
  • (07)Hive——窗口函数详解
  • (二)丶RabbitMQ的六大核心
  • (六)vue-router+UI组件库
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)人的集合论——移山之道
  • .Net CF下精确的计时器
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET连接数据库方式
  • .NET企业级应用架构设计系列之应用服务器
  • .NET文档生成工具ADB使用图文教程
  • .Net语言中的StringBuilder:入门到精通
  • .net中的Queue和Stack