从网页隐藏JSP扩展
我正在开发一个web应用程序(J2EE、Struts2、JSP、Tomcat) 我想从网页中隐藏.jsp扩展名 下面是my web.xml的一些内容:从网页隐藏JSP扩展,jsp,tomcat,jakarta-ee,struts2,Jsp,Tomcat,Jakarta Ee,Struts2,我正在开发一个web应用程序(J2EE、Struts2、JSP、Tomcat) 我想从网页中隐藏.jsp扩展名 下面是my web.xml的一些内容: <filter> <filter-name>STSDispatcher</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher
<filter>
<filter-name>STSDispatcher</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>STSDispatcher</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>Login.jsp</welcome-file>
</welcome-file-list>
STSDispatcher
org.apache.struts2.dispatcher.FilterDispatcher
STSDispatcher
/*
Login.jsp
我搜索了一下,找到了这个解决方案:
<servlet>
<servlet-name>myFoo</servlet-name>
<jsp-file>myJSPfile.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>myFoo</servlet-name>
<url-pattern>/main</url-pattern>
</servlet-mapping>
美孚
myJSPfile.jsp
美孚
/主要
我试过下面这样做,但没有成功:
例如,我有“alert.jsp”,这是我的web.xml:
<servlet>
<servlet-name>alert</servlet-name>
<jsp-file>/alert.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>alert</servlet-name>
<url-pattern>/alert</url-pattern>
</servlet-mapping>
警觉的
/alert.jsp
警觉的
/警觉的
但我有一个错误:
“没有为命名空间/和操作名称警报映射的操作。-[未知位置]”
我该怎么办
提前感谢。这种方法应该是有效的。另一种选择是编辑htaccess文件,添加此
RewriteEngine On
RewriteRule ^([0-9a-zA-Z]+)$ $1.jsp
执行此操作后,任何xyz.jsp都将是xyz。事实上,我在几天前发现了这种方法
您可以将带有JSP的目录结构放入WEB-INF中,然后使用servlet根据请求的URL转发给JSP servlet将映射到通配符模式,如:
<servlet-mapping>
<servlet-name>ForwardToJspServlet</servlet-name>
<url-pattern>*.page</url-pattern>
</servlet-mapping>
ForwardToJspServlet
*.第页
或
ForwardToJspServlet
/页数/*
servlet的逻辑是将请求的URL转换为JSP的路径,然后转发
比如说,,用户请求URL/yourApp/documents/documentAdd.page,您在/WEB-INF/JSP/documents/documentAdd.JSP下转发到JSP,我想您会收到错误,因为struts2过滤器会截获所有发送到服务器的请求,并尝试在您的操作中查找映射,但由于
/alert
实际上指向一个servlet,您会看到错误。解决方案是在struts配置文件中设置映射,如:
<action name="alert">
<result>/alert.jsp</result>
</action>
/alert.jsp
这样,当您请求
/alert
时,您将获得不带扩展名(操作名称)的页面。如果他没有Apache web服务器,该怎么办?surampudi:谢谢,伙计,但是这个“.htaccess”在哪里?!我在eclipse ide中使用Tomcat6+struts2,我想这个错误与所有URL的过滤器映射有关(/*
)。对于某些URS,应用程序可以使用Struts以外的东西,一个好的做法是为Struts操作使用模式,如*。执行或/actions/*
,这样,Struts就不会选择不遵循模式的URL(可能会导致错误)。圣母啊!它工作得很好,但是在我的登录页面(欢迎文件)中,当我使用该页面定义规则的方法时,我丢失了一些图像!!!!!!为什么?是的,我得到了这个解决方案,我想把它贴在这里,但你让我更容易;)谢谢你,伙计。
<action name="alert">
<result>/alert.jsp</result>
</action>