通过HttpServletRequest获取表单提交的数据:

  前端页面:

 <html>
<head>
<title>register</title>
<meta name="keywords" content="keyword1,keyword2,keyword3">
<meta name="description" content="this is my page">
<meta name="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<form action="/prj-servlet-12/user/save" method="post">
用户名
<input type="text" name="username">
<br>
密码
<input type="password" name="password">
<br>
性别
男<input type="radio" name="sex" value="m">
女<input type="radio" name="sex" value="f">
<br>
爱好
<input type="checkbox" name="interest" value="sport">运动
<input type="checkbox" name="interest" value="music">音乐
<input type="checkbox" name="interest" value="dance">跳舞
<input type="checkbox" name="interest" value="study">学习
<input type="checkbox" name="interest" value="read">阅读
<br>
学历
<select name="grade">
<option value="gz">高中</option>
<option value="dz">大专</option>
<option value="db">大本</option>
</select>
<br>
简历
<textarea rows="10" cols="60" name="introduce"></textarea>
<br>
<input type="submit" value="注册">
<input type="reset" value="重置"> </form>
</body>
</html>

  前端页面的name和value对应request对象中Map集合的name和value

  Servlet程序:

 package com.bjpowernode.javaweb.servlet;

 import java.io.IOException;
import java.util.Enumeration;
import java.util.Map;
import java.util.Set; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class SaveUserServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获取用户信息,表单提交,这些数据被自动封装到request对象中了
//从request中获取这些信息
String username = request.getParameter("username");
String password = request.getParameter("password");
String sex = request.getParameter("sex");
String interest = request.getParameter("interest");
String grade = request.getParameter("grade");
String introduce = request.getParameter("introduce"); System.out.println(username);
System.out.println(password);
System.out.println(sex);
System.out.println(interest);
System.out.println(grade);
System.out.println(introduce); //这个方法适合取checkbox中的数据
String[] interests = request.getParameterValues("interest");
for(String in : interests){
System.out.println(in);
} //获取整个参数Map集合
@SuppressWarnings("unchecked")
Map<String,String[]> parameterMap = request.getParameterMap();
Set<String> names = parameterMap.keySet();
for(String name : names){
String[] values = parameterMap.get(name);
System.out.print(name + "=");
for(String value : values){
System.out.println(value + " ");
}
System.out.println();
} //获取Map集合所有的key
@SuppressWarnings("unchecked")
Enumeration<String> keys = request.getParameterNames();
while(keys.hasMoreElements()){
String key = keys.nextElement();
System.out.println(key);
} } }

具体介绍HttpServletRequest接口的常用方法:

  

  代码示例:

 package com.bjpowernode.javaweb.servlet;

 import java.io.IOException;
import java.io.PrintWriter; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class TestRequestServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter(); //获取上下文路径【webapp的根路径】
String contextPath = request.getContextPath();
out.print("context path = " + contextPath + "<br>"); //获取浏览器的请求方式
String method = request.getMethod();
out.print("method = " + method + "<br>"); //获取请求的URI、URL、Servlet Path
String uri = request.getRequestURI();
out.print("uri = " + uri + "<br>"); String url = request.getRequestURL().toString();
out.print("url = " + url + "<br>"); String servletPath = request.getServletPath();
out.print("servletPath = " + servletPath + "<br>"); //获取客户端IP地址
String clietIp = request.getRemoteAddr();
System.out.println("client ip = " + clietIp);
}
}

  代码示例(包含请求转发,在两个Servlet中传递数据,关于请求转发,参考此链接):

 package com.bjpowernode.javaweb.servlet;

 import java.io.IOException;

 import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.bjpowernode.javaweb.entity.User; public class AServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//创建User对象
User user = new User();
user.setUsercode("111");
user.setUsername("zhangsan"); //将User对象存储到request范围中
request.setAttribute("userObj", user); //从request范围中取出数据
//Object obj = request.getAttribute("userObj");
//response.getWriter().print(obj); //跳转
//执行完AServlet之后,跳转到BServlet执行,将AServlet执行和BServlet执行放到同一个请求当中
//必须使用转发技术
//forward[转发]
//1、获取请求转发器对象[以下转发器指向了BServlet]
// RequestDispatcher dispatcher = request.getRequestDispatcher("/b"); //2、调用请求转发器的forward方法即可完成转发
// dispatcher.forward(request, response); //转发[转发是一次请求]
request.getRequestDispatcher("/b").forward(request, response); }
}
 package com.bjpowernode.javaweb.servlet;

 import java.io.IOException;

 import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class BServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { Object obj = request.getAttribute("userObj");
response.getWriter().print(obj);
}
}

  还剩最后三个方法没介绍,setCharacterEncoding、getCookie、getSession将在后面分别介绍。

