java初学者容易犯的错误

本文详细解析了Servlet中相对路径和绝对路径的区别及使用场景,包括表单提交、web.xml配置、RequestDispatcher转发等,并提供了常见编译错误的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、类名和文件名不一致(主要是大小写不一致)
二、编译时出现“软件包 javax.servlet 不存在”
1)环境变量设置不正确
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.

 

<form action="abc.do" method="post">*********</form>

 

并且该页面的访问地址是http://localhost:8080/yaso/login

 

<form action="/abc.do" method="post">*********</form>

 

并且该页面的访问地址是http://localhost:8080/yaso/login

此处可以使用相对路径或者绝对路径,其中相对路径是相对于当前访问的页面。

 

当提交表单后,浏览器地址栏中的信息变为http://localhost:8080/yaso/abc.do

如果使用绝对路径,则"/"是指服务器的根而非应用的根。如果将上述表单改为action="/abc.do",则当提交表单后,浏览器地址栏中的信息变为http://localhost:8080/abc.do

如果要使用绝对路径可以使用getContextPath()方法。

 

2. 在web.xml中的中的标记中只能使用绝对路径,即必须要以"/"开头。可以这样理解:一个应用对应于一个web.xml,所以这里的绝对路径表示应用的根,而不是服务器的根。(一个特殊情况就是在中使用模式匹配的*.do,但仍然应该理解成从/开始。)

 

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),其中的参数应该是以"/"开头的绝对路径,其中"/"表示应用的根。

 


转载于:https://www.cnblogs.com/yelinpalace/archive/2009/10/11/1580838.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值