جاوا و تکنولوژی های آن

java programming language

در این وبلاگ به بررسی نکات موجود در جاوا و تکنولوژی های آن می پردازیم

طبقه بندی موضوعی

یکی از نیاز های مشترک در web application ها ایجاد صفحات نمایش خطا سفارشی است. نمایش صفحه خطای مرورگر به کاربر جلوه زیبایی ندارد و به کاربر اطلاعات کافی را در چرایی ایجاد این خطا و نحوه برگشت به مسیر درست را نمیدهد از طرفی داشتن صفحه خطای ویژه، web application را منحصر بفرد خواهد کرد و جلوه بهتری دارد 

مراحل کار :

- تعریف کردن یک url منحصر بفرد ( مثلا error/ ) برای redirect کردن درخواست اشتباه کاربر به آن صفحه که View نمایش پیام خطا در آن وجود دارد
- ایجاد یک Controller که url خطای ما روی آن map شده است ( error/ )
- ساخت Http Status Code مناسب با خطا و پیام قابل مشاهده، مثلا برای 404 باید پیام "این صفحه موجود نمیباشد" و برای 500 پیام "خطای داخلی رخ داده است"


ابتدا URL صفحه خطا را در web.xml ست میکنیم :
<error-page>
    <location>/errors</location>
</error-page>
توجه داشته باشید که این ویژگی فقط در سرولت 3 به بالا موجود است 


و بعد کلاس Controller@ را میسازیم :
@Controller
public class ErrorController {
 
    @RequestMapping(value = "errors", method = RequestMethod.GET)
    public ModelAndView renderErrorPage(HttpServletRequest httpRequest) {
         
        ModelAndView errorPage = new ModelAndView("errorPage");
        String errorMsg = "";
        int httpErrorCode = getErrorCode(httpRequest);
 
        switch (httpErrorCode) {
            case 400: {
                errorMsg = "Http Error Code: 400. Bad Request";
                break;
            }
            case 401: {
                errorMsg = "Http Error Code: 401. Unauthorized";
                break;
            }
            case 404: {
                errorMsg = "Http Error Code: 404. Resource not found";
                break;
            }
            case 500: {
                errorMsg = "Http Error Code: 500. Internal Server Error";
                break;
            }
        }
        errorPage.addObject("errorMsg", errorMsg);
        return errorPage;
    }
     
    private int getErrorCode(HttpServletRequest httpRequest) {
        return (Integer) httpRequest
          .getAttribute("javax.servlet.error.status_code");
    }
}

ساخت صفحه View :

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page session="false"%>
<html>
<head>
    <title>Home</title>
</head>
<body>
    <h1>${errorMsg}</h1>
</body>
</html>


و برای تست میتوانیم آدرس یک صفحه ای که وجود ندارد را بدهیم که 404 برگشت داده خواهد شد

و برای تست خطای داخلی 500 میتوانیم با ایجاد خطای NullPointerException آنرا شبیه سازی کنیم :
localhost:8080/spring-mvc-xml/500Error
@RequestMapping(value = "500Error", method = RequestMethod.GET)
public void throwRuntimeException() {
    throw new NullPointerException("Throwing a null pointer exception");
}





نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی