效果图

1.在web.xml中加上如下配置.其实就是利用servlet的目录过滤,这样所有带有news的地址都会被拦截

一定要放在.actiobn下面,否则springmvc会无法找到对应的controller

  <!-- restfull风格约定,去除前台超链接访问的后缀 -->
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/news/*</url-pattern>
</servlet-mapping>

2.在springmvc.xml中配置视图解析器

 <!-- 视图解析器(jsp)-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- <property name="order" value="1"/> -->
<property name="prefix" value="/WEB-INF/"/>
<property name="suffix" value=".jsp"/>
</bean>

3.接下来在你的controller中加入一个方法,我以newsController为例,增加一个go方法用于超链接的跳转

 /*前台超链接跳转处理*/
@RequestMapping("/go/{name}")
public String go(@PathVariable String name) {
return name;
}

4.前台访问的地址

<li><a href="${pageContext.request.contextPath}/news/newsController/go/dataAnalysis">网站分析</a></li>

go后面传递的是页面的名称,这样即使我们传递dataAnalysis.html,只需要在上面的newsController的go方法中把后缀去掉,依然可以访问到正确的页面

(当然如果你用了拦截器自己放行就ok了)

拓展:首页的无后缀访问

首页是用户最先访问的一个页面,但我的首页不希望和普通的新闻页面一样带着news之类的字符串,实现方式也很简单

1.在web.xml中增加如下配置

 <!-- 首页 -->
<servlet-mapping>
<servlet-name>IndexServlet</servlet-name>
<url-pattern>/index</url-pattern>
</servlet-mapping> <!-- 后台 -->
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/manage</url-pattern>
</servlet-mapping>

说明:创建servlet生成的是以下映射,上面是为了实现我们自定义的地址能够映射到我们的servlet上

 <servlet-mapping>
<servlet-name>IndexServlet</servlet-name>
<url-pattern>/IndexServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>

2.创建servlet,在其中实现转发

 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
request.getRequestDispatcher("/WEB-INF/index.jsp").forward(request, response);
} /**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}

这样就ok了

最新文章

  1. Mac 可设置环境变量的位置、查看和添加PATH环境变量
  2. js基础知识梳理(最简版)
  3. RPC与hadoop
  4. 单片机联网需求攀升 WIZnet全硬件TCP/IP技术崛起
  5. php+MySQL+Ajax
  6. Linux部分命令使用记录(实时更新)
  7. Android Studio解决unspecified on project app resolves to an APK archive which is not supported
  8. 比特币钱包应用breadwallet源码
  9. 不同系统间传输float型数据
  10. MyEclipse开发WebService教程
  11. 教你50招提升ASP.NET性能(一):缓存是最后的手段
  12. [转]Oracle ORA-01403: no data found Exception SYS_REFCURSOR
  13. 驱动lx4f120h,头文件配置,没有完全吃透,望指点
  14. Navicat for mysql 导出sql文件 导入sql文件
  15. spring mvc 接受多对象的处置
  16. c#之Async、Await剖析
  17. ==与equals()方法的不同
  18. Dijkstra【迪杰斯特拉算法】
  19. 域名注册域名解析域名绑定 dns服务器解析 域名记录的添加 记录类型含义@ www 访问域名请求过程
  20. kafka中zookeeper的操作

热门文章

  1. datagridview合并相同单元格
  2. 宏的使用 extern
  3. 软件——机器学习与Python,if __name__ == &#39;__main__&#39;:函数
  4. CentOS 7 virt-manager 无法连接本地的hypervisor
  5. js进阶 12-15 jquery如何实现点击button显示列表,点击其它位置隐藏列表
  6. 像Bootstrap一样比较热门的前端框架有哪些
  7. 每日技术总结:vue router传参方式,js获取设备高度
  8. Shiro基础知识08----拦截器介绍(转)
  9. 3D 应用程序性能
  10. ibatis 开发中的经验 (三)Struts+Spring+Ibatis 开发环境搭建