小编Sal*_*cha的帖子

如何在多个servlet转发后从servlet/jsp获取原始请求url

我正在使用struts/tiles工作巡航预订应用程序,它使用多个内部servlet/jsp转发到达正确的jsp进行显示.但是,一旦你到达用于呈现页面的最终jsp,jsp中的${pageContext.request.requestURL}调用将返回 jsp 的路径.

例如

  1. 原始要求: / booking/getCruiseDetails
  2. 转发到:/booking/validateCruiseDeteails.jsp
  3. 转发到:/booking/validateUser.jsp
  4. 最后转发到:/booking/showCruiseDetails.jsp

所以,当我调用/booking/showCruiseDetails.jsp时,在${pageContext.request.requestURL}/booking/showCruiseDetails.jsp中

如何从通过多个转发到达的jsp获取原始(客户端制作的)请求URL .我确实在stackoverflow上找到了以下关于此处此处的解决方案的帖子,但是他们没有解决在多次转发发生后如何查找原始请求URL的问题.

java struts servlets tiles java-ee

31
推荐指数
2
解决办法
4万
查看次数

如果我们放弃关系,关系数据库是否会比NoSQL同行扩展(或更好)?

免责声明:这是一个广泛的问题,因此可以将其移至不同的来源(如果管理员认为合适).

所有酷孩子似乎都在放弃关系数据库,转而支持他们的NoSQL同行.每个人都有自己的理由,从扩展问题到仅仅处于技术前沿.而且,我不是在这里质疑他们的动机.

但是,我感兴趣的是,当关系被删除时,是否有任何NoSQL转换验证了传统RDBMS的性能(维护)增益.当它存在的核心原因被删除时,我们为什么要使用RDBMS?有几个原因浮现在脑海中

  1. 在开发这些系统方面有30多年的学术和工作研究
  2. 结构化查询语言(SQL)中的一种众所周知的语言.
  3. 跨技术的稳定和成熟的ORM支持(Hibernate,ActiveRecord)

显然,在水平扩展很重要的现代世界中,需要确保分片具有容错能力,在应用程序所需的时间间隔内更新等等.但是,这些需求不一定是存储数据的系统(例如:ZooKeeper).

此外,我承认研究应该专注于NoSQL,并且在这个领域花费的时间显然会带来更好的互联网价值技术.但是,对NoSQL和传统RDBMS产品(减去关系)之间的排序进行比较将有助于做出业务决策.

更新1:当我提到NoSQL数据库时,我所说的数据存储可能不需要固定的表模式,通常会避免连接操作.因此,重点放在传统SQL RDBMS中删除关系的问题

sql database database-design relational-database nosql

12
推荐指数
1
解决办法
1771
查看次数

Google Analytics实时沙箱环境

我正在寻找一种方法来设置谷歌分析沙箱环境,这将允许我实时测试我的自定义js代码.

我的应用程序将使用自定义变量进行高级细分,我想快速测试多个场景,而不是设置虚拟GA帐户并等待一整天来确认测试.

谢谢

google-analytics

8
推荐指数
1
解决办法
3130
查看次数

当使用Proc.new v.&符号时,为什么ruby中的break语句表现不同?

块的break语句(根据Ruby Programming Language)定义如下:

它导致块返回到它的迭代器,迭代器返回到调用它的方法.

因此,当运行以下代码时,它会导致LocalJumpError.

def test
    puts "entering test method"
    proc = Proc.new { puts "entering proc"; break }
    proc.call # LocalJumpError: iterator has already returned
    puts "exiting test method"
end
test
Run Code Online (Sandbox Code Playgroud)

虽然以下代码不会抛出LocalJumpError.&符号有什么特别之处?&符号是否隐含使用Proc.new?

def iterator(&proc)
    puts "entering iterator"
    proc.call # invoke the proc
    puts "exiting iterator" # Never executed if the proc breaks
end

def test
    iterator { puts "entering proc"; break }
end
test
Run Code Online (Sandbox Code Playgroud)

换句话说,我读了&符号作为进入Proc.new呼叫的手段.此时行为应该与第一个代码段相同.

def iterator (p = Proc.new { puts "entering proc"; …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails proc-object

8
推荐指数
1
解决办法
2603
查看次数

Ruby的Enumerator对象如何在内部迭代器上进行外部迭代?

根据Ruby的文档,each如果没有为to_enumenum_for方法提供目标方法,则Enumerator对象使用该方法(枚举).现在,我们以下面的猴子补丁及其枚举器为例

o = Object.new
def o.each
    yield 1
    yield 2
    yield 3
end
e = o.to_enum

loop do
  puts e.next
end
Run Code Online (Sandbox Code Playgroud)

鉴于Enumerator对象使用该each方法来回答何时next被调用each,每次调用时如何调用该方法next?Enumeartor类是否预加载了所有内容o.each并为枚举创建了本地副本?或者是否有某种Ruby魔法在每个yield语句中挂起操作,直到next在enumeartor上调用?

如果制作了内部副本,它是否是深层副本?那些可以用于外部枚举的I/O对象呢?

我正在使用Ruby 1.9.2.

ruby iterator enumerator

7
推荐指数
1
解决办法
1198
查看次数

如何将c:forEach标记的循环索引附加到Struts HTML标记属性?

如何将ac:forEach标记的循环索引附加到struts select/text标记的属性?

例如.

<%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="html"%>

<c:forEach begin="2" end="${pageView.guestCount}" varStatus="gC">
    <div class="section guest-details">
       <html:select property='title_guest<c:out value="${gC.index}"/>'>
          <html:options collection="titles" property="code" labelProperty="value" />
       </html:select>
    </div>
 </c:forEach>
Run Code Online (Sandbox Code Playgroud)

抛出以下错误

javax.servlet.jsp.JspException at org.apache.struts.taglib.html.SelectTag.calculateMatchValues(SelectTag.java:246)

现在,当我调试代码时,<html:select ...它显示当它设置的属性属性时,它的设置"title_guest<c:out value="${gC.index}"/>"可能是上面异常的原因.

另外,我应该提一下,如果我使用上面的格式将循环索引附加到标签的标准html标签属性<select>,代码工作正常.

例如

<c:forEach begin="2" end="${pageView.guestCount}" varStatus="gC">
  <div class="section guest-details">
      <select name='title_guest<c:out value="${gC.index }"/>'>
            <option value="">Select Title</option>
      </select>
  </div>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

正确输出预期的HTML

我做错了什么,我应该使用EL来创建将填充html:select标签的"property"属性的字符串吗?

UPDATE

以下片段也尝试了,但也没有用 <html:select property="title_guest${gC.index}">

并且,这也不起作用

<c:set var="guestTitle">title_guest${gC.index}</c:set>
<html:select property="${guestTitle}" styleClass="{required: true}">
 <html:options collection="titles" property="code" labelProperty="value" />
</html:select>
Run Code Online (Sandbox Code Playgroud)

jsp struts jstl struts-html

4
推荐指数
1
解决办法
2万
查看次数