2015-03-12 5 views
0

Я должен задать вопрос с HTML-страницы: «index.jsp» сервлет сказать servlet.java и запрограммировать его там, чтобы ключевые слова извлекались из введенного вопроса через index.jsp и те ключевые слова, которые выводятся на другой странице JSP, например output.jsp. Пожалуйста, смотрите мой код и скажите, пожалуйста, почему эта ошибка возникает, чтоHTTP 405 метод публикации не поддерживается этим URL-адресом

"http 405: post not supported by this url". 

Я использую Tomcat и запустить его как локальный: 8080 \ myprograms \ index.jsp Кроме того я понятия не имею, как веб. xml должно быть написано, что писать по шаблону url \ index.jsp или \ servlet. Мне нужно, чтобы войти на страницу output.jsp в web.xml

index.jsp


<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE HTML> 
<html> 
</head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title> 
Query search 
</title> 
<style> 
BODY { background: url(mag.jpg); background-repeat: no-repeat } 
</style> 
</head> 
<body> 
<a href="1.html">Exit</a> 
<img src="home.png" align="left" height="180" width="130"> 
<center> 
<form action="servlet1" method="post"></br></br></br></br></br></br></br></br> 
<font face="Broadway" color="white" align="left">Search........!!!!</font></br></br> 
<input type="text" name="query" size="100"></br></br></br></br> 
<input type="SUBMIT" value="Submit Query">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<input type="RESET" value="Reset"> 
</form> 
</center></br></br></br></br></br></br></br></br></br></br></br> 
<font color="white"><marquee behavior="alternate">Note:Only generalized query that starts as "who", "what","give"..</marquee></font> 
</body> 
</html> 

output.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Output Page</title> 
    </head> 
    <body align="center"> 
     <form method="GET" action="servlet1"> 
     <p>${z}</p> 
    </body> 
</html> 
ли

servlet1.java

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 

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 java.util.regex.Matcher; 
import java.util.regex.Pattern; 
import javax.swing.JOptionPane; 
/** 
* 
* @author hp 
*/ 
@WebServlet(urlPatterns = {"/servlet1"}) 
public class servlet1 extends HttpServlet { 

    /** 
    * Processes requests for both HTTP 
    * <code>GET</code> and 
    * <code>POST</code> methods. 
    * 
    * @param request servlet request 
    * @param response servlet response 
    * @throws ServletException if a servlet-specific error occurs 
    * @throws IOException if an I/O error occurs 
    */ 


    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> 
    /** 
    * Handles the HTTP 
    * <code>GET</code> method. 
    * 
    * @param request servlet request 
    * @param response servlet response 
    * @throws ServletException if a servlet-specific error occurs 
    * @throws IOException if an I/O error occurs 
    */ 
    @Override 
    public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 

     response.setContentType("text/html"); 
     PrintWriter out = response.getWriter(); 
     String txt=request.getParameter("query"); 
    if (txt.matches("Who is the(.*)")) { 
    String re1=".*?"; 
    String re2="(?:[a-z][a-z]+)"; 
    String re3=".*?"; 
    String re4="(?:[a-z][a-z]+)"; 
    String re5=".*?"; 
    String re6="(?:[a-z][a-z]+)"; 
    String re7=".*?"; 
    String re8="((?:[a-z][a-z]+))"; 
    String re9=".*?"; 
    String re10="(?:[a-z][a-z]+)"; 
    String re11=".*?"; 
    String re12="((?:[a-z][a-z]+))"; 

    Pattern p = Pattern.compile(re1+re2+re3+re4+re5+re6+re7+re8+re9+re10+re11+re12,Pattern.CASE_INSENSITIVE | Pattern.DOTALL); 
    Matcher m = p.matcher(txt); 
    if (m.find()) 
    { 
     String word1=m.group(1); 
     String word2=m.group(2); 
     String z=word2.toString()+"|"+word1.toString()+"\n"; 
     request.setAttribute("z",z); 
     request.getRequestDispatcher("/output.jsp").forward(request, response); 
    } 
    } 

    /** 
    * Handles the HTTP 
    * <code>POST</code> method. 
    * 
    * @param request servlet request 
    * @param response servlet response 
    * @throws ServletException if a servlet-specific error occurs 
    * @throws IOException if an I/O error occurs 
    */ 
    /*@Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     //processRequest(request, response); 
     doGet(request, response); 
    }*/ 

    /** 
    * Returns a short description of the servlet. 
    * 
    * @return a String containing servlet description 
    */ 
    @Override 
    public String getServletInfo() { 
     return "Short description"; 
    }// </editor-fold> 
} 

ответ

0

Вы получаете эту ошибку, как в сервлет, doPost метод комментируется, который будет обрабатывать ваши Post type Request

/*@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
     //processRequest(request, response); 
     doGet(request, response); 
    }*/ 
+0

Это представляет собой выходную форму, на которой результаты должны отображаться, и у меня есть другая страница с именем index.jsp, из которой вход передается сервлету, и там я написал «сообщение». что я должен писать в своем web.xml и почему эта ошибка plz help –

+0

прочитал мой обновленный ответ! и, пожалуйста, google некоторые хорошие уроки о сервлетах и ​​jsp –

+0

Спасибо, что это исправлено !! –

Смежные вопросы