fhdking
发贴: 28
积分: 0
|
于 2007-10-28 14:21
1. Servlet的注册和运行 在web.xml里面,添加 <servlet> <servlet-name>wzh</servlet-name> <servlet-class>MyFirst</servlet-class> </servlet> <servlet-mapping> <servlet-name>wzh</servlet-name> <url-pattern>/first/a.html</url-pattern> </servlet-mapping> <servlet-name>可以随便填写<servlet-class>要与classes文件夹内的.class内的文件同名.在写<url-pattern>的时候要注意目录结构.。里面的/first/a.html是接在当前目录(应用程序的根目录)下的。所以在地址栏中访问时,一定要加上放在webapps里那个目录的名字.如http://localhost:8080/xml/first/a.html 还可以在<servlet>中设置<load-on-startup>元素,该元素的作用是指在web应用启动的时候指定了servlet被加载的顺序,它的值必须是一个整数。如果它的值是一个负整数或是这个元素不存在,那么容器会在该servlet被调用的时候,加载这个servlet 。如果值是正整数或零,容器在配置的时候就加载并初始化这个servlet,容器必须保证值小的先被加载。如果值相等,容器可以自动选择先加载谁。 2. 类装载 如果要想让一个sevlet被多个程序装载,可以把这个servlet放在common里,把原来.class文件打成jar放在lib,原来的.class放在class目录下。因为程序起来后,会自动找上面的类装载器,如果找到,那么就可以使用。所以放在common里就可以实现。程序就算自己有也会向上找,上面的找到了就不会返回来,所以这时如果用程序获得类装载器的名字,那得到的是上面的类装载器的名字。(这和sun公司在servlet规范中的建议是不一样的,Sun建议,如果下面的可以找到servlet则不用再向上找) 3. 模版方法设计模式 下面是一个模板方法设计模式的伪代码 Class abstract BaseServlet { service() throws IOException,ServletException { try { doService() } catch(SqlException e) { throw new IOException; } } public abstract void doSevice(); } YourServlet extends BaseServlet { public doService() { .... } } 小知识: response.getWriter().println();输出流默认是ISO8859-1,如果想输出中文,则必须要显示调用response.setCharacterEncoding("gb2312");
|