Jsp 有没有办法在Javaservlet中打开相对地址?
我现在正在开发一个JSP应用程序。我目前已经制作了一个按钮,可以在一个特定大小的新窗口中启动一个相对URL,使用: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中。在验证之后,我想在服务器上处理一些东西,然后我想根据服务
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将是一个很好的选择。我将查看它,看看是否可以让它工作,并让您知道,谢谢!