Servlet笔记7--HttpServletRequest介绍的更多相关文章

  1. javaweb:关于HttpServletRequest介绍 (转)

    出处:https://www.cnblogs.com/xdp-gacl/p/3798347.html 一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的 ...

  2. 《The Linux Command Line》 读书笔记01 基本命令介绍

    <The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...

  3. HTML+CSS学习笔记(1) - Html介绍

    HTML+CSS学习笔记(1) - Html介绍 1.代码初体验,制作我的第一个网页 <!DOCTYPE HTML> <html> <head> <meta ...

  4. Typescript 学习笔记一:介绍、安装、编译

    前言 整理了一下 Typescript 的学习笔记,方便后期遗忘某个知识点的时候,快速回忆. 为了避免凌乱,用 gitbook 结合 marketdown 整理的. github地址是:ts-gitb ...

  5. cocos2d-x入门学习笔记,主要介绍cocos2d-x的基本结构,并且介绍引擎自带的示例

    cocos2d-x 3.0 制作横版格斗游戏 http://philon.cn/post/cocos2d-x-3.0-zhi-zuo-heng-ban-ge-dou-you-xi http://blo ...

  6. InterSystems Ensemble学习笔记(一) Ensemble介绍及安装

    系列目录 InterSystems Ensemble学习笔记(一) Ensemble介绍及安装InterSystems Ensemble学习笔记(二) Ensemble创建镜像, 实现自动故障转移 一 ...

  7. Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍

    原文:Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本 ...

  8. Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解

    Servlet基础(一) Servlet基础和关键的API介绍 Servlet简介 Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中. Servlet容器负责Servl ...

  9. jsp、servlet笔记

    1.init    初始化Jsp&Servlet方法   destroy 销毁Jsp&Servlet之前的方法   service 对用户请求生成响应的方法2.Jsp文件必须在jsp服 ...

随机推荐

  1. 数学口袋精灵app(小学生四则运算app)开发需求

    数学口袋精灵APP,摒除了传统乏味无趣学习数学四则运算的模式,采用游戏的形式,让小朋友在游戏中学习,培养了小朋友对数学的兴趣,让小朋友在游戏中运算能力得到充分提升.快乐学习,成长没烦恼! 项目名字:“ ...

  2. Believe

    虽然上了一周的软件工程,可是还是不造软件工程是干什么的.听了一节gitlab,似懂非懂,感觉很高大上的样子,自己折腾了许久,还是没有进展,真心无奈. 真是件考验耐性的事~不过,so what?会成功的 ...

  3. springmvc关于redisCluster的使用及配置

    首先附上maven仓库jar包的下载地址:https://repo.spring.io/webapp/#/artifacts/browse/tree/General/libs-release-loca ...

  4. wia驱动扫描仪

    .net wia驱动扫描仪 通过各种途径,将当前比较流行的驱动扫描仪封装成了一个简单实用的class,调用扫描仪时,只需要重新创建个对象即可,代码如下: using System;using Syst ...

  5. Alpha冲刺——day5

    Alpha冲刺--day5 作业链接 Alpha冲刺随笔集 github地址 团队成员 031602636 许舒玲(队长) 031602237 吴杰婷 031602220 雷博浩 031602634 ...

  6. final 140字评论II

    1.约跑app: 从性能上讲,着重修改了其他组找出的bug,性能上有了很大的提高,增强了实用性. 从功能上讲,该app可以增加用户之间的互动性,有较多的客户群,适合人群不限于青少年和成年人. 从UI上 ...

  7. Linux kernel 发布 5.0-rc1 版本

    Linux kernel 要发布 5.0 了.. 跟原因是 linus 认为 4.21的小版本号太多了... 邮件内容如下: https://lore.kernel.org/lkml/20190107 ...

  8. win10 Jmeter下载安装与使用教程

    1.下载 2.安装 下载完成后解压文件(不需要安装) 之后需要配置jmeter环境变量 1)新增新增JMETER_HOME系统变量 2)编辑CLASSPATH变量,加上%JMETER_HOME%\li ...

  9. c# 新建文本文件、遍历读取文本、删除文本行

    如果该物理路径没有该文本则创建一个新文本 if (!File.Exists(@"C:\db.txt")){FileStream fs = new FileStream(@" ...

  10. 【BZOJ1413】[ZJOI2009]取石子游戏(博弈论,动态规划)

    [BZOJ1413][ZJOI2009]取石子游戏(博弈论,动态规划) 题面 BZOJ 洛谷 题解 神仙题.jpg.\(ZJOI\)是真的神仙. 发现\(SG\)函数等东西完全找不到规律,无奈只能翻题 ...