我是Web应用程序的新手。我的问题:如何将相同的参数从一个JSP传递到两个servlet?然后将不同的参数从servlet传递到同一个JSP?
重要!!我们应该先做过程A,然后再做过程B!!!!
由于项目需要太多进程,我想将这些进程分成两个servlet。
目前,我完成了实现进程A,它将搜索词从SEARCH PAGE JSP传递到SERVLET A(执行进程A)并将结果传递给WELCOME PAGE JSP。它有效!!!(我在图片中以红色突出显示)
我使用的代码是:Web。xml
<servlet>
<servlet-name>ServletA</servlet-name>
<servlet-class>test.processA</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletA</servlet-name>
<url-pattern>/download result</url-pattern>
</servlet-mapping>
搜索页面JSP:
<form action="download result">
Please enter a Keyword <br>
<input type="text" name="term"size="20px">
<input type="submit" value="submit">
</form>
servletA:
public class processA extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
// reading the user input
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
// Retrieve search term from GET request and parse to desired format
String searchTerm = (request.getParameter("term").toString()).replace("%20", "_").replace(" ", "_").replace("+", "_").replace(".", "");
System.out.println("=====(servlet) searchTerm is:"+searchTerm);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
doGet(request, response);
}
}
那么如何在系统中实现processB呢???看起来就像我展示的图片。
servletB
public class processB extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String searchTerm = (request.getParameter("term")).replace(" ", "_");
String queryTerm = request.getParameter("term");
System.out.println("=====(servlet) searchTerm is:"+searchTerm);
System.out.println("=====(servlet) keep doing the other process……………………!!!”);
}
}
非常感谢!或者,如果doGET和doPOST不能同时使用,我可以将processA更改为doPOST。
重要!!我们应该先做过程A,然后再做过程B!!!!
对于您的SearchPage表单,只能有一种操作方法(get/post等)。jsp。
作为程序员,您必须首先决定需要处理什么以及如何处理请求,而不是让用户在
doPost
和doGet
方法之间进行选择。
这两种方法有不同的目的检查这里的差异
您必须将处理单元A和B保持在单个servlet(servlet A/servlet B)中,例如:首先从JSP调用进程A,然后从进程A调用进程B,最后将响应重定向/转发到Welcome。jsp
来自流程B
以下是代码:
Search.jsp
<form action="download result" method="get">
...
</form>
servletA:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
... //processing logic of A
... //processing logic of A
... //processing logic of A
doPost(request,response);//call Post
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
... //processing logic of B
... //processing logic of B
... //processing logic of B
RequestDispatcher rd=request.getRequestDispatcher("welcome.jsp");
rd.forward(request, response);
}
注意:您可以按要求执行相反的操作,即先调用doPost,然后再调用doGet。此外,需要为此更改表单标签中的方法。
对于您在评论中的查询,请使用以下代码:
servletA:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
... //processing logic of A
... //processing logic of A
... //processing logic of A
RequestDispatcher dispatcher = null;
dispatcher=request.getRequestDispatcher("servletB");
dispatcher.forward(request, response);//call Post
}
servletB:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
... //processing logic of B
... //processing logic of B
... //processing logic of B
RequestDispatcher rd=request.getRequestDispatcher("welcome.jsp");
rd.forward(request, response);
}
问题内容: 我想将多个值从一个servlet传递到另一个servlet。请告诉我如何通过? 问题答案: 取决于您是否使用会话: 使用session.setAttribute()将数组存储在会话变量中。 使用session.getAttribute();检索数组。 但是,变量将一直保留到会话终止,您用其他东西覆盖它或将其删除为止。 如果将一个servlet转发到另一个servlet,则可以将其存储在
我对JSP/servlets相当陌生,我一直在研究一些东西,它已经工作了一段时间。我有一个名为'telgir.jsp'的jsp,我从这个jsp向一个名为'tel Kayit'的servlet传递一个URL参数。 在LocalHost上运行时JSP页面的一个示例URL: 当我在servlet中接收到参数时,参数发生了变化,因此无法正确地对其进行解码并获得结果。根据我的研究,我意识到“%”符号使我的代
编辑:这不是这个问题的重复,因为我正在尝试在同一个servlet的和之间发送数据。另一个问题询问如何在不同的servlet之间发送数据,但我已经通过将信息附加到URL来做到这一点(参见下面的第一个代码片段),这在同一个servlet中是做不到的。另外,链接的问题来自2011年,使用Tomcat 5.5,而我使用8.5。 我正在开发一个带有两个servlet和一个过滤器的小型Java 8/Tomca
我需要你的帮助,在这个特殊的问题上,我想传递一个隐藏输入类型的值。jsp程序到servlet程序 我现在做的基本上是这样的 从servlet中我得到了值 它没有打印任何想法。jsp表单方法是post,servlet方法是doPost 有什么想法为什么它不传递参数吗?
我正在尝试将包含object的ArrayList从servlet传递到JSP。但是 Servlet文件: JSP文件:
我正在尝试将某些值从servlet传递到JSP页面,并添加已传递到标记的值,阅读了许多文章,我得到了以下代码。 使用输入页面选择文件 验证上传的文件 调用上传。java将上传的文件保存在WEB-INF中 在上载的文件中,选定的文件保存为“我的”。txt 使用缓冲区读取文件内容并将其保存到变量 将其传递到JSP页面 上载JAVA 上传文件后, mypage.jsp 现在,当我点击上传按钮完成所有这些