这个关键字在servlet中不起作用

时间:2014-04-08 12:57:32

标签: java servlets this

在下面的servlet中,我想添加内容类型和字符集编码。

  public class FBOAuth extends HttpServlet {
  public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     PrintWriter out = response.getWriter();
     this.response.setContentType("application/json");
     this.response.setCharacterEncoding("UTF-8");
...

我使用以下命令编译这个servlet。

$ javac -classpath json.jar FBOAuth.java

错误

FBOAuth.java:24: error: cannot find symbol
this.response.setContentType("application/json");
    ^
symbol: variable response
FBOAuth.java:25: error: cannot find symbol
this.response.setCharacterEncoding("UTF-8");
    ^
 symbol: variable response
 2 errors

2 个答案:

答案 0 :(得分:7)

this.之前移除response。它们是参数,而不是类变量。

答案 1 :(得分:0)

从代码中删除关键字,它将起作用。由于HTTPServletRequest和HttpServletResponse对象仅适用于当前请求,因为它是无状态协议,并且它仅适用于当前对象。 此关键字仅用于成员变量和成员函数,不用于内置对象,因为这两个对象(请求,响应)都是隐式的。