发表于: 2018-01-08 22:16:11
3 614
今天做的事情:
大部分时间在阅读日志和排除BUG......用idea自动生成的Maven项目(webapp模板),一大堆错误......本来以为加上依赖包就没事了,结果发现依旧到处字体飘红:
然后我找了下资源,换了下表头,又根据日志改了web.xml文件,发现依旧跑不了...经过长时间的排错(这里感谢师兄们之前教过我怎么正确使用搜索引擎),终于发现是依赖包版本问题,某些依赖包的版本必须一致。
关于这个问题,今天学到了一个小知识,关于字符拼接${}的用法,在xml里面很好用:
先这样子设置,然后在必要的地方拼接,写上版本号:
这样子就保证了版本一致的问题了,而且改起来也方便。然后,我学习了一下SpringMVC的知识,大概弄懂了它的一个机制。这张图解释的非常清楚:
然后我根据这张图,首先搭起来了结构:
先不管那个不和谐的“HelloServlet”,因为我还没来的及把SSM全部整合起来,首先做了一个简单的测试,然后先把有关的配置加载上了。首先,来看下web.xml中的核心内容:
这里的监听器我详细了解了一下:http://www.cnblogs.com/hellojava/archive/2012/12/26/2833840.html
然后是load-on-starup标签属性。
这里我的springMVC.xml还没来得及写,先不管,运行一下先:
D:\tomcat7-8080-idea\bin\catalina.bat run
[2018-01-08 11:27:25,344] Artifact task2:war exploded: Waiting for server connection to start artifact deployment...
Using CATALINA_BASE: "D:\tomcat7-8080-idea"
Using CATALINA_HOME: "D:\tomcat7-8080-idea"
Using CATALINA_TMPDIR: "D:\tomcat7-8080-idea\temp"
Using JRE_HOME: "D:\java\jdk"
Using CLASSPATH: "D:\tomcat7-8080-idea\bin\bootstrap.jar;D:\tomcat7-8080-idea\bin\tomcat-juli.jar"
一月 08, 2018 11:27:26 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server version: Apache Tomcat/7.0.64
一月 08, 2018 11:27:26 下午 org.apache.catalina.startup.VersionLoggerListener log
……
……
Connected to server
[2018-01-08 11:27:26,916] Artifact task2:war exploded: Artifact is being deployed, please wait...
……
……
[INFO ] 2018-01-08 23:27:28,066 method:org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:317)
Loading XML bean definitions from class path resource [applicationContext.xml]
[INFO ] 2018-01-08 23:27:28,393 method:org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:172)
Loading properties file from class path resource [db.properties]
[WARN ] 2018-01-08 23:27:28,491 method:com.alibaba.druid.pool.vendor.MySqlValidConnectionChecker.<init>(MySqlValidConnectionChecker.java:55)
Cannot resolve com.mysq.jdbc.Connection.ping method. Will use 'SELECT 1' instead.
java.lang.NullPointerException
……
……
可以看见最上面的是一些配置,配置TOMCAT的时候在idea中设置的,主要是一些路径。
然后是Maven项目中Tomcat自带的监听日志,最后终于提示成功连接服务器,然后进行SM(任务一的那一块)的加载,因为我对应的controller层根本没有写,就报空指针异常了。接着浏览器自动跳出一个界面:斜杠后面输入任意内容后,变为:
和Helloservlet中的
response.getWriter().println("<h1>Hello Servlet!</h1>");
response.getWriter().println(new Date());
对应。这个测试还算是成功吧,也说明了一个问题,web工程首先从web.xml作为入口进入(我是这样子理解的,百度了下好像的确也是这样子),然后通过一个个标签去加载,详细可以参考:
http://www.th7.cn/Program/java/201710/1266716.shtml
http://blog.csdn.net/reggergdsg/article/details/52698022
明天要做的事情:继续学习SpringMVC
今天的收获:对SpringMVC有了总体上的理解
评论