- 异常处理
一般项目中都需要作异常处理,基于系统架构的设计考虑,使用统一的异常处理方法。
系统中异常类型:
包括预期可能发生的异常、运行时异常(RuntimeException),运行时异常不是预期会发生的。
针对预期可能发生的异常,在代码手动处理异常可以try/catch捕获,可以向上抛出。
针对运行时异常,只能通过规范代码质量、在系统测试时详细测试等排除运行时异常。
1.自定义异常类
针对预期可能发生的异常,定义很多异常类型,这些异常类型通常继承于Exception。这里定义一个系统自定义异常类
CustomException.java,用于测试
2.异常处理
前端控制器DispatcherServlet在进行HandlerMapping、调用HandlerAdapter执行Handler过程中,如果遇到异常,都会调用统一异常处理类。该类实现HandlerExceptionResolver接口。创建一个CustomExceptionResolver.java文件并实现HandlerExceptionResolver接口,这里CustomExceptionResolver负责接收错误message然后转到对应的error.jsp,message的内容一般在service层里写
- RESTful
RESTful是啥之前写过,不累述。
在web.xml中增加:
<!--RESTful的配置-->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value> classpath:spring/spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<!--rest方式配置为/-->
<url-pattern>/</url-pattern>
</servlet-mapping>
其次在spring-mvc中添加静态资源的解析,表示访问/js/、/css/、/images/包下的静态资源时不会被前端控制器拦截也就不会被spring-mvc.xml解析。此时便可以正常访问静态资源。
<mvc:resources mapping="/css/**" location="/resources/css/" />
<mvc:resources mapping="/js/**" location="/resources/js/" />
<mvc:resources mapping="/images/**" location="/resources/images/" />
使用RESTful方法,需要在controller中:
//@requestMapping中指定restful方式的url中的参数,参数需要用{}包起来
//@PathVariable将url中的参数和形参进行绑定