HttpServletRequest对象
HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户的这些信息。
获取请求行信息的相关方法
当访问Servlet时,会在请求消息的请求行中,包含请求方法、请求资源名、请求路径等信息,为了获取这些信息,在HttpServletRequest接口中,定义了一系列用于获取请求行的方法。
获取请求头的相关方法
package cn.itcast.chapter04.request;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
-
Servlet implementation class RequestHead
*/
@WebServlet("/head")
public class RequestHead extends HttpServlet {
private static final long serialVersionUID = 1L;/**
-
@see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(“text/html;charset=utf-8”);
Enumeration er=request.getHeaderNames();while(er.hasMoreElements()) {
String name=er.nextElement();String value=request.getHeader(name); System.out.println("消息头:"+name+" : "+value);
}
}
/**
- @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
-
}
RequestDispatcher应用
RequestDispatcher对 象由Servlet容器来创建,封装一个由路径所标识的服务器资源。
获取请求参数
在实际开发中,经常获取用户提交的表单数据。为了方便获取表单数据中的请求参数,在HttpServletRequest接口的父类ServletRequest中,定义了一系列获取请求参数的方法:
列出了HttpServletRequest 获取请求参数的一系列方法。 其中,getParameter()方法用于获取某个指定的参数,而getParameterValues()方法用于获取多个同名的参数。
课堂示例:
package cn.itcast.chapter05.de;
public class Book {
private String id;
private String name;
public Book() {
}
public Book(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package cn.itcast.chapter05.de;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
public class BookDB {
private static Map<String,Book> map = new LinkedHashMap<String,Book>();
static{
map.put(“1”, new Book(“1”,“javaWeb”));
map.put(“2”, new Book(“2”,“jdbc入门”));
map.put(“3”, new Book(“3”,“java基础”));
map.put(“4”, new Book(“4”,“struts框架”));
map.put(“5”, new Book(“5”,“hibernate框架”));
}
//1.得到所有图书
public static Collection<Book> getAll(){
return map.values();
}
//2.根据map的key,也就是图书的id,得到某本图书
public static Book getBook(String id){
return map.get(id);
}
}
package cn.itcast.chapter05.de;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
-
Servlet implementation class CartServlet
*/
@WebServlet("/cart")
public class CartServlet extends HttpServlet {
private static final long serialVersionUID = 1L;/**
-
@see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(“text/html;charset=utf-8”);PrintWriter out=response.getWriter();
List cart=null;
HttpSession session=request.getSession(false);
boolean cartflag=true;
if(sessionnull) {
cartflag=false;
}else {
cart=(List) session.getAttribute(“cart”);
if(cartnull) {
cartflag=false;
}
}
if(!cartflag) {
out.print(“对不起,请前往购买图书”);
}else {
out.print(“购买图书如下:”+"
");
for(Book b:cart) {
out.print(“购买图书:”+b.getName()+"
");
}
}
}
/**
- @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
-
}
package cn.itcast.chapter05.de;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
-
Servlet implementation class ListBookServlet
*/
@WebServlet("/list")
public class ListBookServlet extends HttpServlet {
private static final long serialVersionUID = 1L;/**
-
@see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(“text/html;charset=utf-8”);Collection books=BookDB.getAll();
PrintWriter out=response.getWriter();
out.print(“本网站售卖的书籍如下:”);for(Book b:books) {
String name=b.getName();
String id=b.getId();
String url=“点击购买”;
out.print(“图书名称:”+name+" “+url+”
");
}
}
/**
- @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
-
}
package cn.itcast.chapter05.de;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
-
Servlet implementation class PucharseServlet
*/
@WebServlet("/servlet")
public class PucharseServlet extends HttpServlet {
private static final long serialVersionUID = 1L;/**
-
@see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(“text/html;charset=utf-8”);String id=request.getParameter(“id”);
if(id==null) {
response.sendRedirect("/chapter05/list");
return;
}Book book=BookDB.getBook(id);
HttpSession session=request.getSession();
List list=(List) session.getAttribute(“cart”);
if(list==null) {
list=new ArrayList();
session.setAttribute(“cart”, list);
}list.add(book);
Cookie cookie=new Cookie(“JESSIONID”,session.getId());
response.addCookie(cookie);
response.sendRedirect("/chapter05/cart");
}
/**
- @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
-
}
package cn.itcast.chapter05.re;
import java.io.IOException;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
-
Servlet implementation class example
*/
@WebServlet("/example")
public class example extends HttpServlet {
private static final long serialVersionUID = 1L;/**
-
@see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String time=String.format("%tF%<tT", new Date());
Cookie cookie=new Cookie(“lastAccess”,time);Cookie cookie2=new Cookie(“dashuju”,“123”);
response.addCookie(cookie);
response.addCookie(cookie2);
}
/**
- @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
-
}
package cn.itcast.chapter05.re;
import java.io.IOException;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
-
Servlet implementation class LastAcess
*/
@WebServlet("/acess")
public class LastAcess extends HttpServlet {
private static final long serialVersionUID = 1L;/**
-
@see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(“text/html;charset=utf-8”);
Cookie[] cookies=request.getCookies();String lasttime=null;
for(int i=0;cookies!=null && i<cookies.length;i++) {
String name=cookies[i].getName();
if(“lastAccess”.equals(name)) {
lasttime=cookies[i].getValue();
}
}
if(lasttime==null) {
response.getWriter().print(“你是第一次访问本网站”);
}else {
response.getWriter().print(“你上次访问本网站的时间是:”+lasttime);
}String time=String.format("%tF%<tT", new Date());
Cookie cookie=new Cookie(“lastAccess”,time);
response.addCookie(cookie);
}
/**
- @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
-
}