ServletConfig对象
ServletContext对象
request对象
response对象
3.1 ServletConfig对象
常用方法:getServletConfig();
功能:getServletName(); //获取servlet的名称,也就是我们在web.xml中配置的servlet-name
getServletContext(); //获取ServletContext对象,该对象的作用看下面讲解
getInitParameter(String); //获取在servlet中初始化参数的值。这里注意与全局初始化参数的区分。这个获取的只是在该servlet下的初始化参数
getInitParameterNames(); //获取在Servlet中所有初始化参数的名字,也就是key值,可以通过key值,来找到各个初始化参数的value值。注意返回的是枚举类型
3.2. ServletContext对象
常用方法:getServletContext(); 、getServletConfig().getServletContext();
//这两种获取方式的区别就跟上面的解释一样,第一种是直接拿,在GenericServlet中已经帮我们用getServletConfig().getServletContext();拿到了ServletContext。我们只需要直接获取就行了,第二种就相当于我们自己在获取一遍,两种读是一样的。
功能:tomcat为每个web项目都创建一个ServletContext实例,tomcat在启动时创建,服务器关闭时销毁,在一个web项目中共享数据,管理web项目资源,为整个web配置公共信息等,通俗点讲,就是一个web项目,就存在一个ServletContext实例,每个Servlet读可以访问到它。
常用函数:
1. web项目中共享数据,getAttribute(String name)、setAttribute(String name, Object obj)、removeAttribute(String name)
* setAttribute(String name, Object obj) 在web项目范围内存放内容,以便让在web项目中所有的servlet读能访问到
* getAttribute(String name) 通过指定名称获得内容
* removeAttribute(String name) 通过指定名称移除内容
2.整个web项目初始化参数 //这个就是全局初始化参数,每个Servlet中都能获取到该初始化值
* getInitPatameter(String name) //通过指定名称获取初始化值
* getInitParameterNames() //获得枚举类型
3. getResourcePaths(java.lang.String path) 指定路径下的所有内容。
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletContext servletContext = this.getServletContext();
String username = "fei"; // 数据
servletContext.setAttribute("username",username);
}
}
public class GetServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletContext context = this.getServletContext();
String username = (String) context.getAttribute("username");
resp.setContentType("text/html");
resp.setCharacterEncoding("utf-8");
resp.getWriter().print("名字"+username);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
3.3 request对象
在Java Servlet API中,HttpServletRequest 对象代表客户端发送到服务器的请求。这个对象包含了所有与HTTP请求相关的信息,如请求参数、头信息、URL、HTTP方法等。 HttpServletRequest 对象由Servlet容器创建,并作为参数传递给Servlet的服务方法(如doGet, doPost等)。
- 请求行内容
- 请求头
String contentType = request.getHeader("Content-Type");
- 路径信息
上下文路径:getContextPath 返回Web应用的上下文路径。
String contextPath = request.getContextPath();
路径信息:getPathInfo 提供额外的路径信息(URL中,Servlet路径之后的部分)。
String pathInfo = request.getPathInfo();
- HTTP方法
可以通过 getMethod 方法获取客户端请求使用的HTTP方法,如GET、POST等。
String method = request.getMethod();
- 会话管理
HttpServletRequest 提供 getSession 方法来获取当前的 HttpSession 对象。如果当前请求没有会话,则可以创建一个新的会话。
HttpSession session = request.getSession();
HttpSession sessionWithNoNew = request.getSession(false); // 不创建新会话
3.4 response对象
在Java Servlet API中,HttpServletResponse对象是一个非常重要的组件,用于构建和发送Web服务器的响应给客户端(通常是Web浏览器)。这个对象提供了一系列方法,可以用来设置响应的内容类型、状态码、管理cookie、重定向和输出响应内容等。
- 设置响应状态
HttpServletResponse 提供了方法来设置HTTP响应的状态码。例如:
response.setStatus(HttpServletResponse.SC_OK); // 设置状态为200
- 写入响应体
要发送响应体,你可以使用 getWriter() 或 getOutputStream() 方法。这取决于你要发送的数据类型(文本或二进制):
PrintWriter out = response.getWriter();
out.println("<html><body><h1>Hello, World!</h1></body></html>");
或者,发送二进制数据(如图像文件):
ServletOutputStream out = response.getOutputStream();
out.write(myByteArray);
- 设置响应头
可以使用 setHeader 方法来设置HTTP头信息。
response.setContentType("text/html;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=\"filename.txt\"");
- 重定向
response.sendRedirect("http://www.example.com");
标签:web,String,对象,ServletContext,Servlet,name
From: https://www.cnblogs.com/hashifei/p/18131519