maven-springmvc工程
工程内容:写日志,以及使用controller处理映射。
1,新建maven工程,参考:http://www.cnblogs.com/HZDX-2017/p/7182661.html
2,引入spingmvc需要的jar包:添加依赖 pom.xml
(1)可以直接输入代码:
<!-- springmvc start-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.3.RELEASE</version>
</dependency>
<!-- springmvc end-->
<!-- log4j start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- log4j end -->
配置日志:在log4j.properties中配置具体的日志输出位置。
# This is the configuring for logging displayed in the Application Server
log4j.rootCategory=DEBUG, stdout, rollFile
#\u63A7\u5236\u53F0\u8F93\u51FA
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %t [%5p] %l - <%m> %n
#\u6587\u4EF6\u8F93\u51FA
log4j.appender.rollFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollFile.layout=org.apache.log4j.PatternLayout
log4j.appender.rollFile.layout.ConversionPattern=%d %t [%5p] %l - <%m> %n
log4j.appender.rollFile.File=C:\\Users\\Administrator.GZLX-20170214LZ\\Desktop/war.log
log4j.appender.rollFile.MaxFileSize=50MB
log4j.appender.rollFile.MaxBackupIndex=20
#\u65E5\u5FD7
log4j.logger.org.springframework.web=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
(2)工程右键--maven--Add Dependency
2,web.xml中添加前端控制器DispatcherServlet
<web-app>
<display-name>Archetype Created Web Application</display-name>
<!-- 配置前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--加载前端控制器配置文件 上下文配置位置-->
<init-param>
<!-- contextConfigLocation:指定springmvc配置的加载位置,如果不指定则默认加载WEB-INF/[DispatcherServlet的Servlet名字]-servlet.xml(例如springmvc-servlet.xml)。 -->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!-- 表示随WEB服务器启动 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- 备注:可以拦截三种请求
第一种:拦截固定后缀的url,比如设置为 *.do、*.action,例如:/user/add.action 此方法最简单,不会导致静态资源(jpg,js,css)被拦截.
第二种:拦截所有,设置为/,例如:/user/add /user/add.action此方法可以实现REST风格的url,
很多互联网类型的应用使用这种方式.但是此方法会导致静态文件(jpg,js,css)被拦截后不能正常显示.需要特殊处理.
第三种:拦截所有,设置为/*,此设置方法错误,因为请求到Action,当action转到jsp时再次被拦截,提示不能根据jsp路径mapping成功. -->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
注意:名称一致。
3,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" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 配置扫描的包 -->
<context:component-scan base-package="com.lizj" />
<!-- 注册HandlerMapper、HandlerAdapter两个映射类 无需配置,默认使用默认的处理 -->
<!-- 扩充了注解驱动,可以将请求参数绑定到控制器参数 -->
<mvc:annotation-driven />
<!-- 访问静态资源 -->
<mvc:default-servlet-handler />
<!-- 视图解析器 <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/view/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
注意几点:
(1)扫描包时容易写错,<context:component-scan base-package="com.lizj.*" />,没有.*。不然就会报404.
(2)视图解析器中的view配置,路径一定也要写对。不然,也是报404.
4,controller;
(1)若之前配置的扫描位置错误,则启动日志log(1中配置的位置)里面就未能找到对应的处理url地址的controller。
(2)若使用地址访问,则会报404.
(3)若地址未错,仍然是404.则需要将项目clean all后重新编译即可。
工程:链接:http://pan.baidu.com/s/1o771CwE 密码:576a