jeecms网站维护,遇到了直接通过链接的方式访问静态页面,jeecms官网也做了详细的解答,但是没有得到满意的结果。但是通过自己的深入研究以及别人的帮助,发现了一个很好的解决方法。

首先说明一下jeecms网站的访问特点,例如这个链接:http://127.0.0.1:8080/news/3567.jhtml

前面为ip地址:127.0.0.1

端口号:8080

栏目访问路径:news

文章id:3567

访问后缀:.jhtml

jeecms项目的web.xml对访问的形式做了过滤,后台有3个过滤器,如下

<filter>
<filter-name>processTime</filter-name>
<filter-class>com.jeecms.common.web.ProcessTimeFilter</filter-class>
</filter>
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter>
<filter-name>osivFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
          这里分别为时间的处理,字符编码的处理以及hibernate的session的处理,这些跟访问的链接没有什么关系。
          访问静态的html页面,在web.xml中可以找到对应servlet的代码,如下

<servlet-mapping>
<servlet-name>JeeCmsFront</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
         这样可以找到对应的文件,其实就是jeecms-servlet-front.xml
<servlet>
<servlet-name>JeeCmsFront</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/jeecms-servlet-front.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
         在jeecms-servlet-front.xml中没有找到对前台访问链接的过滤对应的类,但是在jeecms-servlet-front.xml中可以找到这个文件,其实就是jeecms-servlet-front-action.xml文件,这个文件中包含了很多的控制层代码,重要的代码如下:
<bean id="dynamicAct" class="com.jeecms.cms.action.front.DynamicPageAct"/>

前面说了很多,重要的就是在DynamicPageAct类里面,前台访问的链接主要通过DynamicPageAct里面的dynamic处理,代码如下
/**
* 动态页入口
*/
@RequestMapping(value = "/**/*.*", method = RequestMethod.GET)
public String dynamic(HttpServletRequest request,
HttpServletResponse response, ModelMap model) {
// 尽量不要携带太多参数,多使用标签获取数据。
// 目前已知的需要携带翻页信息。
// 获得页号和翻页信息吧。
int pageNo = URLHelper.getPageNo(request);
String[] params = URLHelper.getParams(request);
PageInfo info = URLHelper.getPageInfo(request);
String[] paths = URLHelper.getPaths(request);
int len = paths.length;
if (len == 1) {
//连接后的第一个参数
if(paths[0].equals("xxx")){
//返回静态页的文件位置
return "xxx.html";
}
// 单页
return channel(paths[0], pageNo, params, info, request, response,
model);
} else if (len == 2) {
if (paths[1].equals(INDEX)) {
// 栏目页
return channel(paths[0], pageNo, params, info, request,
response, model);
} else {
// 内容页
try {
Integer id = Integer.parseInt(paths[1]);
return content(id, pageNo, params, info, request, response,
model);
} catch (NumberFormatException e) {
log.debug("Content id must String: {}", paths[1]);
return FrontUtils.pageNotFound(request, response, model);
}
}
} else {
log.debug("Illegal path length: {}, paths: {}", len, paths);
return FrontUtils.pageNotFound(request, response, model);
}
}
         这样就可以访问jeecms项目下的静态页了,如上代码可以通过http://127.0.0.1:8080/xxx.html访问到项目WebRoot下的xxx.html页面。访问其它的页面,可以修改一下上述代码。
还有另一种方式:在spring-mvc的配置文件中加入以下代码可以实现上述功能
<!-- 将springmvc不能处理的请求交给tomcat 处理-->
<mvc:default-servlet-handler/>
<mvc:annotation-driven/>

---------------------
作者:山边的微风
来源:CSDN
原文:https://blog.csdn.net/u012606318/article/details/53394764
版权声明:本文为博主原创文章,转载请附上博文链接!

