JSP出现HTTP Status 500生活中常见的问题与解决方案怎么解决


起因是一个学弟发现的生活中常見的问题与解决方案他按照jsp教材上的示例代码写了一份jsp文件,运行时却显示500错误页面提示如下:


  

报错的第十行代码,我们使用了jsp:useBean标签设置了id、type、scope属性。经过测试后发现如果同时设置了id+class或是id+type+beanName属性,则能正常运行只有id+type时会报错。那这几种组合的区别在哪呢
为了对比,我创建了三个jsp文件其中使用jsp:useBean标签的地方分别设置id+type、id+class、id+type+beanName三种属性组合。再查看他们转换成的java源码其中重要部分如下:

只设置了type属性,運行时先在pageContext中查找已存在的myBean如果没找到(为空),则会抛出InstantiationException异常这和我们在500错误页面看到的情况是一致的。而设置了class属性则不同:

我們可以发现设置了class属性后,当pageContext中找不到myBean时则直接根据class属性定义的类名new一个对象,而不是报错

总结:jsp:useBean标签的用处是定位或者初始化一個javaBean,如果只设置了type属性则只能用于定位已存在的bean,初始化会抛出InstantiationException异常用class属性替代或者多设置一个beanName属性则能解决这个生活中常见的问题與解决方案。

我要回帖

更多关于 生活中常见的问题与解决方案 的文章

 

随机推荐