ParameterizableViewController控制器实现跳转页面
jsp页面的隐藏:
在/WEB-INF/下创建一个目录,例如/WEB-INF/jsp,可以用来隐藏jsp页面,如果在地址栏中输入http://localhost:8080/SpringMVC02/WEB-INF/jsp/login.jsp是无法访问到对应的jsp页面的,这样就起到了一个很好的隐藏,让用户不能随意的访问页面。
SpringMVC中访问隐藏页面:
使用org.springframework.web.servlet.mvc.ParameterizableViewController控制器,可以通过控制器返回一个视图,这样就可以访问到隐藏的页面了,例如在地址栏中输入http://localhost:8080/SpringMVC02/login.do,对应的控制器就会返回一个视图。
CommServlet-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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- 定义控制器,该控制器直接跳转到一个页面 -->
<bean id="loginController" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
<!-- 返回的视图名为login -->
<property name="viewName" value="login"/>
</bean>
<!-- 定义映射器 -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<!-- key中的login.do表示请求的url,loginController表示具体处理的控制器 -->
<prop key="login.do">loginController</prop>
</props>
</property>
</bean>
<!-- 配置url解析器 -->
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<!-- 视图处理类,这里使用的是JSTL -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<!-- 返回的逻辑名称的前缀 -->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!-- 返回的逻辑名称的后缀 -->
<property name="suffix" value=".jsp"/>
<!-- 最后返回的url是/jsp/逻辑名.jsp -->
</bean>
</beans>
jsp页面的隐藏:
在/WEB-INF/下创建一个目录,例如/WEB-INF/jsp,可以用来隐藏jsp页面,如果在地址栏中输入http://localhost:8080/SpringMVC02/WEB-INF/jsp/login.jsp是无法访问到对应的jsp页面的,这样就起到了一个很好的隐藏,让用户不能随意的访问页面。
SpringMVC中访问隐藏页面:
使用org.springframework.web.servlet.mvc.ParameterizableViewController控制器,可以通过控制器返回一个视图,这样就可以访问到隐藏的页面了,例如在地址栏中输入http://localhost:8080/SpringMVC02/login.do,对应的控制器就会返回一个视图。
CommServlet-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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- 定义控制器,该控制器直接跳转到一个页面 -->
<bean id="loginController" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
<!-- 返回的视图名为login -->
<property name="viewName" value="login"/>
</bean>
<!-- 定义映射器 -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<!-- key中的login.do表示请求的url,loginController表示具体处理的控制器 -->
<prop key="login.do">loginController</prop>
</props>
</property>
</bean>
<!-- 配置url解析器 -->
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<!-- 视图处理类,这里使用的是JSTL -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<!-- 返回的逻辑名称的前缀 -->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!-- 返回的逻辑名称的后缀 -->
<property name="suffix" value=".jsp"/>
<!-- 最后返回的url是/jsp/逻辑名.jsp -->
</bean>
</beans>