gpt4 book ai didi

html - 在显示 JSP 之前调用 servlet 的 doGet()

转载 作者:太空宇宙 更新时间:2023-11-04 13:20:26 25 4
gpt4 key购买 nike

有没有办法直接从 JSP 页面中的按钮调用 servlet?然而,这不是 POST 表单提交按钮。它只是一个按钮,应该调用 doGet() 方法来获取一些值并转发到另一个 JSP。

这是 servlet:

    public class PopulateProjectServlet extends HttpServlet {
private static final long serialVersionUID = 1L;


public PopulateProjectServlet() {
super();

}


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

try {

List<Project> projects = PopulateProject.getProjects();
request.setAttribute("projects", projects);
request.getRequestDispatcher("/UserHome/Projects.jsp").forward(request, response);

}

这是带有按钮的 JSP 页面:

    </head>
<body>

<input type="button" value="Update" onclick="<%MyServletName.Update(request, response);%>"></input> **<--- I FOUND SOMETHING LIKE THAT BUT DIDNT WORK**
<a href="/EmployeeLeaveForm/UserHome/Projects.jsp"> <button type=submit action="com.eteration.leavesystem.service.PopulateProjectServlet">Projeler</button></a>
<a href="/EmployeeLeaveForm/SharedByAll/Leave.jsp"> <button type=submit>Izin al</button></a>
<a href="/EmployeeLeaveForm/SharedByAll/LeaveCancelUpdate.jsp"> <button type=submit>Guncelle/Iptal et</button></a>
<a href="/EmployeeLeaveForm/SharedByAll/History.jsp"> <button type=submit>Gecmis</button></a>
<a href="/nextpage.jsp"> <button type=submit>cikis</button></a>


</body>
</html>

我怎样才能让按钮首先进入 servlet,然后再转发到 JSP 页面?

最佳答案

假设你已经在 Servlet 3.0 上,首先把 @WebServlet带有 URL 模式的注解让 servlet 监听指定的 URL:

@WebServlet("/populateProjectServlet")
public class PopulateProjectServlet extends HttpServlet {}

现在,servlet 监听 URL /populateProjectServlet .

然后,替换那个 HTML 无效的 <a><button>

<a href="/EmployeeLeaveForm/UserHome/Projects.jsp"><button type=submit action="com.eteration.leavesystem.service.PopulateProjectServlet">Projeler</button></a> 

通过 HTML 有效 <form><button>其中 <form action>指向 servlet 的 URL(请注意 <form> 方法已经默认为 GET!):

<form action="${pageContext.request.contextPath}/populateProjectServlet"><button type="submit">Projeler</button></form>

必要时使用 CSS display:inline内联显示表单。

另一种方法是使用一个链接,其 href指向 servlet 的 URL 并加入一些 CSS 使其看起来像一个按钮:

<a href="${pageContext.request.contextPath}/populateProjectServlet" class="button">Projeler</a> 

另见:


与具体问题无关,我强烈建议将该 JSP 放在 /WEB-INF 中文件夹,使最终用户无法在不先调用 servlet 的情况下直接打开 JSP 页面。

关于html - 在显示 JSP 之前调用 servlet 的 doGet(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18336105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com