一、HttpServletRequest对象介绍
- 客户端对于Servlet的每次访问请求,Servlet容器(如Tomcat)都会创建一个封装HTTP请求的对象和一个代表HTTP响应的对象,当调用Servlet的doGet或doPost方法时,这两个对象会作为参数被传递进去
- HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,所发出的HTTP请求消息被封装在此对象之中,通过这个对象提供的方法,即可获得客户端发出的请求消息
- HTTP GET请求示例
- HTTP POST请求示例
2.读取请求行和请求消息头
获取(部分)请求行和请求头信息示例,Tomcat自带示例
3.读取请求参数
HttpServletRequest对象
最基本的应用是
获取
浏览器传递给Web服务器的
请求参数信息
3.1GET和POST方式下的请求参数
请求参数:
- GET方式下,URL地址后的附加信息
- POST方式下,HTTP请求消息中的实体内容部分
- GET方式传递参数
- POST方式传递参数
读取请求参数的方法
- 通过HttpServletRequest对象的以下方法读取GET/POST方式下传递的参数
- getParameter(), 单值读取,该方法用于返回某个指定名称的请求参数的值
- public String getParameter(String name);
- getParameterValues(), 多值读取,该方法用于返回某个指定名称的所有参数的值
- public String[] getParameterValues(String name);
- getParameter(), 单值读取,该方法用于返回某个指定名称的请求参数的值
表单中action属性说明
action属性值指定,提交表单时输入的数据提交至服务器端程序的地址,可以用相对路径或绝对路径
- 绝对路径形式: http://localhost:8080/RequestDecmo/servlet/Servlet1
- 相对路径形式:
- 以 "/" 开头,此处的 "/" 代表站点根目录,非Web应用根目录,即http://localhost:8080/之后
- 不以 "/" 开头,相对于当前URL,
如,下图中指定表单提交至 <%= request.getContextPath()%>/courses/
saveBatch4
地址写法
- 配置文件,web.xml配置Servlet访问路径,以 "/" 开头,此处代表当前应用根目录
- 页面文件,相对地若以 "/" 开头,此处代表当前站点根目录
二、HttpServletResponse对象介绍
HttpServletResponse对象代表服务器端对客户端的响应,用于封装HTTP响应消息
- HTTP响应示例
- 输出响应正文的方法
- getWriter()
- 返回一个(文本)字符输出流对象
- 专用于输出内容为文本字符的网页文档
- 该方法返回一个PrintWriter类型的字符输出流对象,专用于输出内容为文本字符的网页文档
- 响应正文不是直接发送到客户端,而是首先写入Servlet容器提供的一个输出缓冲区,然后由Servlet容器返回给Web服务器程序,再经由Web服务器程序发送给客户端
- PrintWriter对象的flush方法用来清理缓冲,close方法用来关闭输出流对象,释放资源。程序中也可以不显示调用,由Servlet容器自动关闭,并清理缓冲
- 如: PrintWriter out = response.getWriter();
- out.print();
- out.println();
- out.write();
- out.writeln();
- getOutPutStream()
- 返回一个字节输出流对象
- 如果要输出二进制格式的响应正文,应该使用该方法
- getWriter()