1JSPP”说起,一个可以执行的page?不可能!它肯定会是一个对象,即jsp是一个对象,但谁把它new出来;它的类又是什么呢?

第一个问题:tomcatnew的当事人,没错,jsp是要符合一定的书写规范的,这是讨好tomcat的,或者说tomcatjsp的容器。

第二个问题:<%=this instanceof HttpServlet %>是可以找到答案的.

2、“True”是第二问题的答案,说明JSP是一个HttpServlet子类的对象,它是简化版。现在我们需要自定一个类来完成和JSP相同的工作:

class MyServlet extends HttpServlet{

public void deGet(HttpServletRequest req,HttpServletResponse resp){

//jsp中的java代码放在这(思考:那些对象在哪里呢?)

}

}

      3、如何运行?

如果我们自己运行,必需这样:

HttpServlet ms=new Myservlet();

ms..doGet(req,resp);

但其中的两个对象(实参)如何传递呢?

我们希望它象jsp一样的运行,即应该满足以下四点(简称四件事):

1)每次访问自动执行

2)自动实例化

3)方法自动调用,且方法传递的实参也被实例化。

4)应该有唯一的url 来保证其可以访问。

所有这些都应该由tomcat完成。

但目前的情况是什么?……我们只有一个MyServlet类,我们需要多做点事情,让Tomcat认识这个类,可以做那“四件事”。

        4、如何解决“四件事”呢?

“项目下WEB-INF/web.xml”一个神奇的文件,这四件事可以一并在这里解决:

<!—在这里定义一个servlet,tomcat可以认识它- ->

<sevlet>

<sevlet-name>名字</servlet-name>

<sevlet-class>包名.类名</servlet-class>

</sevlet>

<!—在这里指定url- ->

<servlet-mapping>

<sevlet-name>名字</servlet-name>

<url-parten> /url</url-parttern>

</sevlet-mapping>

    如此我们就可以在浏览器中使用:http://ip:port/项目/url的方式访问,让doGet里的程序执行起来了。