有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

tomcat Java servlet类需要什么操作变量?

我有这个反面。根目录/反向目录中的html

<!DOCTYPE html>
<html>
  <body>
    <h1>Assignment Servlets-2 - Reverse</h1>

    <form method='post' action='ReverseServlet'>
      Text: <input type='text' name='text' size='50'><br><br>
      <input type='submit' value='submit'>
    </form>
  </body>
</html>

这是网络。/WEB-INF目录中的xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
  <servlet> <servlet-name>ReverseServlet</servlet-name> 
  <servlet-class>ReverseServlet</servlet-class> </servlet> 

  <servlet-mapping> <servlet-name>ReverseServlet</servlet-name> 
    <url-pattern>/reverse</url-pattern> 
  </servlet-mapping>
</web-app>

这是一辆反向的小客车。java源代码,编译到/classes目录中的类文件中

import java.io.* ;
import javax.servlet.http.* ;

public class ReverseServlet extends HttpServlet {
    public void doGet( HttpServletRequest request, HttpServletResponse response ) {
        String text = request.getParameter("text");

        response.setContentType("text/html");
        try {
            PrintWriter out = response.getWriter();
            out.println( new StringBuffer( text ).reverse().toString() );
            out.close();
        } catch( Exception e ) {
            System.out.println( "cannot get writer: " + e );
        }
    }
}

它们都在正确的目录中,我可以加载相反的目录。html,但该操作不会绑定到ReverseServlet类。我使用的是Tomcat7.0,我有一个简单的servlet,所以我知道它安装正确。在点击submit时,它不会进入servlet代码


共 (2) 个答案

  1. # 1 楼答案

    表单的操作应该是servlet的URL,而不是其名称:

    <form method='post' action='/reverse'>
    
  2. # 2 楼答案

    问题是您正在使用post方法发送请求,并尝试使用get方法捕获请求

    1路:

    尝试将post更改为get或从表单中删除方法属性:
    <form method='get' action='/reverse'>

    双向: 在ReverseServlet中实现doPost方法,以便捕获来自post方法的请求:

    public void doPost( HttpServletRequest request, HttpServletResponse response ){...}