【摘要】:Servlet程序的编写、部署firstServlet.java是一个简单的Servlet程序,因为它是HttpServlet类的子类。存放Servlet程序的根目录是在“conf/app-default.xml”配置文件中配置定义的,可参考“实训5——Resin下载、安装、启动与配置”中的“Servlet程序的存放路径配置”。使用“记事本”输入“firstServlet.java”程序并存放在应用目录“Webapps/ROOT/WEB-INF/classes/test”中。图4-15 一个简单的Servlet程序在“resin-web.xml”或“web.xml”文件中,标签<servlet>要先于标签<servlet-mapping>定义。该路径下,甚至是在“.jar”中的serv-let都会在不觉察的情况下被调用。
(1)Servlet程序的编写、部署
firstServlet.java是一个简单的Servlet程序,因为它是HttpServlet类的子类。firstServlet类覆盖了父类的service()方法,该方法由servlet容器调用,使该Servlet自动响应(respond)一个请求(request)。
在service()方法中演示了如何获取JSP内置对象application、session等。
语句“PrintWriter out=response.getWriter();”获取输出流,向请求端发送HTML文档。
在Resin的应用目录(如“webapps/ROOT”)下有子目录“WEB-INF/classes”,这是存放Servlet程序的根目录。存放Servlet程序的根目录是在“conf/app-default.xml”配置文件中配置定义的,可参考“实训5——Resin下载、安装、启动与配置”中的“(4)Servlet程序的存放路径配置”。
使用“记事本”输入“firstServlet.java”程序并存放在应用目录“Webapps/ROOT/WEB-INF/classes/test”中。
firstServlet.java:


(2)Servlet程序的配置调用
调用“Webapps/ROOT/WEB-INF/classes”下的Servlet程序,要在“Webapps/ROOT/WEB-INF”目录中的文件“web.xml”或“resin-web.xml”中作相应的配置。对于上例,若“web.xml”或“resin-web.xml”的内容是:

则在浏览器地址栏中输入:(www.chuimin.cn)

或者输入:

都可以调用“Webapps/ROOT/WEB-INF/classes/test”目录下的Servlet程序“firstServlet.java”。其显示的页面如图4-15所示。

图4-15 一个简单的Servlet程序
在“resin-web.xml”或“web.xml”文件中,标签<servlet>要先于标签<servlet-mapping>定义。标签<servlet>中,属性servlet-class定义Servlet程序实际的包名和类名,属性servlet-name定义代表该Servlet程序的名字,可以是任意的标识符;标签<servlet-mapping>中定义对用户所取的Servlet程序名(属性servlet-name定义)所代表的Servlet程序的URL调用模式(属性url-pattern定义),如上例的“firstServlet.java”程序,它的URL调用模式是:

特别地,对于“<servlet-mappingurl-pattern="/servlet/*"servlet-name="in-voker"/>”,“invoker”代表实际的Servlet程序的class名,“/servlet/*”表示它的URL调用模式是在实际的Servlet程序的class名前加上/servlet/,因此,如上例的firstServlet.java程序,它的URL调用模式也可以是:

但不建议使用此配置模式,这会造成安全漏洞。该路径下,甚至是在“.jar”中的serv-let都会在不觉察的情况下被调用。
相关推荐