2018年10月27日15:45:51于易动
申请对象:
类型:HttpServletRequest的:
请求对象:封装了请求头信息,请求体信息等
.1:特点:类型:HttpServletRequest
2:生命周期:
诞生:客户端浏览器每次发出请求,都会创建一个响应对象。
销毁:服务方法执行完毕就会销毁
.3:请求对象的作用:
a:作为域对象使用
.b:能够获得请求头信息
.c:获得其他的信息的API方法
.d:获得请求参数:
e:请求转发和请求包含:
作用:
- a:作为域对象的使用:( 本质上是地图结构,存值和取值用)
domain:map结构:存值和取值,移除掉等。
域范围:在当前的请求请求链当中有效(没死亡的话就有效)
.setAttribute(String attName,Object attValue);
API方法:
存属性:的setAttribute(“attName”,“attValue”); 键值对作为一个有对象的属性。
取值:getAttribute(“attName”); 取出来的值类型一定是对象类型:
如果指定的属性名称不存在,将会获得一个null。
移除:removeAttribute(“attName”);
获得所有的属性的名称:
getAttributeNames(); 返回的是一个枚举类型
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.yidongxueyuan.domain.User;/** 演示 request 对象 的域方法: */
public class AServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");User user = new User(10001,"陈哥");//存值:
// request.setAttribute("username", "晨哥");
// request.setAttribute("pasword", "321547");//存放在域对象当中: request对象: request.setAttribute("user", user);//取值: User req_user= (User)request.getAttribute("user");System.out.println(req_user);//// 移除: // 获得所有的属性的名称: }}
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.yidongxueyuan.domain.User;/** 获得request 域对象当中的属性“*/
public class BServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//获得域对象当中的属性: User user= (User)request.getAttribute("user");System.out.println(user);// null : 原因: 这个request对象是新创建的request对象。, 这个对象没有任何的属性。 }}
- .B:能够获得请求头信息:
getHeader( refer)
返回的是请求来源的那个页面,refer : 指的是;
作用:
1 防盗链, 防止直接从浏览器访问。
2 统计 广告的投放效果
import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/** 获得request对象的请求头信息: */
public class CServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//获得主机: http://localhost:8080/String header = request.getHeader("host");System.out.println(header);//refer 头: String header2 = request.getHeader("Referer");// http://localhost:8080/javaEE-07/html/01-form.htmlSystem.out.println(header2);//作用: // 防盗链: if(header2 == null){//这说明是通过浏览器的地址栏直接访问: 二没有进行登录: response.sendRedirect("/javaEE-07/html/login.html");}//request.getHeader("user-agent")//能够获得浏览器的版本信息和操作系统的信息。 // 统计广告的投放的效果: // baidu // 培训机构 // 搜狗 // 培训机构: }}
getDateHeader(java.lang.String name)返回的类型是一个long类型。一定是毫秒值:
返回指定请求头的值作为long值表示Date对象
.getHeader(java.lang.String name)
以String形式返回指定请求标题的值。
枚举<java.lang.String> getHeaderNames()
返回此请求包含的所有标头名称的枚举。
枚举<java.lang.String> getHeaders(java.lang.String name)返回一个头对应多个值的情况:类型是枚举类型。
返回指定请求标头的所有值,作为String对象的枚举
.getIntHeader(java.lang.String name)
以int形式返回指定请求标头的值。
- C:请求对象获得其他的API方法:
例子: http:// localhost:8080 / javaEE-07 / html / 01-form.html?username = lisi&age = 21
URL:统一资源定位符: 定位
URI:统一描述符:描述了访问的具体的资源:javaEE-07 / html / 01-form.html
http:协议:
https:
jdbc : 数据库
mailTo :邮件协议:
ftp : 文件传输协议:
soap :简单的对象访问协议:
ip:localhost ===“127.0.0.1回环地址,测试网卡正确:
常见端口:
- 8080:tomcat
- 521:oracle
- 3306:mysql
- redis
javaEE-07:项目名称:
/html/01-form.html:访问的资源:
username = lisi&age = 21:
query部分:URL 后面追加的参数
import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/** request对象 获得其他的API方法”* 和URL相关的API方法: * */
public class DServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String url= request.getRequestURL().toString();//String uri =request.getRequestURI();// /javaEE-07/servlet/DServlet//协议: String http = request.getScheme();//ip地址: String ip = request.getServerName();//端口号: int port = request.getServerPort();//获得项目名称: String contextPath = request.getContextPath();// /javaEE-07//获得访问的url: String servletPath = request.getServletPath();//获得query部分:String queryString = request.getQueryString();System.out.println(url);System.out.println(http+"://"+ip+":"+port+contextPath+servletPath+"?"+queryString);System.out.println("==========");System.out.println(contextPath+servletPath);System.out.println(uri);}}
获取IP 并且对其进行操作