• Struts2的validator和WEB-INF下页面交互以及路径问题


    当我使用短路校验器时(客户端),在页面下方老是出来 FreeMarker template error!然后我就把我的页面都放在了WEB-INF中,结果很多路径都不对了,因为客户端是没有直接访问StrutsFilter下的WEB-INF下面的东西的,所以请求要通过struts管理,如此我就在原来所有struts里配置的路径加上了"/WEB-INF",,所有页面的链接改为:<a href="<%=request.getContextPath()%>/regist">注册</a>类型,然后在struts.xml中配置了一个通用的action,用来作为对链接管理的中转站:

    1 <action name="*">
    2     <result>/WEB-INF/{1}.jsp</result>
    3 </action>

     下面是从别人那里copy过来的,以方便我以后查用:

    1. 把页面资源文件只能放在webroot下面,如 CSS,JS,image等.放在WEB-INF下引用不了.像jpetstore也是这样的.

    2. 页面放在WEB-INF目录下面,这样可以限制访问,提高安全性.如JSP,html

    3.只能用转向方式来访问WEB-INF目录下的JSP,不用采用重定向的方式请求该目录里面的任何资源.如图:index.jsp >>  main.jsp

    4.WEB-INF目录下文件访问资源文件时,可以忽略WEB-INF这一层目录.如main.jsp 要用css目录里的一个css文件.

        <link rel="stylesheet" type="text/css" href="css/comm201005faa3.css" />这样就行了,从客户端的地址可以看出来

        服务器转向main.jsp就是在webroot下面.所以main.jsp和css目录可以讲是同一级目录.

    5.WEB-INF/oa目录下访问images目录.怎么办呢.<img alt="" src="images/instpage.gif"></body>还是这这样.

    6.WEB-INF目录下的文件之间如何访问呢.如在main.jsp用<a href="oa.do">测试OA的路径</a>访问

       像main.jsp有10处链接到WEB-INF目录下的其它页面.那就得有10个转向Action.这个可以用DispatchAction类加参数专门处理转向工作.

        注: 转向方式: 如struts-config文件中配置<forward name="success" path="/WEB-INF/main.jsp" />  

                     或 在Action中写request.getRequestDispatcher("/WEB-INF/main.jsp").forward(request, response);

                    都是服务器读取了该页面内容,并发送到客户端.客户端的地址不变.内容跳转了

        重定向方式: 如struts-config文件中配置<forward name="success" path="/WEB-INF/main.jsp"

                        redirect="true"/> 或在action中response.sendRedirect("/error.jsp");

                        重定向的含义就是服务器把地址发给客户端,让客户端去访问.这种办法显然针对WEB-INF目录是无用功.

    我很小我很弱,我在慢慢成长!
  • 相关阅读:
    SpringBoot启动过程中,候选类的过滤和加载
    Dubbo发布过程中,扩展点的加载
    Dubbo发布过程中,服务发布的实现
    Dubbo发布过程中,服务端调用过程
    SpringBean加载过程中,循环依赖的问题(一)
    Dubbo发布过程中,消费者的初始化过程
    DiscuzQ构建/发布小程序与H5前端
    Delphi写COM+的心得体会
    DBGridEh导出Excel等格式文件
    数据库直接通过bcp导出xml文件
  • 原文地址:https://www.cnblogs.com/lvzhanhui/p/3587049.html
Copyright © 2020-2023  润新知