通过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. 第四次Scrum meeting

    第四次Scrum meeting 会议内容: 沟通方面:与学霸在线组.学霸手机客户端组进行沟通,了解现阶段各个小组的进度,并针对接口结构方面进行调整 前后端:我们完全可以是不需要界面的,但是为了用户的 ...

  2. 四则运算安卓版ver.mk2

    做了一点微小的变动....非常微小...不过美观点了就是...那就是----加背景! 变更后的部分代码: <LinearLayout xmlns:android="http://sch ...

  3. python matploblib学习笔记

    import matplotlib.pyplot as pltimport numpy as np # matplotlib画图注释中文需要设置from matplotlib.font_manager ...

  4. KindEditor:Ajax提交表单时获取不到HTML内容

    当用Ajax提交表单时,KindEditor的内容获取不到,HTML数据获取不了 原因:当ajax提交时,KindEdito的HTML数据还没有同步到表单中来,那怎么去获取HTML数据呢? ----- ...

  5. svn 创建主干 分支版本

    转载  https://www.cnblogs.com/dongzhiquan/p/5222018.html SVN分支与合并 一. 分支与合并的概念 二. SVN分支的意义 三. 如何创建分支与合并 ...

  6. 基于Air800+Arduino+ESP8266的混合物联网开发

    流程图如下:

  7. Docker(一)-Docker介绍

    什么就Docker? Docker是一个开源项目, 诞生于2013年初,最初是dotCloud公司内部的一个业余项目.它基于Google公司推出的Go语言实现.项目后来加入了Linux基金会,遵从了A ...

  8. Git使用:安装,使用及常用命令整理

    对于程序猿而言,git是最常接触的工具之一,因此需要熟练快速掌握其技巧. git安装: windwos:  [原创]Windows平台下Git的安装与配置 Ubuntu:git与github在ubun ...

  9. BeanFactory 简介以及它 和FactoryBean的区别(阿里面试)

    BeanFacotry是spring中比较原始的Factory.如XMLBeanFactory就是一种典型的BeanFactory.原始的BeanFactory无法支持spring的许多插件,如AOP ...

  10. jquery 绑定文本即时查询功能

    bindFilterFunc: function () {             if ("\v" == "v") { // IE only          ...