通过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. 20135202闫佳歆--week2 一个简单的时间片轮转多道程序内核代码及分析

    一个简单的时间片轮转多道程序内核代码及分析 所用代码为课程配套git库中下载得到的. 一.进程的启动 /*出自mymain.c*/ /* start process 0 by task[0] */ p ...

  2. Alpha版本总结

    Alpha版本总结 General Questions a)     What went well?  Why? 成功之处:界面设计简洁,功能吸引用户. 原因:铁道大学学生上自习不方便,没有固定的教室 ...

  3. Leetcode题库——48.旋转图像

    @author: ZZQ @software: PyCharm @file: rotate.py @time: 2018/11/16 15:41 要求:给定一个 n × n 的二维矩阵表示一个图像.将 ...

  4. 团队作业8——测试与发布(Beta阶段)目录

    团队作业8——测试与发布(Beta阶段) http://www.cnblogs.com/zy-96/p/8053097.html 团队作业8——测试与发布(Beta阶段)之展示博客 http://ww ...

  5. (转)广度优先搜索BFS和深度优先搜索DFS

    1. 广度优先搜索介绍 广度优先搜索算法(Breadth First Search),又称为"宽度优先搜索"或"横向优先搜索",简称BFS. 它的思想是:从图中 ...

  6. UART协议总结

    之前一直使用UART作为单片机之间以及和计算机的简单通信,但一直没有研究过该协议的内部原理.今天刚买了一个逻辑分析仪,于是使用该分析仪对UART数据进行分析,以便更好的理解UART协议原理. UART ...

  7. Jira 添加自定义字段

    打开添加自定义字段,并选择字段类型 填写名称,并创建 3.选择关联的界面,并更新

  8. code first 如何创建索引字段

    比较简单的办法: protected override void Seed(Context context) { CreateIndex(context, "ProductName" ...

  9. 【Mysql】根据时间去除重复数据

    SELECT a.project_id,a.user_id,a.app_version,a.src_system,a.channel,a.thedate FROM rpt_innoreport_luc ...

  10. Codeforces Round #485 Div. 1 vp记

    A:对每种商品多源bfs一下每个点到该商品的最近距离,对每个点sort一下取前s个即可. #include<iostream> #include<cstdio> #includ ...