tHeader("User-Agent"));
System.out.println("查询所有信息");
Enumeration<String> hn = req.getHeaderNames();
while(hn.hasMoreElements()){
String str=hn.nextElement();
System.out.println(str+req.getHeader(str));
}
}
七.request对象_请求头_通过referer实现防盗链
1.什么是盗链?
通过其他网站访问本网站的一些资源
2.如何防止盗链?
思路
通过网页发送的请求eg.download.jsp
如果download.jsp中的请求,来源于盗链者服务器,我们就显示不可以下载;
如果download.jsp中的请求,来源于正规服务器,我们就显示可以下载;
实现
通过referer获取请求头信息
String header=request.getHeader(“referer”);
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String referer = req.getHeader("referer");
System.out.println(referer);
if(referer.startsWith("http://localhost:8080/zc/")||referer.startsWith("http://127.0.0.1:8080/zc/")){
System.out.println("正常连接");
}else{
System.out.println("盗链连接");
}
}
盗链主要通过标红的地方判断
八.request对象_获取请求体
接下来说的是无论是get提交还是post提交,即无论请求体中有没有数据,都是可以使用的
1).public String getParameter(String key):获取某个键的值。
2).public String[] getParameterValues(String key):获取一个键的多个值(复选框、多选下拉列表)
3).public Map<String,String[]> getParameterMap();获取所有的键值对,并封装到一个Map中.
4).public void setCharacterEncoding(String charsetName):设置request的解码方式,如果参数中有中文,
需要使用:"UTF-8"。
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取请求体信息
System.out.println("获取请求体信息");
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println("username:"+username);
System.out.println("password:"+password);
System.out.println("-----------------------------------------------");
//当一个name对应多个值时,例如复选框,下拉列表,使用getParameterValues
String[] pv = req.getParameterValues("hobby");
for (String s : pv) {
System.out.println(s);
}
System.out.println("-----------------------------------------------");
//getParameterMap,获取所有的键值对,并封装到一个对象中
Map<String, String[]> map = req.getParameterMap();
Set<String> strings = map.keySet();
for (String string : strings) {
System.out.println(string+" : "+map.get(string));
}
}
九.request对象_BeanUtils工具类的使用
1.什么是"BeanUtils":它是一个第三方的软件包。
作用:自动解析客户端的请求,并根据一个Map,自动封装JavaBean。
2..使用步骤:
1).将BeanUtils所需jar包复制到lib目录下,并关联到模块中。
2).使用BeanUtils工具包:
1. 案例代码
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
User user=new User();
//使用工具类
try {
BeanUtils.populate(user,req.getParameterMap());
} catch (IllegalAccessException