大家好,又见面了,我是你们的朋友全栈君。
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.html
System.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 并且对其进行操作
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/134497.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...