spring-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"
default-autowire="byName" default-lazy-init="false">
<!-- 配置自定掃描的包 --><!-- 就是自己工程里自己建的需要掃描的包 -->
<context:component-scan base-package="com.**.**.**"></context:component-scan>
<!-- 在實際開發中通常都需配置 mvc:annotation-driven 標簽 -->
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<!-- default-servlet-handler 將在 SpringMVC 上下文中定義一個 DefaultServletHttpRequestHandler,
它會對進入 DispatcherServlet 的請求進行篩查, 如果發現是沒有經過映射的請求,
就將該請求交由 WEB 應用服務器默認的 Servlet 處理. 如果不是靜態資源的請求,
才由 DispatcherServlet 繼續處理 一般 WEB 應用服務器默認的 Servlet 的名稱都是 default.
若所使用的 WEB 服務器的默認 Servlet 名稱不是 default,則需要通過 default-servlet-name 屬性顯式指定 -->
<mvc:default-servlet-handler/>
<!-- 配置視圖解析器: 如何把 handler 方法返回值解析為實際的物理視圖 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
</bean>
<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list >
<ref bean="mappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10000000"/>
</bean>
<!-- 攔截器 -->
<!-- 可以同時使用多個攔截器,在這里引入攔截器 JAVA文件 -->
<mvc:interceptors>
<bean class="com.**.**.web.interceptor.sessionInterceptor"/>
<bean class="com.**.**"/>
</mvc:interceptors>
</beans>
JAVA文件
package com.genlot.ushop.web.portal.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class sessionInterceptor extends HandlerInterceptorAdapter {
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
String url = request.getRequestURI();
//登陸的時候,會把用戶信息存在session中,直接獲取,
UserInfo userInfo = (UserInfo ) request.getSession().getAttribute( "userInfo ");
//要是獲得用戶信息為空,就進入攔截器重定向的位置
//添加一些不進入攔截器的例外(登陸,注冊,以及注冊頁面需要的一些數據請求等)
if (null == userInfo && url.indexOf("login") == -1
&&url.indexOf("register") == -1
&&url.indexOf("userInfo ") == -1
){
//response.sendRedirect(request.getContextPath()+"/user/login.jsp");
//request.getRequestDispatcher("/WEB-INF/views/user/login.jsp").forward(request, response);
/*java.io.PrintWriter out = response.getWriter();
String CONTENT_TYPE = "text/html; charset=GBK";
response.setContentType(CONTENT_TYPE);
String a = request.getContextPath()+"/user/login";
out.println("<html>");
out.println("<script>");
out.println("window.open ('"
+ a
+ "','_top')");
out.println("</script>");
out.println("</html>"); */
response.sendRedirect(request.getContextPath() + "/html/loginRegister.html");
return false;
} else {
return true;
}
}
}
