访问Webapp目录下面的html文件变为代码

一、问题由来

  一位朋友最近在学习JavaWeb开发,使用Servlet做练习的时候,突然出现一个问题。他去访问自己创建的html文件时,发现返回的数据是html代码,而不是解析后的页面

很是疑惑,自己尝试着解决这个问题,很久都没有解决问题,然后就找到我。问题复现情况如下,

正常来说,访问html页面,浏览器可以正常解析html代码,可是这位朋友访问时却出现了这种情况,让他很是苦恼。

 

二、问题分析

  对于有经验的开发来说,看到这个问题大致能够猜测出问题出在哪里,多半是返回的数据格式不对。服务器返回给浏览器的数据

格式常规的有几种,比如text/html 格式,表示文本格式;application/json 表示JSON数据格式; application/octet-stream 就表示二进制

数据,表示下载文件。自己去打开浏览器调试工具,然后查看返回的数据格式,发现返回的JSON格式的数据,因此浏览器就无法正常解析。

 

三、解决方案

        问题搞清楚后,就尝试着去解决问题。自己去看了一下他写的代码,发现他写了一个过滤器,用来统一处理请求和响应数据的中文乱码。

继续查看他配置的路径是/*,拦截所有请求,如图所示。看到这里问题就彻底搞清楚啦。解决问题的方式就很好处理,配置路径的时候,可以多配置一个前缀。

比如过滤器的路径配置为/api/*,就表示匹配路径包含xxx/api/xxx 的所有请求。在写Servlet处理请求的时候,路径就可以配置为/api/user或者/api/system等等。

修改后过滤器拦截路径配置示例如下,

 

修改后的Servlet路径配置示例如下,

 

最终的测试页面访问效果如下,

 

访问Servlet结果如下,

问题解决。

总结:真实做开发,做项目的时候,后台请求的路径一般都会配置为多级,比如/a/b/c,很少配置为一级。

因为配置多级可以根据实际需要来对路径做拦截处理,如果只配置为一级,就不好根据路径做拦截处理。

posted @ 2024-03-16 10:10  一只爱阅读的程序员  阅读(37)  评论(0编辑  收藏  举报