web项目访问首页问题
来源:互联网 发布:电气cad制图软件 编辑:程序博客网 时间:2024/06/06 23:50
这个项目是通过mvn建立的,整个项目的原型就是spring_mvc_jpa_deom_archetype。框架早早建成,即可看到效果。假如项目名称叫做mvn_mvc,其效果如下:
访问根路径
http://localhost:8080/mvn_mvc/
自动跳转到如下路径
http://localhost:8080/mvn_mvc/spring/
接下来的访问都是带着"spring"这个前缀的
http://localhost:8080/mvn_mvc/spring/person/list
很显然不想带着这个“spring”前缀,改名或干掉,直接位于/ 下
问题就是怎么修改这个默认的路径!
1. 缺省的流程
先看看缺省的根路径流程:
web.xml 中什么没有配置任何有关欢迎页的信息!其实这时等效于如下配置:这个会由Web容器最先访问!
//-未指定欢迎页时,缺省等于如下配置。这个应该不同的Web服务器可以设置,但大多数都如此-
<welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file></welcome-file-list>
而项目目录下,有个index.html文件,进行了跳转:
<html> <head> <meta http-equiv="Refresh" content="0; URL=spring/"></head></html>
跳转到的url全路径就相当于 http://localhost:8080/mvn_mvc/spring/。这个路径就会由mvc 的DispatcherServlet来处理。为什么呢,是因为web.xml中进行了如下url配置:
<servlet> <servlet-name>appServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring/app/servlet-context.xml</param-value> </init-param> <load-on-startup>1</load-on-startup></servlet><servlet-mapping> <servlet-name>appServlet</servlet-name> <url-pattern>/spring/*</url-pattern></servlet-mapping>
此时, http://localhost:8080/mvn_mvc/spring/,根据此规则,就会对应为MVC 路径路由中的 /。也就是HomeController。
@Controllerpublic class HomeController{ @RequestMapping(value = "/", method = RequestMethod.GET) public String home(Model model) { return "home"; }}
然后找到对应的home.jsp。
整个流程如此。其实缺省为什么设置这么一个spring路径。主要目的是为了提升spring对url的处理效率。spring/下的分支都交由spring来处理,其它的就可以交由web 服务器。
如果一切都交给spring处理,我们就要将 / 进行拦截。嗯,一定会由很多静态资源、或者其它动态jsp是另有用途,也会先被spring拦截,然后再当做另外来处理。可以是可以,但是效率上就会觉得多了一步。
但是,另一方面,我们在规划url时,可能会尽可能的减短,以方便用户的输入;同时,规划url时,才不会考虑spring的效率呢,也就是url设计先行。这个时候,通常不会有spring这个特定的路径;也就是spring要将就url的规划。也就是要对 / 进行拦截了。
2. 如何直接对根路径进行拦截
还是直接说流程吧:
必须在web.xml中加入如下:
<welcome-file-list> <welcome-file></welcome-file></welcome-file-list>
此时,web服务器就知道,根路径不要web服务器来处理,而是由程序自身来处理。这时,index.html也就不起作用了。
然后,根路径就被 HomeCtroller拦截了;因为其中配置了对"/"的映射。
或者,没有controller,只有view,也可以简化,在servlet的配置文件中加入:
如果同时都有。反正只会有一个起作用。一般是先扫描的起作用。谁会先扫描到,就是看和<mvc:annotation-driven />比较,谁在前面。<mvc:view-controller path="/" view-name="index"/>
- web项目访问首页问题
- web项目首页跳转问题
- 发布Web项目时访问域名打开首页
- web项目设置默认首页
- Web项目中访问路径问题
- Tomcat部署Web项目访问404问题
- java设置web首页访问action
- Java Web项目中web.xml中默认首页访问的是:WebContent目录下的文件
- 绑定域名直接访问javaweb项目首页
- 关于Web项目发布时跳转首页
- 关于Tomcat不能访问首页的问题
- 访问Linux的Apache web项目文件写入不成功问题
- 使用MyEclipse发布Web项目时URL访问路径问题。
- 使用MyEclipse发布Web项目时URL访问路径问题。
- tomcate启动maven项目首页404问题
- SpringMVC默认访问首页配置及web.xml配置
- SpringMVC默认访问首页配置及web.xml配置
- java设置web首页访问action 为前台首页准备数据
- Lua开发环境搭建
- Spring中的事务管理
- 解决TextView在显示文字的时候,一行还没显示满就跳到下一行(最新)
- 获取图片文件尺寸效率比较
- Android四大主件之服务Service
- web项目访问首页问题
- 云计算 基础
- 使用IOCP需要注意的一些问题~~(不断补充)
- zeromq高水位
- MATLAB 图像处理小实践
- Expectation Maximization
- 静态库没有更新
- 2014年7月华为校招机试真题1
- 如果本地化自己的iOS App(iOS8 & xcode6)