ServletConfig
封装了Servlet的配置信息,并且可以获取ServletContext对象
1.配置初始化参数;
2.获取初始化参数:
- getInitParameter(String name):获取指定参数名的初始化参数
- getINitParameterNames():获取参数名组成的Enumeration对象
- getServletName():获取Servlet的配置名称
ServletContext
(1)、可以有ServletConfig获取
(2)、该对象代表当前web应用,可以从中获取当前web对象的各个信息:
- 获取当前web应用的初始化参数:可以为所有Servlet所获取,而Servlet的初始化参数只有自己的Servlet可以获取:getInitParameter(String
name)、getInitParameterNames()
String user=servletConfig.getInitParameter("user");
Enumeration<String> names=servletConfig.getInitParameterNames();
while(names.hasMoreElements()){
String name=names.nextElement();
System.out.println("name:"+name);
}
- 获取当前web应用的某一个文件在服务器上的绝对路径:getRealPath(String path);
String realPath=servletContext.getRealPath("/img/XX.jpg");
- 获取当前web应用的名称:getContextPath();
String contextPath=servletContext.getContextPath();
- 获取当前web应用的某一个文件对应的输入流:getResourceAsStream(String path)
try {
ClassLoader classloader=getClass().getClassLoader();
InputStream is=classloader.getResourceAsStream("jdbc.properties");
System.out.println("1."+is);
InputStream is2=servletContext.getResourceAsStream("/WEB-INF/classes/jdbc.properties");
System.out.println("2."+is2);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- 和attribute相关的方法
在Servlet中获取请求信息
Servlet的service(ServletRequest request,ServletResponse response)方法用于应答请求
- ServletRequest :封装了请求信息,可以从中获取任何请求信息
获取请求参数:
(1)、String getParameter(String name):根据请求参数的名字返回参数值,若请求参数有多个值该方法只能获取到第一个提交的值
String user=request.getParameter("user");
String password=request.getParameter("password");
(2)、Map getParameterMap():返回请求参数的键值对
Map<String,String[]> map=request.getParameterMap();
for(Map.Entry<String, String[]> entry:map.entrySet()){
System.out.println(entry.getKey()+":"+Arrays.asList(entry.getValue()));
}
(3)、Enumeration getParameterNames()
Enumeration<String> names=request.getParameterNames();
while(names.hasMoreElements()){
String name=names.nextElement();
String val=request.getParameter(name);
System.out.println(name+":"+val);
}
(4)、String[] getParameterValues(String name):根据请求参数的名字返回请求参数对应的Enumeration对象
String[] interestings=request.getParameterValues("interesting");
for(String interest: interestings){
System.out.println("-->"+interest);
}
其它常用方法:
- 获取请求的uri:getRequestURI()(需要强转成HttpServletRequest)
HttpServletRequest httpServletRequest=(HttpServletRequest) request;
String requestURI=httpServletRequest.getRequestURI();
- 获取请求方式:getMethod()
String method=httpServletRequest.getMethod();
- 获取请求的查询字符串:getQueryString()
String queryString=httpServletRequest.getQueryString();
- 获取请求的Servlet的映射路径:getServletPath()
String servletPath= httpServletRequest.getServletPath();
- 和attribute相关的几个方法
HttpServletRequext:是ServletRequest的子接口,针对于HTTP请求所定义,里面包含了大量获取HTTP请求相关的方法
2. ServletResponse :封装了响应信息,如果想给用户什么响应,具体可以使用该接口的方法实现。
常用方法:
- getWrite():返回一个PrintWriter对象,调用该对象的print()方法,将把print()中的参数直接打印到客户的浏览器上。
PrintWriter out=response.getWriter();
out.print("Hello..");
- response.setContentType(String type):设置响应的内容类型(子方法为HttpServletResponse中定义,需要进行强转)。
response.setContentType("application/msword");
//setContentType参数可通过Servlet容器的web.xml进行查找
- sendRedierct(String location):请求的重定向
ServletRequest 和ServletResponse 这两个接口都是由服务器来实现的,并由服务器调用service方法时传入。