に直接することができなかった私持っているテキストフィールドとボタンが含まれているJSPで、以下のフォームJSPはポストJavaEEの中のサーブレットクラスのメソッドとTomcat 9
<form action="/login.do" method="Post">
Enter
<br/><br/>
Your Name <input type="text" name="name"/>
<br/><br/>
Password <input type="text" name="password"/>
<br/><br/>
<select name="Gender">
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
<br/><br/>
<input type="submit" value="Login"/>
マイサーブレット:
@WebServlet(urlPatterns = "/login.do")
public class LoginServlet extends HttpServlet{
protected void doGet(HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
throws ServletException, IOException{
request.getRequestDispatcher("/WEB-INF/view/login.jsp").forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name =request.getParameter("name");
String password = request.getParameter("password");
String gender = ((String)request.getParameter("Gender")=="Female")? "Ms.":"Mr.";
if(new ValidateUser().validate(name, password)){
request.setAttribute("name", name);
request.setAttribute("password", password);
request.setAttribute("gender", gender);
request.getRequestDispatcher("/WEB-INF/view/welcome.jsp").forward(request, response);;
} else {
request.setAttribute("errorMes", "Login Failed");
request.getRequestDispatcher("/WEB-INF/view/login.jsp").forward(request, response);;
}
}
jspページのボタンをクリックすると、サーブレットクラスのdoPost()メソッドがトリガされます。助けてください
/login.doエラー -
は、しかし、私は404 HTTPステータスを得続けます! ...
私はプロジェクトを実行すると、私はこのURLに接続しています私のweb.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- webapp/WEB-INF/web.xml -->
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>To do List</display-name>
<welcome-file-list>
<welcome-file>login.do</welcome-file>
</welcome-file-list>
:私はボタンにクリックしたときにhttp://localhost:8081/in28Minutes-first-webapp/
私はこれに接続されましたURL:http://localhost:8081/login.doと "HTTP Status 404 - /login.do"エラーが返されます
私は "$ {pageContext.request。 contextPath} /login.doは」、それはまだエラーになります
私は
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.in28minutes</groupId>
<artifactId>in28Minutes-first-webapp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<verbose>true</verbose>
<source>1.7</source>
<target>1.7</target>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/</path>
<contextReloadable>true</contextReloadable>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
ブラウザで使用した完全なURLは何ですか? – developer
http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java –
webappのコンテキストパスを前に追加する必要があります。 'action ="/myfirstwebapp/login.do "例えば、"。ハードコーディングを避けるには、$ {pageContext.request.contextPath} /login.do "'または '' JSTLタグを使用します。 –