所以我創建了新的maven模塊。我使用「maven-archetype-webapp」來創建它。當我在index.jsp中執行正常的文本時,它可以正常工作。但我也想做servlet。HTTP狀態404 - servlet jsp
我會馬上寫下我是如何製作它的。我點擊了我的Module和New-> Servlet。 Java包:pl.marek,類名:MyServlet,後來我選擇了「doPost」和「doGet」。這裏是我的文件,怎麼看起來像:
的index.jsp
<%@page import="java.util.Date"%>
<%@page import="pl.marek.countriesmapper.reader.*" %>
<%@page import="pl.marek.countriesmapper.preparer.*" %>
<%@page import="pl.marek.countriesmapper.country.*" %>
<%@ page language="java" contentType="text/html; charset=US-ASCII"
pageEncoding="US-ASCII"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Hello</title>
</head>
<body>
<form action="MyServlet">
Please enter your Username: <input type="text" name="username" size="20px"> <br>
Please enter your Password: <input type="text" name="password" size="20px"> <br><br>
<input type="submit" value="submit">
</form>
</body>
</html>
MyServlet.java
package pl.marek;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class MyServlet
*/
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public MyServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
PrintWriter out = response.getWriter();
out.println (
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" +" +
"http://www.w3.org/TR/html4/loose.dtd\">\n" +
"<html> \n" +
"<head> \n" +
"<meta http-equiv=\"Content-Type\" content=\"text/html; " +
"charset=ISO-8859-1\"> \n" +
"<title> Crunchify.com JSP Servlet Example </title> \n" +
"</head> \n" +
"<body> <div align='center'> \n" +
"<style= \"font-size=\"12px\" color='black'\"" + "\">" +
"Username: " + username + " <br> " +
"Password: " + password +
"</font></body> \n" +
"</html>"
);
}
}
/**
* @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);
}
}
的web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>MyServlet</servlet-name>
<display-name>MyServlet</display-name>
<description></description>
<servlet-class>pl.marek.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>MyServlet</url-pattern>
</servlet-mapping>
</web-app>
這裏是我的項目的照片:
,當我點擊提交我的地址:本地主機:8080/WebAplication/MyServlet用戶名= test123 &密碼= test321
但在網頁上我有:
HTTP Status 404 -
type Status report
message
description The requested resource is not available.
Apache Tomcat/7.0.47
有人可能有想法我做錯了什麼? :/
@edit
我 「/」 在web.xml中,現在我有這樣的刪除:
HTTP Status 500 - Error instantiating servlet class pl.marek.MyServlet
錯誤500解決了,但我仍然有404狀態:/
@ EDIT2
我做了什麼寫SaviNuclear和我還有404錯誤:/
@edit 3
問題解決。我不得不創建src/java而不是src/resources。
'username = test123 $ password = test321' ?? ??那應該是'username = test123&password = test321'? –
是的,我的錯誤,因爲我沒有複製它,但手動寫入:P –
如果你訪問Servlet時沒有獲取參數,你是否也得到404? http:// localhost:8080/WebAplication/MyServlet – Alex