intellj IDEA 普通javaee项目,访问出现500,报错“Servlet execution threw an exception”

简直了,今天做了一个javaee项目,小小项目两次出错,第一个错,可以见今天早些时候的博客。顺利解决上一个问题之后,立马写完servlet相关代码,本以为,运行提交一气呵成美滋滋去睡觉,奈何每次通过所写的html中表单输入用户名以及密码,总是出错,状态码报500,网页错误显示“Servlet execution threw an exception”.其实这个项目很简单,数据库中有一个存储用户名以及密码的表,然后写一个login.html,里面有一个表单,写入用户名和密码,点击提交,服务器拿到提交的用户名和密码去数据库中查找,如果用户名和密码正确,就转发到SuccessServlet,在页面上打印一句话:登陆成功,欢迎,XXX。反之如果用户名或者密码不正确,就抓发到FailServlet,打印“登陆失败,用户名或密码不正确”。非常简单的逻辑,项目结构如下:

intellj IDEA 普通javaee项目,访问出现500,报错“Servlet execution threw an exception”_第1张图片

但是,写完之后,开启tomcat服务器,访问对应的login.html总是如下显示:

intellj IDEA 普通javaee项目,访问出现500,报错“Servlet execution threw an exception”_第2张图片

又找了一会,发现我直接把lib直接放在了web根目录下,应该在web中建立一个WEB-INF,把lib放在这里面。所以今天短短时间里遇到的两个问题,都是对java ee项目结构不清楚。这里做一个小总结:

##java动态项目的目录结构:

java动态项目的目录结构:

      + 项目根目录(web文件夹)

              + WEB-INF目录

                      + web.xml:web目录的核心配置文件(但是我的项目中没有勾选,所以没有此项)

                      + classes目录:放置字节码文件的目录

                      + lib目录:放置依赖的jar包

另外,项目根目录同级的src放具体的代码.而且需要注意的是,工作空间项目和tomcat部署的web项目之间的区别.tomcat真正访问的是"tomcat部署的web项目","tomcat部署的web项目"对应着工作空间项目的web目录下的所有资源.再者,WEB-INF目录下的资源不能被浏览器直接访问.所以,要解决我的问题,就是在web根目录下建立一个WEB-INF目录,将lib文件夹放进去就可以了.

你可能感兴趣的:(java)