繁体   English   中英

如何从没有脚本的jsp调用servlet?

[英]How to call to a servlet from jsp without scriptles?

我是jsp的新手,我已经创建了jsp页面来搜索某些内容。 我也写了servlet。 但是我不知道如何在两者之间进行互动。

我的web.xml看起来像

<servlet>
    <servlet-name>HotelSearch</servlet-name>
    <servlet-class>it.testproject.HotelSearch</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>HotelSearch</servlet-name>
    <url-pattern>/HotelSearch</url-pattern>
</servlet-mapping>

我的servlet名称是HotelSearch.java,搜索页面是Default.jsp,我想在servlet调用后重定向到SearchResults.jsp。

谁能向我解释该怎么做。

步骤1:加载default.jsp,我想您有一种表单可以提交搜索查询,例如

  <form method="post" action="HotelSearch">
  //action is your url pattern and method is your choice get or post
    // your text box
   </form>

步骤2:现在,在servlet中执行搜索业务逻辑,然后将结果数据放入请求中

 req.setAttribute("key",value); //value is object

 dispatch your request with data to `SearchResults.jsp` 
 req.getRequestDispatcher("SearchResults.jsp").forward(req,resp);

步骤3:使用req.getAttribute(“ key”)在SearchResults.jsp显示数据

小费

最好的方法是在web.xml中配置jsp文件

<servlet>
      <servlet-name>myjsp</servlet-name>
      <jsp-file>jsp/SearchResults.jsp</jsp-file>
 </servlet>
 <servlet-mapping>
      <servlet-name>myjsp</servlet-name>
      <url-pattern>/jsp_url</url-pattern>
 </servlet-mapping>

现在您可以使用

req.getRequestDispatcher("jsp_url").forward(req,resp);

因此,您需要:

  1. 使用表单将数据从第一个jsp发送到servlet:

    <form action =“ servlet_url”> <input type =“ submit” ...> </ form>

  2. 从servlet重定向到第二个jsp:

    (HttpServletResponse)response.sendRedirect(“ jsp_url”);

在客户端上

确保您的代码已正确设置操作:

<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<FORM action="${ctx}/HotelSearch">
    <input type="text" name="queryString">
</FORM>

在Servlet中

response.sendRedirect(request.getContextPath()+“ /SearchResults.jsp”);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM