servlet常用对象
HttpServletRequest对象
作为作用域对象
一个请求服务器会new一个request对象。属于同一个请求的所有servlet/jsp共享该对象。
Request记录的是库的请求信息,如:用户名、密码等
setAttribute(“a”,”AAA”) | 设置属性 |
---|---|
getAttribute(“a”) | 取得属性 |
removeAttribute(“a”) | 删除属性 |
getAttributeNames() | 返回枚举,对所有属性遍历处理 |
request的Attribute是key/value格式的,所以通常用setAttribute(“a”,”AAA”)来设定属性值,然后用get来获取值。
语法就是:
request.setAttribute("a", "aaa");
request.getAttribute("a")
request.removeAttribute("a");
HttpServletResponse对象
服务器端的响应信息被封装在这个对象中
响应信息由response对象传送给web服务器,再由web服务器发送给客户端
转发和重定向的区别:
请求重定向 response.sendRedirect (URL) | 请求转发 request.getRequestDispatcher (“LoginPage”).forward(request, response); |
---|---|
地址栏改变,可以访问本web应用以外的资源 | 地址栏不改变,只能访问本web应用资源 |
整个过程发送两次请求 | 整个过程是一次请求 |
不加/是相对本servlet所在请求的目录, 加/表示端口号后面的根目录 | 不加/是相对本servlet,加/表示web应用的根目录 |
sendRedirect后面语句仍然会被执行,所以一般加return | 请求转发之后的语句仍然会被执行。所以,一般在该语句执行之后加return |
null | 由于多个servlet之间属于同一个请求,共享同一个request对象,所以可以通过request作用域来共享传递一些信息 |
ServletConfig对象
一般用于处理某个servlet在配置文件配置信息getInitParameter
<servlet>
<servlet-name>ParamServlet</servlet-name>
<servlet-class>com.neusoft.test.ParamServlet</servlet-class>
<init-param>
<param-name>code</param-name>
<param-value>utf-8</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ParamServlet</servlet-name>
<url-pattern>/ParamServlet</url-pattern>
</servlet-mapping>
public class ParamServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletConfig sc = getServletConfig();
String code = sc.getInitParameter("code");
System.out.println(code); //是获取配置信息:init-param的值的。
}
}
ServletContext对象
ServletContext和ServletConfig整体是差不多的,但是Config是在servlet标签里面书写的,你可以把他想成一个局部变量,而Context是和servlet标签是平级的,可以把它想成成员变量。
<context-param>
<param-name>username</param-name>
<param-value>root</param-value>
</context-param>
public class ParamServlet extends HttpServlet {
/* (non-Javadoc)
* @see javax.servlet.http.HttpServlet#service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletConfig sc = getServletConfig();
String code = sc.getInitParameter("code");
ServletContext scon=getServletContext();
String username = scon.getInitParameter("username");
System.out.println(code);
System.out.println(username);
}
}