Jsp 有没有办法在Javaservlet中打开相对地址?

Jsp 有没有办法在Javaservlet中打开相对地址?,jsp,tomcat6,servlet-3.0,Jsp,Tomcat6,Servlet 3.0,我现在正在开发一个JSP应用程序。我目前已经制作了一个按钮,可以在一个特定大小的新窗口中启动一个相对URL,使用:onclick=“window.open”(“/my_path”,“PREVIEW”,“width=600,height=300”); 但是,我需要在Servlet中运行一些java代码,我不想在jsp文件中放入任何逻辑。无论如何,我可以这样做吗 编辑:之所以这样做是因为我想先用javascript进行验证,目前这是在jsp中。在验证之后,我想在服务器上处理一些东西,然后我想根据服务

我现在正在开发一个JSP应用程序。我目前已经制作了一个按钮,可以在一个特定大小的新窗口中启动一个相对URL,使用:
onclick=“window.open”(“/my_path”,“PREVIEW”,“width=600,height=300”);
但是,我需要在Servlet中运行一些java代码,我不想在jsp文件中放入任何逻辑。无论如何,我可以这样做吗

编辑:之所以这样做是因为我想先用javascript进行验证,目前这是在jsp中。在验证之后,我想在服务器上处理一些东西,然后我想根据服务器进程打开一个新窗口

思考 JSP中的
然后在servlet中
doPost(…){if(request.getParameter(“Function”){//do some cool;//process open javascript window}}


原因是我需要维护排序。

首先,如果您包括JSP、servlet和web.xml的相关部分,这将非常有用。无论如何,我相信这可能与您想要的非常接近

重要的概念是JSP是在服务器上处理的。事实上JSP是预编译成servlet的。因此,如果您的uri解析为myserv,然后将请求转发给myjsp,那么它就是将请求转发给另一个servlet。方法.setAttribute和.getAttribute用于在服务器上的servlet之间进行通信n请求的上下文

因此,假设web.xml大致如下:

  <servlet>
    <servlet-name>myserv</servlet-name>
    <servlet-class>com.mydom.myserv</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>myserv</servlet-name>
    <url-pattern>/myserv/*</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>myjsp</servlet-name>
    <jsp-file>/myjsp.jsp</jsp-file>
   </servlet>
  <servlet-mapping>
    <servlet-name>myjsp</servlet-name>
    <url-pattern>/myjsp.jsp</url-pattern>
  </servlet-mapping>
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("relpath", myRelPathObj.getRelPath());  
request.getRequestDispatcher("myjsp.jsp").forward(request, response);
return;
.
.
.
onclick="window.open('./<%=request.getAttribute("relpath")%>','PREVIEW','width=600, height=300'); 
然后是一个带有表达式标记的jsp,大致如下所示:

  <servlet>
    <servlet-name>myserv</servlet-name>
    <servlet-class>com.mydom.myserv</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>myserv</servlet-name>
    <url-pattern>/myserv/*</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>myjsp</servlet-name>
    <jsp-file>/myjsp.jsp</jsp-file>
   </servlet>
  <servlet-mapping>
    <servlet-name>myjsp</servlet-name>
    <url-pattern>/myjsp.jsp</url-pattern>
  </servlet-mapping>
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("relpath", myRelPathObj.getRelPath());  
request.getRequestDispatcher("myjsp.jsp").forward(request, response);
return;
.
.
.
onclick="window.open('./<%=request.getAttribute("relpath")%>','PREVIEW','width=600, height=300'); 
onclick=“window.open”(“./”、“PREVIEW”、“width=600、height=300”);

有没有办法将javascript从jsp中全部删除?@jQwierdy javascript在客户端而不是服务器上运行。听起来你想从客户端向servlet发出ajax请求,并根据返回的值打开一个新窗口。问题是我使用的是一个脆弱的大型遗留系统。因此,我正在尝试尽可能地进行本地化更改,系统很容易支持有序java-因此我认为AJAX将是一个很好的选择。我将查看它,看看是否可以让它工作,并让您知道,谢谢!