易截截图软件、单文件、免安装、纯绿色、仅160KB

JSP,servlet的相对路径问题

前提:假设你的 Http 地址为 http://192.168.0.1/ 你的 web 应用为 webapp ,那么你的 web 应用 URL 为 http://192.168.0.1/webapp/
[问题1]
[描述]当在 jsp 中引入 css 时,如果其相对路径相对于当前 jsp 文件的,而在一个和这个 jsp 的路径不一样的 servlet 中 forwarder 这个 jsp 时,就会发现这个 css 样式根本没有起作用。
[分析]这是因为在 servlet 中转发时 css 的路径就是相对于这个 servlet 的相对路径而非 jsp 的路径了。所以这时候不能在 jsp 中用这样的路径: <link href="one.css" rel="stylesheet" type="text/css"> 或者 <link href="../../one.css" rel="stylesheet" type="text/css"> 类似 href="one.css" 和 ../../one.css 的 html 相对路径是相对于引用这个 css 的文件的相对路径。而在 servlet 中转发时就是相对于这个 servlet 的相对路径了,因为 jsp 路径和 servlet 路径是不一样的,所以这样的引用肯定是出错的。
[解决]所以这个时候,要用站点根目录,就是相对于 http://192.168.0.1/ 的目录,以“ / ”开头。
因此上述错误应更正为 href=”/webapp/one.css” 类似的站点根目录的相对目录。这样在 servlet 转发后和 jsp 中都是相对于站点根目录的相对路径,就能正确使用所定义的 css 样式了。
[问题2]
在MyEclispe中的JSP的两种模板,一种是Advanced,一种是Basic
  两者的区别也会涉及到路径问题,如图片的路径,链接的路径
 
  Advanced Template中页面的代码多了以下代码:
  <%
      String path = request.getContextPath();
      String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  %>
   <base href="<%=basePath%>">
其中<base href="<%=basePath%>">必须放在<head></head>中
这段代码的作用是设置基础路径的,basepath为变量.<base href="">标签的用处是解决编程时候的相对路径问题.
设置了<base href="<%=basePath%>">
页面上图片,链接的路径指的都是当前应用程序的根路径下.
当然,这个base还有一个用法,如在head部分加上这么一行: <base href="_blank"> ,就是默认所有链接在新窗口打开


相关文档:

JSP中表单数据存储的通用方法

朗沃教育成都计算机培训-JSP篇
J2EE(Java 2 Enterprise Edition)技术已广泛应用在Web应用开发中,其中的JavaBean、Servlet技术为开发者提供了更为清晰的开发环境,使用JSP技术表现页面,使用Servlet技术完成大量的业务处理,使用Bean来存储数据及一些业务处理。在WEB应用中,业务数据存储到数据库中的处理工作经常很繁重, ......

jsp几种方法

1.必须继承自HttpServlet
  2.必须实现doGet()或者doPost()
  3.必须在web.xml中配置Servlet
  <servlet>
  <servlet-name> </servlet-name>
  <servlet-class> </servlet-class>
  </servlet>
  <servlet-mapping>
  ......

我开发一个jsp系统时碰到的问题

1.No getter method for property name problem(struts)
有一种可能是Bean没有写相应的get方法,例如变量userName的get方法是getUserName;
还有就是这个Bean为空;
2.
MyEclipse的自动添加struts和hibernate功能不能返回,请注意!
所以我先使用MyEclipse导入struts和hibernate,然后将它们的jar导入到另外一个新建的 ......

关于网站首页名称安全性问题 JSP 允许目录浏览

在不允许目录浏览的情况下     浏览器会先找到首页(默认为index.html  /index.jsp...)
否则出错
因此 若首页被恶意更改   网站崩溃
解决方法:
更改默认启动页面:$tomcat/conf/web.xml最后位置
<welcome-file-list>
<welcome-file>index.html</welcome-file> ......

jsp:forward标签和response.sendRedirect()方法的区别

在网上看到一些帖子,总结了一些区别,可以从以下几个方面来看:
1.从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容
再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号