SpringMVC에서 정적 리소스가 차단되지 않도록 설정하는 문제에 대해 자세히 설명합니다.
그러나 이 조작을 할 때 큰 문제가 발생했습니다. 프로젝트 데모의 정적 자원이 요청할 때마다 차단되어 처리됩니다!페이지로 돌아갈 때 페이지는 더 이상 생각한 모습이 아니다.
내가 스프링mvc인 줄 알았어.xml에서 차단기와 정적 자원 설정을 설정했는데 이런 결과가 나왔기 때문에 전 브라우저의 설정을 보고 css 파일, js 파일을 봅니다.마지막에야 목표를 잠그는 것은 정적 자원의 문제로 웹에 직접 있다.xml에서 defaultServlet 방식을 사용해야 문제를 해결할 수 있습니다.
다음은 내 차단기 코드입니다.
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
String url=request.getRequestURI();
System.out.println(url);
String method=request.getMethod();
//
if(url.indexOf("/login")>=0&&method.equalsIgnoreCase("post")){
return true;
}
//
if(url.indexOf("/toAddUserPage")>=0){
return true;
}
// true
HttpSession session=request.getSession();
User user=(User) session.getAttribute("user");
if(user!=null){
//
if(url.indexOf("/toLogin")>=0||url.indexOf("/toAddUserPage")>=0){
request.getRequestDispatcher("/WEB-INF/jsp/index.jsp").forward(request, response);
return false;
}
return true;
}
//
request.getRequestDispatcher("/WEB-INF/jsp/user/login.jsp").forward(request, response);
return false;
}
다음은 저의 springmvc 설정입니다.
<!-- controller、service、 controller, controller -->
<context:component-scan base-package="com.ipro.shopping.controller"/>
<!-- json -->
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
<!-- :js、css、img、 -->
<!-- <MVC:RESOURCES LOCATION="/" MAPPING="**.HTML"/>
<MVC:RESOURCES LOCATION="/" MAPPING="**.JS"/>
<MVC:RESOURCES LOCATION="/" MAPPING="**.CSS"/>
<MVC:RESOURCES LOCATION="/" MAPPING="**.PNG"/>
<MVC:RESOURCES LOCATION="/" MAPPING="**.GIF"/>
<MVC:RESOURCES LOCATION="/" MAPPING="**.JPG"/> -->
<!-- -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.ipro.shopping.interceptor.LoginInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
나는 모든 정적 자원을 어떤 형식으로 설정했지만, 결과는 여전히 정확한 답안을 되돌릴 수 없었다.다음은 웹 설정입니다.xml 다음 파일:
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
<!-- springmvc -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- contextConfigLocation springmvc ( 、 ) contextConfigLocation,
/WEB-INF/servlet -serlvet.xml(springmvc-servlet.xml) -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
주의하는 것은 default Servlet을 설정하려면springmvc의 전단 컨트롤러 (Dispatcher Servlet) 앞에 설정해야 효력이 발생합니다.위에는 내가 로그인 검증을 할 때 사용한 것으로 참고만 제공한다.현재 이 문제는 단지 하나의 방안만 만들었을 뿐, 인터넷에서 말하는 것은 세 가지 해결할 수 있는 방안이 있는데, 첫 번째는 바로 내가 위에서 언급한 이런 것이다
두 번째는springmvc에서 설정하는 방식입니다. 단지 제가 설정하는 것은 성공하지 못했습니다.또 하나는 default Servlet을 사용하여 주석을 사용하는 방식으로 설정하는 것이다.
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.