写在前面:学习Javaweb时间太久了,加上新的老师创建web项目的方式不同,导致我配置遇到错误的时候有些懵了,于是乎,记录原本的创建方式。
目录1和2是探索配置错误的过程,3是错误的解决办法!!!
目录
3.3HTTP Status 500 - Servlet.init() for servlet springmvc threw exception
1.JavaWeb的快速创建(最保险)
1.1创建新的javaweb项目
以创建springmvc_66_blog为例:
1.2配置Tomcat
1.3配置成功
ps:如果用这种方法创建javaweb项目加上springmvc就不会出现下面这种情况:
HTTP Status 500 - Servlet.init() for servlet springmvc threw exception
2.还原上面这个出现错误的配置过程
2.1 创建springmvc_67_blog
运行测试,出现了jdk版本错误
点击项目结构---模块--根据图片步骤修改
这里虽然运行成功了,但是却留下了疑问,为什么前面要配置成8,后面14才行。而且还是缺一不可。下面为了验证这个为什么 ,用快速创建的web项目与手动配置的web项目进行对比,发现原因。
2.2添加web框架
2.3搭建一个简单的springmvc项目
1.HelloController
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//注意:这里我们先导入Controller接口
public class HelloController implements Controller {
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
//ModelAndView 模型和视图
ModelAndView mv = new ModelAndView();
//封装对象,放在ModelAndView中。Model
mv.addObject("msg","HelloSpringMVC!");
//封装要跳转的视图,放在ModelAndView中
mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jsp
return mv;
}
}
2.springmvc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--视图解析器:DispatcherServlet给他的ModelAndView-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--后缀-->
<property name="suffix" value=".jsp"/>
</bean>
<!--Handler-->
<bean id="/hello" class="com.liu.controller.HelloController"/>
</beans>
3.hello.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${msg}
</body>
</html>
4.web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--1.注册DispatcherServlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--关联一个springmvc的配置文件:【servlet-name】-servlet.xml-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!--启动级别-1-->
<load-on-startup>1</load-on-startup>
</servlet>
<!--/ 匹配所有的请求;(不包括.jsp)-->
<!--/* 匹配所有的请求;(包括.jsp)-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
到此基本spingmvc和web的架构搭建已经完成,下面找错误原因!
3.错误分析
3.1 java: 错误: 无效的源发行版:14
找到原因:我项目配置的是父项目带子项目,在父项目中版本源默认为14,而子项目创建的为jdk1.8,所以出现版本冲突。只需要将项目中的14改为8即可。
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
3.2 HTTP Status 404 -
找到原因:这是子项目的资源路径下没有找到jar包所导致的,所以要手动在项目的class路径下,添加依赖。具体操作为:文件----》项目结构----》工件-----》选择要配置的项目----》点击WEB-INF----》在WEB-INF下创建lib包-----》单击lib后点击+号-----》点击库文件------》全选确定----》应用
3.3HTTP Status 500 - Servlet.init() for servlet springmvc threw exception
亲测:如果按照3.1和3.2的步骤走的,一般不会出现错误500的问题。但我还是测试了下500的出现。我修改了jdk的版本,将1.8修改成14,结果出现了这个错误。所以推测是jdk配置版本导致的错误。下面提供几种查验版本问题的方法:
1.设置里查看
2.项目结构里设置
3.项目结构模块下的依赖
4. 项目结构模块下的源
4.小结
放上配置成功的截图:
idea的项目需要严格注意配置步骤,特别是在勾选jdk版本上,一般电脑都会安装几个版本的jdk,所以一定要 看清jdk的版本。慢慢来,耐心点,终于从配置地狱中走出来了!