jsp限制访问 - 保护页面的3种方法

一.WEB-INF文件夹保护页面

众所周知,web-inf文件夹的文件是不能直接访问的,所以,在开发的时候可以直接将jsp页面放入该文件夹中。通过页面转发机制,来访问。(转发是一个内部操作,可以通过Servlet对其进行访问)

二.web.xml保护页面

如果不想通过WEB-INF文件夹防止页面直接访问,可以通过web.xml的安全机制,实现页面的保护作用。

通过<security-constraint>元素设置受保护的url地址

具体操作:

在web.xml文件中进行如下设置:

<security-constraint>

<web-resource-collection>

<web-resource-name>no-acess</web-resource-name>

<url-pattern>/test/*</url-pattern>

</web-resource-collection>

<auth-constraint>

<role-name>admin</role-name>

</auth-constraint>

</security-constraint>

说明:<auth-constraint>定义了一个名为admin的角色,如果用户没被赋予这个角色,那么就不能直接访问受保护的页面了.

然而,因为转发是一个内部操作,所以,上面所讲的安全限制对转发并没有任何影响。

三.在web.xml中配置过滤器保护

过滤器可以对系统中指定的url地址进行过滤。可以影响到应用系统的转发机制,对指定的页面和请求都能被过滤器过滤。

时间: 2024-07-31 11:35:36

jsp限制访问 - 保护页面的3种方法的相关文章

jsp网站访问次数统计的几种方法

我采用的是jsp网页,但是不管采用什么语言,原理是一样的. 第一种,单页面统计.就是说,只要点击这个页面就会统计一次. <body> <%!//在这种标记中定义的变量为全局变量 int count=0; synchronized void count(){ count++; } %> <% count(); out.println("这是第"+count+"个访问者!"); %> </body> 第二种,是利用jsp的

PHP把数据传到下一个页面的4种方法

<?php /*数据存到数据库成功之后想跳转到下一个页面,PHP然后把数据也传到下一个页面 php里面当页面读取结束的时候,所有的变量将全部清空,所以需要通过别的手段来传值, */ //1.通过url参数 比如:在跳转链接上加上?id1=$id1&id2=$id2 //这个最常用,也最省资源,但传递的内容有限. ///2.保存到session.将数据保存到特定的session中,到下个页面再从session中取出 session_start(); $emailaddress = "

用css隐藏页面的5种方法

1.透明度:opacity: hide{opacity:0;} 2.visibility: hide{visibility:hidden}; 3.display:hide{ display:none}4.positon hide{position:aboslute;top:-9999px;left:-9999px}5.clip-path: hide{clip-path:polygon(0px 0px,0px 0px,0px 0px,0px 0px)}

Action访问Servlet API的三种方法

一.为什么要访问Servlet API ? Struts2的Action并未与Servlet API进行耦合,这是Struts2 的一个改良,从而方便了单独对Action进行测试.但是对于Web控制器而言,不访问action是不行的,Struts提供了一种比较简单的方式来访问Servlet API . 二.通常我们需要访问的Servlet API 是 HttpSession.HttpservletRequest.ServletContext,分别对应了JSP内置对象 session,reques

struts2的action访问servlet API的三种方法

学IT技术,就是要学习... 今天无聊看看struts2,发现struts2的action访问servlet API的三种方法: 1.Struts2提供的ActionContext类 Object get(Object key);可以获取request属性 Map getSession():可以得到session属性 Map getAppliction():可以得到ServletContext实例 2.action类实现 ServletContextAware,ServletRequestAwa

HTTPS的证书未经权威机构认证的情况下,访问HTTPS站点的两种方法

注意一下文章中提到的jsse在jdk1.4以后已经集成了,不必纠结. 摘 要 JSSE是一个SSL和TLS的纯Java实现,通过JSSE可以很容易地编程实现对HTTPS站点的访问.但是,如果该站点的证书未经权威机构的验证,JSSE将拒绝信任该证书从而不能访问HTTPS站点.本文在简要介绍JSSE的基础上提出了两种解决该问题的方法. 引言 过去的十几年,网络上已经积累了大量的Web应用.如今,无论是整合原有的Web应用系统,还是进行新的Web开发,都要求通过编程来访问某些Web页面.传统的方法是使

MFC 访问控件的几种方法

访问控件的方法 控件是一种交互的工具,应用程序需要通过某种方法来访问控件以对其进行查询和设置.访问控件有四种方法: 利用对话框的数据交换功能访问控件.这种方法适用于自动创建的控件.先用ClassWizard为对话框类加入与控件对应的数据成员变量,然后在适当的时侯调用UpdateData,就可以实现对话框和控件的数据交换.这种方法只能交换数据,不能对控件进行全面的查询和设置,而且该方法不是针对某个控件,而是针对所有参与数据交换的控件.另外,对于新型的Win32控件,不能用ClassWizard创建

JSP页面间传递参数的5种方法

JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp?action=transparams&detail=directe">直接传递参数< /a> 特别的在使用response.sendRedirect做页面转向的时候,也可以用如下代码: response.sendRedirect("thexuan.jsp?acti

Angular刷新当前页面的几种方法

默认,当收到导航到当前URL的请求,Angular路由器会忽略. <a routerLink="/heroes" routerLinkActive="active">Heroes</a> 重复点击同一链接页面不会刷新. 从Angular 5.1起提供onSameUrlNavigation属性,支持重新加载路由. @NgModule({ imports: [RouterModule.forRoot(routes, {onSameUrlNavig