日期:2014-05-17  浏览次数:20721 次

谁来解释下ServletConfig这个类
最近在学习servlet相关的内容,有一个问题不明白,为什么在取ServletConfig对象的参数值的时候,还需要覆写doGet方法呢?
Java code

public class ServletConfigTest extends HttpServlet{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
        
    private ServletConfig sc;
    public void init(ServletConfig config)throws ServletException{
        super.init(config);
        this.sc = config;
        String s = sc.getInitParameter("hello1");
        System.out.println(s);
    }
    public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException, IOException {    
         /*如果不覆写doGet方法,就会出现404错误,这是为什么呢?*/    
         }





------解决方案--------------------
探讨

引用:
doPost、doGet 分别对应数据的提交方式
post主式提交用doPost(),get提交用doGet()。二者要用一个。

但service方法可以同时处理二者,所以用service方法就可以。


但是servlet的生命周期不是先调用父类GenericServlet的init(ServletConfig config)方法,然后才调用HttpS……

------解决方案--------------------
应该是405错误,禁止访问该资源。
因为你发送请求后没有doGet()或doPost()方法来处理请求并响应,所以browser端无法显示任何内容。
即该资源被认为是禁止访问的。
至于你说的init()-->service(ServletRequest req, ServletResponse res)-->service(HttpServletRequest req, HttpServletResponse resp)-->doXXX()顺序没有错误,只是与该错误无关。
希望能帮上你的忙。