tomcat6中出现的跳转;
①web.xml文件的配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name></display-name>
<context-param>
<description>上下文参数</description>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:config/spring/**/*.xml
</param-value>
</context-param>
<context-param>
<description>log4j配置文件</description>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:config/log4j.xml</param-value>
</context-param>
<context-param>
<description>web项目根目录</description>
<param-name>webAppRootKey</param-name>
<param-value>wuhanLabour.root</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<listener>
<description>spring监听器</description>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<filter>
<description>字符集过滤器</description>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<description>字符集编码</description>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<description>spring mvc servlet</description>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<description>spring mvc的配置文件</description>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/spring/spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>-1</session-timeout>
</session-config>
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
<error-page>
<error-code>401</error-code>
<location>/404.jsp</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/404.jsp</location>
</error-page>
<error-page>
<error-code>408</error-code>
<location>/404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/404.jsp</location>
</error-page>
<error-page>
<error-code>502</error-code>
<location>/404.jsp</location>
</error-page>
<error-page>
<error-code>504</error-code>
<location>/404.jsp</location>
</error-page>
<error-page>
<error-code>503</error-code>
<location>/404.jsp</location>
</error-page>
<jsp-config>
<taglib>
<taglib-uri>http://www.bigdata.com/jstl/string</taglib-uri>
<taglib-location>/WEB-INF/tld/string.tld</taglib-location>
</taglib>
</jsp-config>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</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>*.min.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</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>*.ico</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.cur</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.xml</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.swf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.json</url-pattern>
</servlet-mapping>
</web-app>
首次定位到controller中了,则可以做转发或者重定向
package com.jiupai.bigdata.analysis.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("/")
public class WelcomeController extends BaseController {
/**
* 初始化文章页面
* @param beginDate
* @param endDate
* @param keyword
* @return
*/
@RequestMapping("")
public ModelAndView init(String beginDate,String endDate,String keyword){
ModelAndView mav = new ModelAndView();
mav.setViewName("/user/login");
//mav.setViewName("redirect:/option/user/login");重定向
return mav;
}
}
如果是重定向的话则会跳转的请求类
/**
* 不在web.xml中配置登录页面,只是配置首页请求。
* 这样在首页请求控制类中来处理登录页面的问题
* @author Administrator/option/user,login
*
*/
@Controller
@RequestMapping("/option/user")
public class UserController extends BaseController {
private static final Logger logger =Logger.getLogger(Constants.LOG_ERROR);
@Autowired
private UserService userService;
/**
* 登录方法
* 监测登录是否正确
* @return
*/
@RequestMapping("login")
public ModelAndView login(){
ModelAndView mav =new ModelAndView();
return nav;
}
关于tomcat7中的问题直接这样请求不到的问题,网上说这是一个bug,不支持访问mvc的这样直接访问,说是默认访问到index.jsp然后再用这个index页面做一个forword请求;
需要在webroot下面自动添加index.jsp页面,不用在web.xml配置
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
也能直接访问到index.jsp。所以可以在这个index.jsp页面再做跳转和重定向
以下是在index.jsp中重定向的代码<% request.getRequestDispatcher(“/dd”).forward(request, response); %>,换“/dd”就是你重定向从页面中转的地址,不要用“/”
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<% request.getRequestDispatcher("/dd").forward(request, response); %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
This is my JSP page. <br>
</body>
</html>