Вам необходимо скомпилировать с отладочной информацией (используя -g
в случае GCC). Установка отладочной информации для библиотеки C (в пакетах libc6-dbg
или glibc-debuginfo
во многих системах) также может помочь.
Вы также можете привести malloc
к указателю на функцию правильного типа, например:
(gdb) print ((void * (*) (size_t)) malloc) (5 * 1024 * 1024)
$1 = (void *) 0x7ffff65b2010
Недоброкачественная продукция
при использовании простых представлений JSP (как наиболее распространено), тогда просто добавьте
<% response.setStatus( 403 ); %>
где-нибудь в файле представления. Наверху хорошее место.
Деталь
В MVC, я всегда устанавливал бы это в представлении, и в большинстве случаев с Spring-MVC, использовать SimpleMappingExceptionResolver
для представления корректного представления в ответ на вызванную динамическую исключительную ситуацию.
, Например: создайте и бросьте PermissionDeniedException
в свой контроллер или уровень служб и имейте точку преобразователя исключения в файл permissionDenied.jsp
представления. Этот файл представления устанавливает 403 состояния и показывает пользователю соответствующее сообщение.
В Вашем бобовом XML-файле Spring:
<bean id="exceptionResolver"
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="PermissionDeniedException">
rescues/permissionDenied
</prop>
... set other exception/view mappings as <prop>s here ...
</props>
</property>
<property name="defaultErrorView" value="rescues/general" />
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
, Если необходимо реализовать пользовательский механизм входа в систему, смотрите на безопасность Spring (раньше безопасность Acegi).
Используя ExceptionResolver
отличный способ пойти, но если Вы просто хотите, чтобы это было независимо от представления, Вы могли бы, конечно, позвонить response.sendError(HttpServletResponse.SC_FORBIDDEN, "AdditionalInformationIfAvailable");
в Вашем Контроллере.