javaWEB总结(6):ServletRequest
1.首先看ServletRequest的API
javax.servlet
Interface ServletRequest
- All Known Subinterfaces:
- HttpServletRequest
- All Known Implementing Classes:
- HttpServletRequestWrapper,ServletRequestWrapper
Method Summary | |
---|---|
Object |
getAttribute(String name) Returns the value of the named attribute as an Object , or if no attribute of the given name exists. |
Enumeration |
getAttributeNames() Returns an Enumeration containing the names of the attributes available to this request. |
String |
getCharacterEncoding() Returns the name of the character encoding used in the body of this request. |
int |
getContentLength() Returns the length, in bytes, of the request body and made available by the input stream, or -1 if the length is not known. |
String |
getContentType() Returns the MIME type of the body of the request, or null if the type is not known. |
ServletInputStream |
getInputStream() Retrieves the body of the request as binary data using a ServletInputStream . |
String |
getLocalAddr() Returns the Internet Protocol (IP) address of the interface on which the request was received. |
Locale |
getLocale() Returns the preferred Locale that the client will accept content in, based on the Accept-Language header. |
Enumeration |
getLocales() Returns an Enumeration of Locale objects indicating, in decreasing order starting with the preferred locale, the locales that are acceptable to the client based on the Accept-Language header. |
String |
getLocalName() Returns the host name of the Internet Protocol (IP) interface on which the request was received. |
int |
getLocalPort() Returns the Internet Protocol (IP) port number of the interface on which the request was received. |
String |
getParameter(String name) Returns the value of a request parameter as a String , or if the parameter does not exist. |
Map |
getParameterMap() Returns a java.util.Map of the parameters of this request. |
Enumeration |
getParameterNames() Returns an Enumeration of String objects containing the names of the parameters contained in this request. |
String[] |
getParameterValues(String name) Returns an array of String objects containing all of the values the given request parameter has, ornull if the parameter does not exist. |
String |
getProtocol() Returns the name and version of the protocol the request uses in the formprotocol/majorVersion.minorVersion, for example, HTTP/1.1. |
BufferedReader |
getReader() Retrieves the body of the request as character data using a BufferedReader . |
String |
getRealPath(String path) Deprecated. As of Version 2.1 of the Java Servlet API, use ServletContext.getRealPath(java.lang.String) instead. |
String |
getRemoteAddr() Returns the Internet Protocol (IP) address of the client or last proxy that sent the request. |
String |
getRemoteHost() Returns the fully qualified name of the client or the last proxy that sent the request. |
int |
getRemotePort() Returns the Internet Protocol (IP) source port of the client or last proxy that sent the request. |
RequestDispatcher |
getRequestDispatcher(String path) Returns a RequestDispatcher object that acts as a wrapper for the resource located at the given path. |
String |
getScheme() Returns the name of the scheme used to make this request, for example, , https , or ftp . |
String |
getServerName() Returns the host name of the server to which the request was sent. |
int |
getServerPort() Returns the port number to which the request was sent. |
boolean |
isSecure() Returns a boolean indicating whether this request was made using a secure channel, such as HTTPS. |
void |
removeAttribute(String name) Removes an attribute from this request. |
void |
setAttribute(String name,Object o) Stores an attribute in this request. |
void |
setCharacterEncoding(String env) Overrides the name of the character encoding used in the body of this request. |
ServletRequest是一个接口,有一个子接口类和两个实现类,表格中显示的方法,由于本人精力和知识有限,只测试其中的几个方法:
(1).getParameter(String name)
:根据参数名,获取参数值;
(2).getParameterNames()
:获取所有参数名组成的 Enumeration
;
(3).getParameterValues(String name)
:根据参数名,获取参数值组成的String[]
,用于多参数值;
(4).getParameterMap()
:获取参数名和参数值的String[]组成的键值对,即返回的类型为
Map(
String
,String[]
),用于多参数值。
2.项目目录结构
3.LoginServlet
package com.dao.chu; import java.io.IOException;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set; import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse; public class LoginServlet implements Servlet{ @Override
public void destroy() {
// TODO Auto-generated method stub } @Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
} @Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
} @Override
public void init(ServletConfig arg0) throws ServletException {
System.out.println("init..."); } @Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse)
throws ServletException, IOException { System.out.println("打印ServletRequest的值: "+servletRequest);
System.out.println("打印servletResponse的值: "+servletRequest); //获取表单中的内容
String userValue = servletRequest.getParameter("user");
String passwordValue = servletRequest.getParameter("password"); System.out.println("【getParameter】userValue is :"+userValue);
System.out.println("【getParameter】passwordValue is :"+passwordValue); //获取提交的所有参数名组成的Enumeration
Enumeration<String> enNmes = servletRequest.getParameterNames(); //循环
while (enNmes.hasMoreElements()) { //获取参数名打印
String enName = (String) enNmes.nextElement();
System.out.println("【getParameterNames】enName is :"+enName); //获取参数值打印
String enValue = servletRequest.getParameter(enName);
System.out.println("【getParameterNames】enValue is: "+enValue); } //获取参数名和参数值的String[]组成的键值对
Map<String, String[]> map = servletRequest.getParameterMap(); Set<Entry<String,String[]>> entrySet = map.entrySet(); for (Entry<String, String[]> entry : entrySet) { System.out.println("【getParameterMap】getNamebyMap is: "+entry.getKey()); System.out.println("【getParameterMap】getValuebyMap is:"+Arrays.asList(entry.getValue()));
} //获取多个请求方式的方法
String[] interests = servletRequest.getParameterValues("interesting"); for (String interest : interests) { System.out.println("【getParameterValues】interest is :"+interest);
} } }
4.web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>javaWeb_06</display-name>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list> <servlet>
<servlet-name>loginServlet</servlet-name>
<servlet-class>com.dao.chu.LoginServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>loginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping> </web-app>
5.login.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>登陆页</title>
</head>
<body> <!-- 相对路径写action="LoginServlet"; -->
<!-- 绝对路径写action="/javaWeb_06/LoginServlet"; --> <form action="LoginServlet" method="post">
用户名:<input type="text" name="user">
<br><br>
密码 <input type="password" name="password">
<br><br> <!-- 一组信息 -->
interesting:
<input type="checkbox" name="interesting" value="reading">Reading
<input type="checkbox" name="interesting" value="writing">Writing
<input type="checkbox" name="interesting" value="football">Football
<input type="checkbox" name="interesting" value="game">Game
<input type="checkbox" name="interesting" value="shopping">Shopping
<input type="checkbox" name="interesting" value="party">Party
<input type="checkbox" name="interesting" value="TV">TV <br><br> <input type="submit" value="提交">
</form> </body>
</html>
6.输入用户名:admim 密码:123,选择前三个复选框
7.查看打印信息
8.接下来根据打印信息和下面这张图进行总结
9.总结:
(1).在打印信息中,我们把ServletRequest的值和servletResponse的值都打印了出来,从关键词"apache.catalina"中可以看出:这两个接口的实现类都是由tomcat服务器给予实现的,并在服务器调用service时传入。
(2).请求信息经过tomcat服务器映射到我们的LoginServlet,在
调用service方法时候,参数封装在了LoginServlet
中,ServletRequest
有一些接收参数的方法。这样loginServlet可以写一些和数据库服务器连接的方法,就可以和数据库里面的值进行比对。而ServletRequest
(3).当参数值为一个的时候,大多数我们根据需要应用
getParameter
方法或getParameterNames
,而多参数值的时候,根据需要应用getParameterValues
或getParameterMap
方法。
附:
API下载地址:点击打开链接
本次项目代码:点击打开链接
参考视频:点击打开链接
javaWEB总结(6):ServletRequest的更多相关文章
- javaWEB中的ServletRequest,ServletResponse的使用,及简化Servlet方法
首先说一下ServletRequest,ServletResponse类的使用方法: public void service(ServletRequest request, ServletRespon ...
- JavaWeb学习之Path总结、ServletContext、ServletResponse、ServletRequest(3)
1.Path总结 1.java项目 1 File file = new File(""); file.getAbsolutePath(); * 使用java命令,输出路径是,当前j ...
- JavaWeb——Servlet
一.基本概念 Servlet是运行在Web服务器上的小程序,通过http协议和客户端进行交互. 这里的客户端一般为浏览器,发送http请求(request)给服务器(如Tomcat).服务器接收到请求 ...
- JavaWeb——Listener
一.基本概念 JavaWeb里面的listener是通过观察者设计模式进行实现的.对于观察者模式,这里不做过多介绍,大概讲一下什么意思. 观察者模式又叫发布订阅模式或者监听器模式.在该模式中有两个角色 ...
- javaweb学习笔记之servlet01
一.Servlet概述 A servlet is a small Java program that runs within a Web server. Servlets receive and re ...
- [Java面试三]JavaWeb基础知识总结.
1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供外界访问的Web资源分为: • 静 ...
- [javaweb]Java过滤器与包装设计模式的实用案例.
在filter中可以得到代表用户请求和响应的request.response对象,因此在编程中可以使用Decorator(装饰器)模式对request.response对象进行包装,再把包装对象传给目 ...
- 传智播客JavaWeb听课总结
一. JavaWeb基础 第一天: 1.Eclipse详解: (1).Bad versionnumber in .class file:编译器版本和运行(JRE)版本不符合.高的JRE版本兼容低版本的 ...
- JavaWeb学习总结-04 Servlet 学习和使用
一 Servlet 1 Servlet概念 Servlet时运行在服务器端的Java程序. Servlet的框架核心是 javax.servlet.Servlet 接口. 所有自定义的Servlet都 ...
随机推荐
- PQ分区魔术师v9.0 中文版
软件名称: pqmagic 硬盘分区大师9.0中文绿色版 软件大小:5.80MB 软件语言:简体中文 软件类别:磁盘工具 软件授权:免费软件 更新时间:2013-10-082013-10-08 09: ...
- java学习开题
- mac版Tomcat安装
挺好安装的,就是网上资料有的错了. 1.下载Tomcat 网址:http://tomcat.apache.org,解压在~/Downloads 目录下,我的版本是apache-tomcat-7.0.7 ...
- appium元素定位及操作
1.测试用例准备 数据准备 前提条件 操作步骤 预期结果 2.TestNG 用例组织:@Test @Before Class 结果验证:Assert 数据驱动:@DataProvide ...
- 在Ubuntu 14.04安装 Let’s Encrypt并配置ssl
1.下载安装 Let's Encrypt客户端 cd /usr/local/sbin sudo wget https://dl.eff.org/certbot-auto 2.添加执行权限 sudo c ...
- mac下搭建cordova开发环境
Apache Cordova 原名叫PhoneGap.是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台.PhoneGap最初由Nitobi开发,2011年 ...
- iOS通过URL Scheme启动app(收集了常用的app的URL Scheme)
URL Scheme不仅可以打开其他的app,当然你也能为自己的app设置URL Scheme 1.如何设置给app设置URL Scheme 添加URL types字段数组 设置URL identif ...
- java中三大修饰符
一.static 1.属性:类变量 定义在类以内,方法以外,全类有效,全类公共一个属性 类变量与创建对象无关,有默认值0 使用方式 类名.类变量 System.out.println(); ...
- Java 反射 分析类和对象
Java 反射 分析类和对象 @author ixenos 摘要:优化程序启动策略.在运行时使用反射分析类的结构和对象 优化程序启动策略 在启动时,包含main方法的类被加载.它会加载所有它需要的类. ...
- Entity Framework删除数据
注:本文为个人学习摘录,原文地址:http://blog.csdn.net/itmaxin/article/details/47659817 最近在学EF,目前了解到删除操作有三种方式, 第一,官方推 ...