SSMプロジェクトは例外処理機能を追加します
目次
1.リクエストによって返されたステータスコードによる例外処理
2.1.SpringMVCのHandlerExceptionResolverを実装します
1.リクエストによって返されたステータスコードによる例外処理
特定のステータスコードを参照してください。
https://blog.csdn.net/fmyzc/article/details/78048074
(注:私の同意なしに直接引用して申し訳ありません。)
ここでは、プロジェクトの実際の状況に応じて追加できる404例外情報のみを扱いました。
1.1。最初にweb.xmlで構成する必要があります
<!--异常页面,当没有发现的时候,会根基这个404代码返回相对应的jsp页面 -->
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/jsp/error/404.jsp</location>
</error-page>
注:すべてのブラウザーから返されるステータスコード情報はここで構成でき、さまざまなステータスコード情報をさまざまなjspファイルにジャンプできます。
1.2。指定された場所にjspファイルを追加します
1.3。検証
サービスを開始し、プログラムで構成されていないURLを入力して、対応するページに戻ります。
2.全体的な例外キャプチャメカニズム
2.1.SpringMVCのHandlerExceptionResolverを実装します
全体的な例外キャプチャメカニズムを導入する前に、SpringMVCのHandlerExceptionResolverインターフェイスを実装する必要があります。
package edu.wan.handler;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Component
public class MyHandlerExceptionResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
String errorMessage = null;
//首先可以对异常进行判断
if (e instanceof NullPointerException){
errorMessage = "咋回事,大兄弟,你咋还空指针了呢";
}
//返回错误页面
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("errorMessage",errorMessage);
modelAndView.setViewName("error");
return modelAndView;
}
}
2.2。検証
検証のためにコントローラーレイヤーのコードを変更しました。
public @ResponseBody User findUserById(){
int id = 1;
userService = null;
return userService.findById(id);
}
サービスを開始し、指定されたコントローラーを呼び出すと、例外処理レイヤーにジャンプします。さまざまな例外情報に従って、さまざまなデータパッケージをフロントエンドにアセンブルし、フロントエンドにデータを処理させます。