是否可以阻止远程访问网页? 假设我有我的page1(主页),它显然可以通过其URL访问。然后我有page2(管理页面),我只想从部署我的Web应用程序的机器上访问它。
这可能听起来像this种情景。不应该远程访问page2而不是管理控制台。
答案 0 :(得分:0)
请更准确地说你在使用什么?
我假设您不使用任何框架,因此您只有serlvets和.jsp页面。
首先,将adminpage.jsp放到WEB-INF文件夹中。从您的应用程序中看不到此文件夹的内容(未经您的许可)。
其次,创建将拦截您对servlet的请求的过滤器(尝试对所有请求使用servlet,不要使用直接链接到.jsp页面,因为这只是添加一些安全性的方法。这些servlet应该像控制器一样在MVC)。要创建Filter
,您需要添加将实现接口Filter
public MyFilter implements Filter {
...
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain)
throws IOException, ServletException {
if (request.getRemoteAddr.equals("your server address") {
filterChain.doFilter(request,response);
}
}
...
}
您会看到,如果IP地址与您的服务器地址相同,则此请求将继续进行。过滤器界面有两个方法init()
和destroy()
,您可以将它们留空。要将过滤器与servlet连接,请将以下内容添加到web.xml中。
<filter>
<filter-name>myFilter</filter-name>
<filter-class>fullPackagePath.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>/url-to-the-admin-panel-servlet</url-pattern>
</filter-mapping>
当然,您需要将servlet与url一起转发到admin.jsp页面。