我正在研究一个JSP应用程序。我目前已经创建了一个按钮,使用以下命令在特定大小的新窗口中启动相对URL:onclick="window.open('./my_path','PREVIEW','width=600, height=300');
在.jsp文件中。但是我需要在Servlet中运行一些java代码,我不想在JSP文件中放置任何逻辑。无论如何我可以这样做?
想
JSP中的<input type="submit" name="Function" onclick="javascriptFunction()" style="WIDTH: 130px" value="Edit">
。然后在servlet doPost(...){ if(request.getParameter("Function"){//do something cool; //process open javascript window} }
原因是我需要维护订购。
答案 0 :(得分:0)
首先,如果您包含JSP,servlet和web.xml的相关部分,那将非常有用。无论如何,我认为这可能接近你正在寻找的东西。
重要的概念是在服务器上处理JSP。实际上,JSP已预编译为servlet。因此,如果您的uri解析为myserv,然后将请求转发给myjsp,它会将请求转发给另一个servlet。方法.setAttribute和.getAttribute用于在请求的上下文中在服务器上的servlet之间进行通信。
假设您的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>
然后你有一个doPost的servlet大致如下:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("relpath", myRelPathObj.getRelPath());
request.getRequestDispatcher("myjsp.jsp").forward(request, response);
return;
.
.
.
然后你有一个表达式标签的jsp大致如下:
onclick="window.open('./<%=request.getAttribute("relpath")%>','PREVIEW','width=600, height=300');