我们很多时候,创建web工程的时候太急了,以至于没有设置Target runtime,所以当你在写jsp页面的时候,它就会检测到没有配置服务器,所以jsp页面的第一行<%@ page language="java" contentType="text/html; charset=UTF-8"%>就会报错,还有一个原因,也是比较常见的原因,这个项目文件,是你从外部导入的,所以它也是会报错,为什么,例如说tomcat,在别人的电脑上配置的tomcat版本的位置都和你的电脑上配置的不一样,所以这个项目找不到所依赖的服务器位置,所以也是会报错。
那么要怎么去解决这个问题呢,这两种原因的解决方案都一样,首先我们右键这个项目,把鼠标移到Build Path,点击Configure Build Path...
在弹出的Properties界面,我们选择Libraries,然后点击Add Library...
在弹出来选项中,我们选择Server Runtime这个选项,点击Next
然后选择自己的服务器,例如我的就是tomcat v9.0,然后点击finish。
然后在Libraries就会显示出我们所添加的tomcat。
如果在点击Server Runtime的时候没有看到自己的服务器,那么在eclipse下方点击Servers
选择好自己的Tomcat版本,我这里是v9.0,所以我选择了Tomcat v9.0 Server
点击Next,找到我们tomcat根目录所在的位置,导入后,点击finish就可以啦,然后完成我们之前的那一步add library就ok了。
再回过头来看我们的jsp文件
就发现没有报错了,这个问题就解决啦。
接下来我们讲一下,在jsp页面里调用内置方法报错的问题,其实也是上面问题的延续,我们虽然说第一行没有报错了,但是在jsp页面调用request却是报错了,那么怎么去解决这个问题呢?
如果你去尝试着用服务器去运行这个jsp页面,它就会报错,告诉你:
Multiple annotations found at this line: - String cannot be resolved to a type......
那咋解决呢?
方法也是一样的,右键项目,选择Build Path,点击Configure Build Path..., 选择Libraries,我们能看到会有一个红色的x文件显示。
我们选择这个文件,然后点击右边按钮的Remove,然后再add Library,选择JRE System Library,添加我们自己的jre。
然后点击finish,就ok啦。
再回过头来看看我们之前的报错就没有啦。