springMvc+页面静态化+tomcat+nginx
来源:互联网 发布:五十知天命六大而耳顺 编辑:程序博客网 时间:2024/06/07 04:04
项目背景:SpringMvc+tomcat部署
期望改变:把项目静态化,并且把这部分静态化的html使用nginx
问题:我们知道,如果你在nginx的root目录放置html文件,可以直接使用http://xxx/productList/a.html
但是一般我们使用springMvc会这么构造url http://xxx/productList/a 而不会有.html
解决:
这里页面静态化就不多说了,主要讲nginx
//主要是下面规则
location ~ ^/productList/[\w|-]+$ {
rewrite ^/productList/([\w|-]+)$ /productList/$1.html last;
}
面 上面的规则就是使用rewrite转发到html
讲解下正则:之前学习正则非常头疼,老是记不住,于是就走了个极端,把正则规则每日背诵下,现在发现 写正则和读正则变得非常容易
真是熟能生巧
正则里面长会出来$1 $2 $3这样的东西 它的意思其实很简单
^/productList/([\w|-]+)$这条正则的意思 匹配/productList/abd-ddd 这样的url
然而注意到括号里吗([\w|-]+) 记住 从你的正则从左往右数,遇到一个正则 可以用$加数字代替
于是上面的意思也就是^/productList/$1$
看下面的例子:^/p(ro)duct(List)/([\w|-]+)$ ^/p$1duct$2/$3$
或者这么理解 $1=po $2=List $3=[\w|-]+
那么就可以$1 $2 .... $10000 只要你括号够多
那有时我们需要括号但是又不想查出来匹配成$1 $2这样的那怎么办 那就使用(?:)匹配但不作为筛选结果使用
^/p(?:ro)duct(List)/([\w|-]+)$ ^/p(?:ro)duct$1/$2$
对于我们不常接触正则 又想使用 但是每次见面有很害怕的人来说,花点时间背诵正则来的实惠
把html静态化的一种方案拿出来供大家参考 不过需要自己引入httpclient包
public class HtmlGenerator { /** 根据模版及参数产生静态页面 */ public static boolean createUTF8HtmlPage(String url,String htmlFileName){ String statusCode=""; String returnResponse; //创建一个HttpClient实例充当模拟浏览器 HttpClient httpClient = HttpClientBuilder.create().build(); //创建GET方法的实例 HttpGet get = new HttpGet(url); //设置Get方法提交参数时使用的字符集,以支持中文参数的正常传递 get.addHeader("Content-type", "text/html;charset=UTF-8"); RequestConfig requestConfig = RequestConfig.custom() .setSocketTimeout(12000).setConnectTimeout(12000).build();//设置请求和传输超时时间 get.setConfig(requestConfig); HttpResponse response; try{ response = httpClient.execute(get); HttpEntity entity = response.getEntity(); returnResponse = EntityUtils.toString(entity); statusCode = response.getStatusLine().getStatusCode()+""; if(!"200".equals(statusCode)){//非正常200 System.out.println("数据长度:" + returnResponse.length() + "返回状态码:" + response.getStatusLine()); }else{ //将解析结果写入指定的静态HTML文件中,实现静态HTML生成 FileHelper.fastWriteFileUTF8(htmlFileName,returnResponse); } EntityUtils.consume(entity); } catch (ClientProtocolException e) { statusCode="ClientProtocolException"; e.printStackTrace(); } catch (IOException e) { statusCode="IOException"; e.printStackTrace(); }catch (Exception e) { statusCode="Exception"; e.printStackTrace(); } finally { get.releaseConnection(); get.abort(); } return "200".equals(statusCode); }
0 0
- springMvc+页面静态化+tomcat+nginx
- nginx + tomcat 配置静态页面嵌套静态页面 shtml/html
- SpringMVC + FreeMarker 页面静态化
- 百度UEditor图片上传、SpringMVC、Freemarker、Tomcat、Nginx、静态资源
- 百度UEditor图片上传、SpringMVC、Freemarker、Tomcat、Nginx、静态资源
- springMVC freemarker实现页面静态化
- springMVC、freemarker页面半自动静态化
- springmvc+freemaker实现页面静态化
- SpringMVC访问静态页面
- SpringMVC访问静态页面
- SpringMVC-访问静态页面
- nginx 静态页面访问
- Nginx:页面输出缓存(页面静态化)的设计方案?
- Nginx:页面输出缓存(页面静态化)的设计方案?
- SpringMVC+Freemarker生成静态页面
- SpringMvc 静态页面的访问
- 部署静态页面到nginx
- 基于centos6.5快速搭建jdk,tomcat,nginx,显示个人静态页面(基于yum)
- cannot open git-upload-pack问题 cannot open git-upload-pack
- POJ-1861 Network
- struts2的action里定义的serialVersionUID是干什么用的啊?
- 细说sybase日志-
- ExecutorThreadHandler 消息处理器
- springMvc+页面静态化+tomcat+nginx
- Search for a Range
- iOS中关于URL字符串的处理
- oracle数据库导入导出命令!
- vs2010快捷键大全
- UVA 11971 - Polygon(概率+几何概型)
- Google面试题 数组中第K小的数字
- malformed or corrupted AST file:"Unable to load module
- LeetCode-Maximal Rectangle