记得一次面试,有这样一道面试题:
jsp页面当中需要用到ajax的实现,此时需要调用java的url;此时的问题是如果用户查看页面源码就能看到真是的url,这个问题如何避免。
说实话,AJAX我用的只是皮毛,只会用js获取参数,然后传递给java应用程序,由应用程序来加工处理。如果有返回需求的话,可以以xml的方式返回数据。
自己使用的时候没有考虑过url暴露的问题,看到这个题目,当时没有了注意。下来想想,我自己的想到的实现方法是这样的,就是指定自己的一套规则,然后页面上写的url按照规则来组织,然后传到一个中间件上:这个中间件的功能就是解析这些url,得到最终的真实的url,然后由由这个中间件转到相应的请求上去处理。
最近听同学说,好像url重写可以更好的实现,就看了一下
1.下载urlrewrite,官方下载地址:http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.6.zip
2.将以下代码添加到web.xml里
Xml代码
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.建立一个 urlrewrite.xml
1<?xml version="1.0" encoding="utf-8"?>
2<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
3 "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
4<urlrewrite>
5 <rule>
<from>^/world/(.*)$</from>
<to>/world.jsp?tid=$1</to>
</rule>
9</urlrewrite>
rule是url重写规则,from是显示出来的地址,to是映射的实际地址,$1是重写参数,可以为多个,()里是匹配的正则表达式.
在项目中新建world.jsp,启动tomcat,输入
http://localhost:8080/mysite/world/1
mysite是你的项目名
实际上访问的是http://localhost:8080/mysite/world.jsp?tid=1
这样就简单的实现了伪静态的效果
在ajax当中,var url = "";这个地方写个虚拟的访问路径,然后将解析规则用正则表示到urlrewrite.xml当中,那么到后台的时候,就可以自动解析成真实的路径,从而达到对url的保护。
分享到:
相关推荐
此外,还可以通过其他方式来处理回发问题,例如使用 JavaScript 或 AJAX 技术来实现无刷新的页面更新,从而保持 URL 的一致性。 综上所述,通过上述步骤可以在 ASP.NET 应用程序中实现 URL 重写功能,不仅可以改善...
3. **隐藏真实路径**:可以隐藏敏感信息,比如数据库ID,避免直接暴露给用户。 4. **SEO优化**:搜索引擎更喜欢有意义的URL,URLRewrite有助于提高网页在搜索结果中的排名。 5. **重定向**:当页面移动或URL结构变更...
出于安全考虑,避免在`addJavascriptInterface`中暴露敏感方法,因为这可能导致代码注入攻击。另外,注意定期更新WebView组件,以获得最新的安全补丁和性能优化。 综上所述,Android中嵌入本地HTML并支持AJAX请求和...
使用Ajax技术发起GET请求时,可以将参数拼接在URL后面。例如,上述代码中的GET请求方式: ```javascript var url = "Hello?name=zhangsan"; xmlReq.open("GET", url, true); xmlReq.send(null); ``` 这里,我们...
1、获取GlobalAjaxListener对象:var listener = GlobalAjaxListener(非模块化的则暴露在window) 2、初始化参数: listener.extend(opts) opts对象属性: 字段 类型 默认值 说明 onRedirectResponse function(url,...
在安全方面,我们应避免暴露文件的绝对路径,可以使用URL重写技术,让客户端通过如"/uploads/image.jpg"这样的伪静态路径访问图片。此外,为了保护用户隐私,应考虑对上传的图片进行水印处理或添加防盗链机制。 在...
- 使用正确的编码设置来避免乱码问题。 ### 31. MVC - **MVC** (Model-View-Controller) 是一种常见的设计模式,用于分离业务逻辑、数据模型和表示层。 - **Model** 负责数据和业务逻辑,**View** 负责显示数据,*...
- 下载时应避免直接暴露文件路径,使用URL重写或动态生成下载链接以提高安全性。 8. **用户体验**: - 提供进度条显示文件上传进度,提升用户体验。这可能需要JavaScript库如jQuery或Ajax技术来实现异步通信。 9...
- **部署结构**:为了安全起见,通常只将公有目录(Public)暴露在 Web 服务器根目录下。 **2.4 项目编译** - **编译目的**:提高运行效率,减少运行时的资源消耗。 - **编译过程**:将某些动态生成的文件转换为...
然后,在JavaScript中,可以使用`jQuery.ajax()`或fetch API发起请求,例如: ```javascript jQuery.ajax({ type: 'GET', url: wpajax.ajax_url + '?action=custom_action', success: function(response) { //...
还可以使用URL重写规则隐藏实际的文件路径,只通过服务器端脚本暴露播放接口。 5. **性能优化**:对于大型视频库,可以考虑使用流式传输技术,如HTTP Live Streaming (HLS) 或MPEG-DASH,它们可以根据用户的网络...
5. `rewrite`:配置URL重写规则,使DWR请求更难以被发现。 6. `filters`:添加处理请求和响应的过滤器,可以用于安全检查或日志记录。 **PPT**:这是一套DWR的学习教程,可能包括以下主题: 1. **DWR简介**:讲解...
在这个OA项目中,"将方法全部封装起来"意味着将业务逻辑和数据处理封装在类或对象中,仅暴露必要的操作接口。 3. **继承**:继承允许一个类(子类)从另一个类(父类)继承属性和方法,减少了代码重复,增强了代码...
- 通过URL重写。 - 通过隐藏表单字段。 8. **session的创建与销毁** - **创建**: 当客户端首次访问服务器时,服务器会创建一个新的session。 - **销毁**: session可以通过调用`invalidate`方法手动销毁,或者在...
这种方法的好处是直接在后端处理,避免了前端的复杂性。但缺点是每次创建或编辑表单时都需要执行此逻辑。 ```python class PushRuleForm(forms.ModelForm): def __init__(self, *args, **kwargs): if 'request' ...
此方法可以保持状态,并且不会将数据暴露在 URL 中。 #### 3. 斐波那契数列计算 **题目**:一列数的规则如下: 1、1、2、3、5、8、13、21、34 求第 30 位数是多少,用递归算法实现。 ```csharp public class Main...
- 在Web环境中,交互性通常通过JavaScript、AJAX技术实现,提供无需刷新页面的动态内容更新。 3. Web开发相关技术: - HTML(超文本标记语言)和CSS(层叠样式表)是构建网页的基础。 - JavaScript是客户端脚本...
图片服务通常会使用友好的URL,如`/images/123.jpg`,而不是暴露实际的存储路径。这需要服务器配置URL路由规则,将请求映射到正确的图片资源。对于SEO优化和用户体验都有积极影响。 5. **权限控制**: 图片管理...
- 不安全,因为数据暴露在URL中。 - 限制数据长度,不能发送大量数据。 - **POST**: - 数据放置在HTTP请求的消息主体中。 - 安全性相对较高,数据不暴露在URL中。 - 没有数据长度限制,可以发送大量数据。 ###...