这里只是总结了一下我的遇到的问题,最近在使用eclipse学习jsp的开发,一开始利用Model1的架构写了很多,逐渐的也是发现modle1的问题颇多,尤其是html和java片段混合狠不清晰而且对于数据库操作每次都要重新写一遍代码很是麻烦,后来遇到了Model1+class也就是Model2的架构,就全改了,感觉换一个模式之后思路很是清晰,但是想要完成我的工程感觉还欠缺一点,于是就发现了MVC的架构,但是在使用servlet作为控制器的转化以前的代码遇到了问题,出现了种种的问题,本来以为几分钟就可以搞定的事情,但是出现了种种的bug,结果搞了半天才搞完。好了,废话不多说,现在来总结一下~
第一个就是404,这个简直是从头到尾的跟随我,首先,让大家看一下我的工程的文件结构,也就是因为这个文件结构才导致我遇到了种种的问题,但是,强迫症的人伤不起啊,我就是要把所有的文件都装到相应的文件夹下:
我的新建了一个web文件夹然后又在下面建立了相应的文件夹,我的所有的jsp文件都是在jsp文件夹下面的。一开始时候直接建立servlet,但是测试的时候直接就是404,后俩查了一下说是web.xml配置不对,回头一看,我竟然没有web.xml,(哦哦上面那个图是后来的图了),但是在我的新建的servlet类上面看到了这样的东西:
于是我就查了一下,结果说这个是Serlvet3.0的新特性注解@WebServlet,说这个简单方便,我也是为了学习接受新的技术而学了一下那几个参数,然后知道了urlPatterns就是负责对应的servlet的地址改了一下为urlPatterns = { "/Web/jsp/CheckUser" }(CheckUser是我的servlet类)但是并没有效果(最后按照我发现的问题改了包名和途径也没有成功...)。然后又看了许多的问答,于是一个web.xml于是就再建立一个测试文件加入了web.xml其实这个很简单就是在创建工程的时候这样:
看到了下面那个勾选项了吗?勾上就可以,于是终于出现了web.xml然后又建立一个servlet文件,但是对应的web.xml并没有像他们所说的可以自动配置,一直就是这个界面:
根本就没有变化,后来才发现,原来是servlet3之前才会自动配置,于是乎,又得把工程给改成了servlet2.5,本人没有什么好的方法只好一直新建了如下:
看那个下拉列表就可以选择的,于是乎,终于配置了,然后又把里面的路径改了(看那个url-pattern):
但是又出现了一个新的问题就是HTTP Status 500 - Error instantiating servlet class然后把那个网页刷新一下就变成了404,我也是瞬间蒙了,于是又开始查,但是大家都在说是包配置错了,但是我这个包是自动配置的啊?怎么会错?然后我也不耐烦了,就把我的包名由三级改成了二级(因为以前写java的时候都是com.exapmle.xxx所以这里也习惯性的写成了这样的)如下:
然后改成了src.servlet然后在web.xml里面改了之后测试一下,竟然ok了~
后来我猜测,我是这么建包以为是三级结构但是编译器可能认为我的com.tools只是一个名字,而且里面还有 . 这个标志符,会导致混乱。
ok ,当然了,这个仅限于像我这么有强迫症的人,如果你不介意直接在WebContent下面建立jsp的话,根本就不会出现这么多的问题~
或许,我的解决问题过程中走了很多的弯路,还请指点一下,如果哪位大神可以在servlet3下解决这个问题,还分享一下方法哈~
在eclipse 把Modle1和Model2架构改为MVC架构开发Jsp遇到的种种问题
原文地址:http://blog.csdn.net/nijiayy/article/details/45723847