总结:
request的比较重要的方法
request.getParameter
request.getAttribute
request.getSession.setAttribute/request.getSession.getAttribute
request.getCookies
request.getContextPath()获取工程名
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
表单提交方法对应doPost和doGet
一个是参数Parameter
一个是属性Attribute
String value = request.getParameter("username");
System.out.println(value);
//获取表单里的数据
request.setAttribute("data", "1");
String data = (String) request.getAttribute("data");
System.out.println(data);
//获取域里面的数据
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
转发request.getRequestDispatcher("/mesage.jsp").forward(request, response);
重定向response.sendDirect()
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
简单的方法
package cn.itcast.request;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RequestDemo1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println(request.getRequestURI());// /day06/servlet/requestDemo1
System.out.println(request.getRequestURL());// http://localhost:8080/day06/servlet/requestDemo1
//用在权限设置上
System.out.println(request.getQueryString());//
System.out.println(request.getRemoteAddr());//127.0.0.1得到客户端ip地址
System.out.println(request.getRemoteHost());//返回127.0.0.1,因为没有在DNS中注册
System.out.println(request.getRemotePort());//远程端口号49300
System.out.println(request.getMethod());//GET ,在表单里可为POST
}
}
获取请求头
package cn.itcast.request;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.util.Enumeration;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import cn.itcast.User;
public class RequestDemo2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获取参数
String value=request.getParameter("username");//parameter参数
System.out.println(value);
Enumeration e=request.getParameterNames ();
while(e.hasMoreElements()){
String name=(String) e.nextElement();
value=request.getParameter(name);
System.out.println(name+"="+value);
}
String value2[]=request.getParameterValues("username");
for(String v:value2){
System.out.println("u="+v);
}
Map<String,String[]> map=request.getParameterMap();
User user=new User();
try {
BeanUtils.populate(user, map);//用map集合填充bean//populate填充
} catch (Exception e1) {
e1.printStackTrace();
}
System.out.println(user);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req, resp);
}
//获取请求头相关数据
private void test1(HttpServletRequest request) {
String headValue=request.getHeader("Accept-Encoding");
Enumeration e=request.getHeaderNames();
while(e.hasMoreElements()){
String value=(String) e.nextElement();
System.out.println(value);
}
e=request.getHeaderNames();
while(e.hasMoreElements()){
String name=(String) e.nextElement();
String value=request.getHeader(name);
System.out.println("name="+name+",value="+value);
}
}
}
request.getParameter
package cn.itcast.request;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.util.Enumeration;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import cn.itcast.User;
public class RequestDemo3 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getParameter("username");
request.getParameter("password");
request.getParameter("gender");
request.getParameter("city");
String[] likes=request.getParameterValues("likes");
for(int i=0;likes!=null && i<likes.length;i++){
System.out.println(likes[i]);
}
request.getParameter("description");
request.getParameter("id");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req, resp);
}
}
学完方法就来解决乱码问题,中国人的悲哀
package cn.itcast.request;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.InvocationTargetException;
import java.util.Enumeration;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import cn.itcast.User;
public class RequestDemo4 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println(request.getCharacterEncoding());
//test3(request, response);
//System.out.println(username);
}
没人会去这么干
private void test3(HttpServletRequest request, HttpServletResponse response)
throws UnsupportedEncodingException, IOException {
request.setCharacterEncoding("UTF-8");
String username=request.getParameter("username");
response.setCharacterEncoding("gb2312");
response.setContentType("text/htm;charset=gb2312");
response.getWriter().write(username);
}
private void test2(HttpServletRequest request)
throws UnsupportedEncodingException {
//解决POST乱码
request.setCharacterEncoding("UTF-8");
String username=request.getParameter("username");
System.out.println(username);
}
private void test1(HttpServletRequest request)
throws UnsupportedEncodingException {
// 解决Get方式提交的乱码
String username2=request.getParameter("username2");
username2=new String(username2.getBytes("iso-8859-1"),"UTF-8");
System.out.println(username2);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req, resp);
}
}
转发(重要)
package cn.itcast.request;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.InvocationTargetException;
import java.util.Enumeration;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import cn.itcast.User;
public class RequestDemo5 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String message="aaaaaa";
request.setAttribute("data", message);
request.getRequestDispatcher("/mesage.jsp").forward(request, response);
//System.out.println(username);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req, resp);
}
}
include
package cn.itcast.request;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.InvocationTargetException;
import java.util.Enumeration;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import cn.itcast.User;
public class RequestDemo8 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//request.getRequestDispatcher("/public/head.jsp").include(request, response);
response.getOutputStream().write("kkkkkk".getBytes());
//response.getWriter().write("hahaha");
//request.getRequestDispatcher("/public/foot.jsp").include(request, response);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req, resp);
}
}
防盗链
referer是指当前网页
package cn.itcast.request;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.InvocationTargetException;
import java.util.Enumeration;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import cn.itcast.User;
public class RequestDemo9 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String referer=request.getHeader("referer");
if(referer==null && !referer.startsWith("http://localhost"))
{
response.sendRedirect("/day06/index.jsp");
return;
}
response.getOutputStream().write("高考成绩查询".getBytes());
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req, resp);
}
}