java - 无法从 servlet 重定向到 jsp 页面

标签 java eclipse tomcat servlets

我正在尝试使用 jsp 和 servlet 创建一个小型注册表单。
这个概念是这样的:
在 jsp 表单中输入的数据将由 servlet 程序检查是否重复。
如果存在重复,则控件必须返回到调用 servlet 的注册 (jsp) 页面。
我在 eclipse helios 中这样做。
servlet程序在java资源下默认包下,
jsp 文件在 web content 文件夹下。

我的问题是
我能够从 jsp 重定向到 servlet;

但是当我尝试从 servlet 返回到 jsp 页面时,
tomcat 服务器显示如下错误:

HTTP Status 404 - /RservletEs/registeration.jsp

type Status report

message /RservletEs/reg.jsp

description The requested resource is not available.

我试过 request.dispatcher() 和 response.sendRedirect() 都显示相同的错误。

文件路径为:

RservletEs/src/ServletCheck
Rservlets/Web Content/registeration.jsp

我附上了下面的源代码 有人请帮我解决这个问题

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.collect.ImmutableMap;
import org.elasticsearch.common.settings.ImmutableSettings;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHitField;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.index.IndexRequestBuilder;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.SearchType;

import java.util.Map;
import com.google.gson.Gson;
/**
 * Servlet implementation class ServletCheck
*/
@WebServlet("/ServletCheck")
public class ServletCheck extends HttpServlet {
private static final long serialVersionUID = 1L;

 /**
  * @see HttpServlet#HttpServlet()
  * /
 public ServletCheck() {
    super();
    // TODO Auto-generated constructor stub
  }

  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    */
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    String clusterName="asdf";
    String hostName="localcost";
    String index="testdb";
    String type="emp_type";
    String field="emailId";
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();



    int portNumber=26101;

    final TransportClient client = new TransportClient(ImmutableSettings.settingsBuilder().put("cluster.name", clusterName)
            .put("client.transport.sniff", true).build());

    Settings settings = client.settings();

    out.println("**settings:"+ settings);

    ImmutableMap<String, String> map = settings.getAsMap();

    out.println("**map::"+ map);

    ((TransportClient) client).addTransportAddress(new InetSocketTransportAddress(hostName, portNumber));

    out.println("ES client:" + client);
    String firstName=request.getParameter("firstName");
    String lastName=request.getParameter("lastName");
    String emailId=request.getParameter("emailId");
    String age=request.getParameter("age");
    String dob=request.getParameter("dob");
    String eId=request.getParameter("employeeId");

    String value=emailId;


    SearchResponse response2 = client.prepareSearch(index)
   .setTypes(type)
   .setSearchType(SearchType.QUERY_AND_FETCH)
   .setQuery(QueryBuilders.termQuery(field, value))
   .setFrom(0).setSize(60).setExplain(true).setRouting("1")
   .execute()
   .actionGet();

    SearchHit[] results = response2.getHits().getHits();
    int length=results.length;
    int i=0;

    if (length>0){
            response.sendRedirect(request.getContextPath()+"/registeration.jsp");
        //request.getRequestDispatcher("/registeration.jsp").forward(request, response);
        }
        else{

            out.println("setting the values");

            hr_employee tweet = new hr_employee();

            out.println("setting the id");

            tweet.setEmployeeId(eId);

            tweet.setFirstName(firstName);
            out.println("setting the last name");
            tweet.setLastName(lastName);
            tweet.setEmailId(emailId);
            tweet.setDob(dob);



            String str=tweet.getEmployeeId();
           /* System.out.println("the id is...."+str);
            System.out.println("the firstname .... "+tweet.getFirstName());
            System.out.println("teh last name....."+tweet.getLastName());
           */

        out.println("initiallizing req builder");           
        final IndexRequestBuilder builder = client.prepareIndex(index, type,str);

        out.println("setting source");
        builder.setSource(new Gson().toJson(tweet));
        out.println("getting response");
        final IndexResponse response3 = builder.setRouting("1").execute().actionGet();

         out.println("geting connected...");

        out.println("ElasticSearchEJBBean:indexDocument:" + index+ ":" + type+ ":" + str + ":index results:" + response3);
        response.sendRedirect(request.getContextPath()+"/ServletInsert");
        }






    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                  // TODO Auto-generated method stub



      doGet(request,response);



    }

 }

最佳答案

听起来你的命名方式肯定有问题。
像这样尝试:

right click on ur jsp file and select copy qualified name .  

然后像这样使用该名称进行重定向或分派(dispatch):

request.getRequestDispatcher("/registeration .jsp").forward(request,response);

关于java - 无法从 servlet 重定向到 jsp 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24695911/

相关文章:

java - 删除父类(super class)方法并删除所有覆盖方法

java - 在 windows8.1 上编译 OpenGTS 失败

jsp - Tomcat 7.0.27 不适用于自定义标签

java - 鼠标显示颜色

java - 有没有办法使用 jdk.internal.access.SharedSecrets 从 java.util 包访问包私有(private) String.isLatin1() ?

java - 如何在 Eclipse 中启动基于 SVM 的分类项目?

javascript - 如何使用 Eclipse JSDT 缩小 JavaScript 文件?

eclipse - 如何使用更新站点将 Eclipse 插件下载为 zip 存档?

java - "The type java.util.Map$Entry cannot be resolved"(tomcat6 + JDK7)

java - 如何否定一个值与java [Integer.Min_Value]中的值相同