package com.bjsxt.com;
import java.io.IOException;
import java.lang.reflect.Array;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 在该类中,一般会有下边的这么几个方法:
* init:在这个类被初始化的时候会被加载进内存,同时这个也是该类中第一个被启动的方法;
* destroy:在这个类中,当项目被关闭的时候,才会执行这个方法,与init相对应,destroy是这个类中的最后一个方法;
* service方法:是这类中的一个方法,当这个类被正常启动之后,每当前台发送一次请求,就会促成一次service方法的执行;
* doget方法:用户接收前端发送过来的get方式的请求,也就是说只有当前台使用get方法发送请求的时候,后台才会被唤起去接收这个请求,然后做出相应;
* dopost方法:用户接收前端发送过来的post方法的请求,也即是说只有前台使用post方法发送请求的时候,后天才会唤起dopost请求,去执行相应的方法和命令
* 当后台只有DOpost方法,前端却发送的是get请求,那么这种情况会报错;
* 同样,当前端使用post发送请求,后台却使用的是doget去接收,这种情况下也会发生报错
*
* @author administrator
*
*/
/**
* 在一个函数中,需要获取的数据有三类:
* 请求头数据
* 请求行数据
* 请求数据
* 1、获取请求头数据:
* req.getMethod();//获取请求方式
* req.getRequestURL();获取的是URL信息
* req.getRequestURI();获取的是URI信息
* req.getSchema();获取的是协议
* 2、获取请求行数据
* req.getHeader("键名");//返回指定的请求头信息
* req.getHeaderNames();//返回请求头的键名的枚举集合
* 3、获取用户数据
* req.getPareameter("键名")//返回指定的用户数据
* req.getParameterValues("键名") //返回同键不同值的的请求数据(多选),返回的数组
* req.getPatameterNames();//返回所有用户请求数据的枚举集合
* 注意:如果要获取的请求数据不存在,不会报错,返回null
* 注意:request对象由Tomcat服务器创建,并作为实参传递给处理请求的servlet的service方法
* @author administrator
*
*/
public class Test2 extends HttpServlet {
@Override
public void init() throws ServletException {
System.out.println("服务器进行初始化工作。");
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("Test2.service()");
resp.getWriter().write("this is my third servlet...");
//获取请求头信息
String method = req.getMethod();
System.out.println(method);
//获取请求行数据
StringBuffer requestURL = req.getRequestURL();
System.out.println(requestURL);
//获取请求URI
String requestURI = req.getRequestURI();
System.out.println(requestURI);
//获取协议
String scheme = req.getScheme();
System.out.println(scheme);
Enumeration headers = req.getHeaders("User-Agent");
System.out.println(headers);
Enumeration e = req.getHeaderNames();
System.out.println(e);
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
while(e.hasMoreElements()){
String name =(String)e.nextElement();
String header = req.getHeader(name);
System.out.println(name+":"+header);
}
/**
* 获取用户名和密码
*/
String parameter = req.getParameter("uname");
System.out.println("用户名:——>"+parameter);
String pwd = req.getParameter("pwd");
System.out.println(pwd);
String parameter2 = req.getParameter("fav");
System.out.println("爱好——>"+parameter2);
String [] fav = req.getParameterValues("fav");
for(int i=0;i<fav.length;i++){
System.out.println(fav[i]);
}
// super.service(arg0, arg1);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("服务器加载进了doget方法");
resp.getWriter().write("这里是doget方法");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("服务器加载进了dopost方法");
resp.getWriter().write("这里是dopost方法");
}
@Override
public void destroy() {
System.out.println("这里是销毁的方法。");
}
}