zoukankan      html  css  js  c++  java
  • 十三、web应用中路径总结

    1、路径的编写形式:
    1)<a href="/项目名/资源路径"></a>    <!--超链接-->
     <form action="/项目名/资源路径"></form>  <!-- form保单-->
     重定向:response.sendRedirect("/项目名/资源路径");
     例如://resp.sendRedirect(req.getContextPath()+"/login_error.html");
     转发:request.getRequestDispatcher("/资源路径").forward(request,response);
      
    2)欢迎页面:
     <welcome-file-list>
      <welcome-file>资源路径</welcome-file>
      <!——备注:此处的资源路径名字前面没有/ ——>
     </welcome-file-list> 
    3)servlet路径
     <servlet>
      <servlet-name>hello</servlet-name>
      <servlet-class>com.bjpownernode.javaweb.servlet.HelloServlet</servlet-class>
     </servlet>
     <servlet-mapping>
      <servlet-name>hello</servlet-name>
      <url-pattern>/路径资源</url-pattern>
      <!--此处路径名不需要添加项目的路径名-->
     </servlet-mapping>
      
    4)Cookie设置path
      cookie.setPath("/项目名/资源路径");  
      备注:cookie是将回话的状态保存在客户端、HttpSession是将回话的状态保存在服务器端;
      session不止是在java中有,你只要遇到b/s架构的,不管是什么语言,都有这种机制Session
       
    5)ServletContext
    ServletContext application=config.getServletContext();   
    application.getRealPath("/WEB-INF/class/db.properties");  
    application.getRealPath("/资源路径");//此处的资源也不需要加项目名
    备注:常用的是超链接、form表单、重定向、转发、servlet路径、欢迎页面、Cookie设置path。

    String basePath= request.getSession().getServletContext().getRealPath("/"+EXCLE_FILE_NAME+".xls");
    返回的实际路径将与运行servlet容器的计算机和操作系统(包括正确的路径分隔符)的形式相匹配。
      
    6)url-pattern的编写方式:
      精确匹配:
       <url-pattern>/hello</url-pattern>
       <url-pattern>/system/hello</url-pattern>
      
      扩展匹配:
       <url-pattern>/abc/*<url-pattern>
      后缀匹配:
       <url-pattern>*.action</url-pattern>
       <url-pattern>*.do</url-pattern>
      全部匹配:
       <url-pattern>/*</url-pattern>

    2、关于WEB-INF文件目录和路径问题

    1)资源文件只能放在WebRoot下面,如 CSS,JS,image等.放在WEB-INF下将无法引用
    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目录.怎么办呢.<imgalt="" src="images/instpage.gif"></body>还是这这样.
    6)WEB-INF目录下的文件之间如何访问呢.如在main.jsp用<ahref="oa.do">测试OA的路径</a>访问
       像main.jsp有10处链接到WEB-INF目录下的其它页面.那就得有10个转向Action.这个可以用DispatchAction类加参数专门处理转向工作.
      注:
    转向方式: forward
          如struts-config文件中配置<forward name="success"path="/WEB-INF/main.jsp" /> 或 在Action中写request.getRequestDispatcher("/WEB-INF/main.jsp").forward(request,response);都是服务器读取了该页面内容,并发送到客户端.客户端的地址不变.内容跳转了
    重定向方式: Redirect
         如struts-config文件中配置<forward name="success"path="/WEB-INF/main.jsp" redirect="true"/>
    或在action中response.sendRedirect("/error.jsp");重定向的含义就是服务器把地址发给客户端,让客户端去访问.这种办法显然针对WEB-INF目录是无用功

    细水长流,打磨濡染,渐趋极致,才是一个人最好的状态。
  • 相关阅读:
    SpringMVC异常处理
    SpringMVC参数绑定、Post乱码解决方法
    @RequestMapping与controller方法返回值介绍
    Git学习总结(标签管理)
    Git分支管理
    远程仓库
    可用来修改bean对象的BeanPostProcessor
    @Configuration的使用
    Spring配置:用context:property-placeholder替换PropertyPlaceholderConfigurer
    深入剖析 Spring 框架的 BeanFactory
  • 原文地址:https://www.cnblogs.com/jiarui-zjb/p/6408576.html
Copyright © 2011-2022 走看看