Struts2如何通过过滤器防止直接访问jsp页面

时间:2022-10-31 17:14:43
有没有大神有详细点的例子,包括如何配置?
struts2有对过滤器的支持吗?或者只需要配置web.xml就可以?
求详细点的教程或例子。。
还有,如果是直接放在webinf里,又该如何写action呢?为什么说不好维护?

7 个解决方案

#1


web.xml配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>myStruts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>myStruts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>



struts.xml配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="mystruts" extends = "struts-default">
<action name="helloWorld" class="action.HelloWorld">
<result name="success">
/WEB-INF/jsp/helloWorld.jsp
</result>
</action>
</package>
</struts>



这是我写struts程序的两个配置文件。

#2


引用 1 楼 wanglin1037 的回复:
web.xml配置文件如下:


Java code??



12345678910111213141516

<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"    xmlns:xsi="http://www.w3.or……


如果是页面放在webroot下呢?

#3


直接写helloWorld.jsp

#4


引用 3 楼 wanglin1037 的回复:
直接写helloWorld.jsp

页面放在webroot里面是可以直接访问JSP的啊,struts2那个filter不能拦截吧?

#5


用struts一般都是放在web-inf下面,安全性高

#6


3Q啦,试试看

#7


必须写在 webRoot下啊,直接可以访问

#1


web.xml配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>myStruts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>myStruts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>



struts.xml配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="mystruts" extends = "struts-default">
<action name="helloWorld" class="action.HelloWorld">
<result name="success">
/WEB-INF/jsp/helloWorld.jsp
</result>
</action>
</package>
</struts>



这是我写struts程序的两个配置文件。

#2


引用 1 楼 wanglin1037 的回复:
web.xml配置文件如下:


Java code??



12345678910111213141516

<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"    xmlns:xsi="http://www.w3.or……


如果是页面放在webroot下呢?

#3


直接写helloWorld.jsp

#4


引用 3 楼 wanglin1037 的回复:
直接写helloWorld.jsp

页面放在webroot里面是可以直接访问JSP的啊,struts2那个filter不能拦截吧?

#5


用struts一般都是放在web-inf下面,安全性高

#6


3Q啦,试试看

#7


必须写在 webRoot下啊,直接可以访问