Jeecms网站直接访问html静态页面的更多相关文章

  1. ASP.Net MVC如何访问的静态页面

    MVC开发中,因为View文件夹下的web.config文件默认会把任何方法的请求的任何文件,路径都交给 System.Web.HttpNotFoundHandler 去处理.起到Controller ...

  2. asp.net之动态页面和静态页面的区别

    asp.net之动态页面和静态页面的区别 当我开始接触web开发的时候,首先学到的是html.css.js这一类网页语言,通过布局可以搭建出一个静态网站,效果也跟我们上网时经常看到的一些网站一样了.于 ...

  3. 利用VS Code在Azure上构建部署静态页面

    0x00 前言 前一段时间,我找到了Jendrik Illner的个人网站.除了那里的精彩文章,网站的主题也吸引了我的注意力,而且我发现该网站的主题采用了Hugo的Academic主题. 然后,我认为 ...

  4. vue+node+mongoDB 火车票H5(四)---完成静态页面

    各项配置都好了,就可以开始写静态页面了,先别急着写,看一下页面又哪些公用的部分可以提取出来的,统一放到components组件文件夹中 header头部文件夹放一些头部常用组件,如首页的banner切 ...

  5. 在CentOS 上搭建nginx来部署静态页面网站

    在centOs 上搭建nginx来部署静态页面网站 一.部署服务器环境 nginx:轻量级.高性能的HTTP及反向代理服务器,占用内存少,并发能力强,相比老牌的apache作为web服务器,性能更加卓 ...

  6. 学习MVC之租房网站(十二)-缓存和静态页面

    在上一篇<学习MVC之租房网站(十一)-定时任务和云存储>学习了Quartz的使用.发邮件,并将通过UEditor上传的图片保存到云存储.在项目的最后,再学习优化网站性能的一些技术:缓存和 ...

  7. c# 网站生成静态页面

    在一些需要经常更新页面数据的网站中,一般访问量不是很大的都直接发布的是带后台代码,每次访问都是有数据库交互的.但是一旦访问量增加了,那么这些服务器开销变成本就要考虑进来了,像一些文章,后台编辑后,文章 ...

  8. 在MVC的项目中访问静态页面

    MVC在生成项目的时候会生成的WEB-INF底下.这个文件夹下面的文件是受保护的,都会走MVC的流程, 但是我希望在WebContent底下可以使用静态页面, 那么需要进入springmvc-serv ...

  9. MVC1-5直接访问静态页面

    MVC模式下默认是无法访问站点内静态页面,昨日百度找了半天试了半天才试成功. 默认在Views文件外的静态页面可以访问,若要访问Views里的静态页面则需要修改View文件夹中的web.config: ...

随机推荐

  1. 异常处理记录: Unable to compile class for JSP

    出错信息截图: 经过搜索引擎的帮助, 发现这些引发异常的可能原因: 1. tomcat的版本必须大于等于JDK的版本 2. maven中的jar与tomcat中jar冲突 看看pom.xml, 果然j ...

  2. [JZOJ4649] 【NOIP2016提高A组模拟7.17】项链

    题目 描述 题目大意 给你一堆小串,每个小串都有一定的分数. 让你构造一个字符串,若子串中出现了之前的小串,就可以得到对应的分数(可以重复) 问最大分数. 思考历程 一看这题就知道是什么字符串方面的算 ...

  3. 创建vue项目及引入插件

    部署开发环境 安装淘宝镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org 安装webpack cnpm install ...

  4. 一个windows 两个jar

    设置两个子JAVA_HOME,一个总设置两个子JAVA_HOME:JAVA_HOME6 = C:\Program Files\Java\jdk1.6.0_43JAVA_HOME8 = C:\Progr ...

  5. centOS7.2防火墙常用配置(转)

    centOS7.2防火墙常用配置   firewall-cmd --state #查看默认防火墙状态(关闭后显示not running,开启后显示running) systemctl stop fir ...

  6. lvs + keepalived + nginx + tomcat高可用负载反向代理服务器配置(二) LVS+Keepalived

    一.安装ipvs sudo apt-get install ipvsadm 二.安装keepalived sudo apt-get install keepalived 三.创建keepalived. ...

  7. [洛谷P2472] [SCOI2007]蜥蜴

    题目链接: 蜥蜴 题目分析: 一道网络流,先来分析一下问题: 在一个\(r*c\)的图中分布了一些数,其他地方都用\(0\)填充,我们分别从指定的一些数出发,每次可以移动到周围距离为\(d\)以内的数 ...

  8. java基础之Calender类

    Calendar: Calendar类概述 Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR.MONTH.DAY_OF_MONTH.HOUR 等 日历字段之间的转换提供了一些方法,并 ...

  9. 05-python 学习第五天-简单验证码

    通过python 随机数可以制作简单的验证码. 1.0版本来了,这验证码,只有一个码,功能虽然达不到,逻辑还是准确的,目前还不能算是验证码,但是我们会继续完善的. import random # 导入 ...

  10. <每日一题>题目17:super()继承相关的面试题

    class A(object): def go(self): print("go A go!") def stop(self): print("stop A stop!& ...