二、编译时出现“软件包 javax.servlet 不存在”
2)应该把例如:C:\Tomcat\common\lib里面的servlet-api.jar文件拷贝到例如:C:\JDK\jre\lib\ext中,再次编译,就没有问题了!
3)出现“使用了未经检查或不安全的操作。 注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。”警告 解决办法:
private List eventList=new ArrayList();
改成
private List<Event> eventList=new ArrayList<Event>();
4)
关于Servlet中相对路径和绝对路径归纳
1.
|
并且该页面的访问地址是http://localhost:8080/yaso/login
|
并且该页面的访问地址是http://localhost:8080/yaso/login
此处可以使用相对路径或者绝对路径,其中相对路径是相对于当前访问的页面。
当提交表单后,浏览器地址栏中的信息变为http://localhost:8080/yaso/abc.do
如果使用绝对路径,则"/"是指服务器的根而非应用的根。如果将上述表单改为action="/abc.do",则当提交表单后,浏览器地址栏中的信息变为http://localhost:8080/abc.do
如果要使用绝对路径可以使用getContextPath()方法。
2. 在web.xml中的
3.RequestDispatcher view = request.getRequestDispatcher("/abc.jsp");
RequestDispatcher view = request.getRequestDispatcher("abc.jsp");
这里可以使用相对路径和绝对路径。相对路径是当执行到该代码所在的Servlet的时候地址栏上显示的路径。
如果使用绝对路径,则"/"表示应用的根。
4.RequestDispatcher view = getServletContext().getRequestDispatcher("/abc.jsp");
这里必须使用绝对路径,"/"表示应用的根。可以这么理解:在ServletContext上调用请求转发,如果使用相对路径,则无法得知到底相对于该应用的什么位置,只能根据绝对路径来判断。由于是在应用上下文上调用的方法,所以"/"就表示应用的根。
5.servletContext中的getResourceAsStream(String),其中的参数应该是以"/"开头的绝对路径,其中"/"表示应用的根。