一尘不染

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

jsp

我是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。

谁能向我解释该怎么做。


阅读 255

收藏
2020-06-10

共1个答案

一尘不染

步骤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:SearchResults.jsp使用req.getAttribute(“ key”)显示数据

小费

最好的方法是在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);
2020-06-10