浏览器访问Servlet过程:
HttpServletResponse对象:
继承自ServletResponse接口,专门用来封装HTTP响应消息,其中定义了向客户端发送响应状态码、响应消息头、响应消息体的方法。
发送状态码相关的方法有:
1、setStatus(int status)方法
该方法用于设置HTTP响应消息的状态码,并生成响应状态行。
(注意,Web服务器默认状态码为200)
2、sendError(int sc)方法
该方法用于发送表示错误信息的状态码,例如,404状态码表示找不到客户端请求的资源。在response对象中,提供了两个重载的sendError(int sc)方法,具体如下。
public void sendError(int code) throws java.io.IOException
public void sendError(int code, String message) throws java.io.IOException
1
2
在上面重载的两个方法中,第1个方法只是发送错误信息的状态码,而第2个方法除了发送状态码外,还可以增加一条用于提示说明的文本信息,该信息将出现在发送给客户端的正文内容中。
发送响应消息头相关的方法:
发送响应消息体的方法:
1、getOutputStream()方法
该方法所获取的字节输出流对象为ServletOutputStream类型。由于ServletOutputStream是OutputStream的子类,它可以直接输出字节数组中的二进制数据。因此,要想输出二进制格式的响应正文,就需要使用getOutputStream()方法。
2、getWriter()方法
该方法所获取的字符输出流对象为PrintWriter类型。由于PrintWriter类型的对象可以直接输出字符文本内容,因此,要想输出内容全为字符文本的网页文档,需要使用getWriter()方法。
package cn.itcast.servlet;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class servlet02 {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
ServletConfig config=this.getServletconfig();
String name=config.getServletName();
System.out.println(“servlet name:”+name);
Enumeration<String> er =config.getInitParameterNames();
while(er.hasMoreElements()) {
String name1=er.nextElement();
String valule2=config.getInitParameter(name1);
System.out.println("全局初始化参数名称:"+name1);
System.out.println("全局初始化参数的值:"+valule2);
}
System.out.println("————————+——————————————");
ServletContext context=this.getServletContext();
Enumeration<String> er1=context.getInitParameterNames();
while(er.hasMoreElements()) {
String name1=er1.nextElement();
String valule2=context.getInitParameter(name1);
System.out.println("全局初始化参数名称:"+name1);
System.out.println("全局初始化参数的值:"+valule2);
}
}
private ServletConfig getServletconfig() {
// TODO Auto-generated method stub
return null;
}
private ServletContext getServletContext() {
// TODO Auto-generated method stub
return null;
}
}
HttpServletRequest对象:
继承自ServletRequest接口,专门用来封装HTTP请求消息。其中定义了获取请求行、请求头和请求消息体的相关方法。
获取请求行的相关方法:
获取请求消息头的方法:
package cn.itcast.servlet;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class servlet03 extends httpservlet{
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
ServletContext context=this.getServletContext();
Enumeration er =context.getInitParameterNames();
while(er.hasMoreElements()) {
String name1=er.nextElement();
String valule2=context.getInitParameter(name1);
System.out.println("全局初始化参数名称:"+name1);
System.out.println("全局初始化参数的值:"+valule2);
}
}
protected void dopost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
doGet(request,response);
}
}