Hallo Ich habe eine Embedded Tomcat Java-Anwendung. Der Tomcat startet und die index.jsp wird angezeigt.Java Servlett-Mapping
Jetzt habe ich eine Ein Ajax-Anfrage, die wie folgt aussieht:
function auth(){
username = document.getElementById('login_username').value;
password = document.getElementById('login_pw').value;
if(username.length > 0 && password.length > 0){
$.ajax({
method: "POST",
url: '/login',
data: 'username=' + username + '&password=' + password
}).done(function(response){
console.log(response);
response = response.split(',');
if(response.length == 2){
window.location = response[1];
}
});
}
}
Die Auth() funktioniert. Aber jedes Mal bekomme ich einen 404 Fehler.
Das Servlet, das die Anforderung erhalten sollte wie folgt aussieht:
@WebServlet(
name="login",
urlPatterns = {"/login","sites/login","login"}
)
public class LoginServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
private ServletContext context;
public LoginServlet(){
super();
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Log.log("get");
resp.setContentType("text/html");
PrintWriter out=resp.getWriter();
Page p = new Page();
p.getBody().setContent("GET");
out.print(p.create());
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Log.log("Post");
resp.setContentType("text/html");
PrintWriter out=resp.getWriter();
Page p = new Page();
p.getBody().setContent("POST");
out.print(p.create());
}
public void init(ServletConfig config)throws ServletException{
this.context = config.getServletContext();
Log.log("Login servlet Initialized");
}
}
Meine Frage ist, warum ist dies nicht funktioniert. Muss ich das servlett dem Tomcat mit der Methode tomcat.addServlet (string, string, string) hinzufügen ?;
Es funktioniert, wenn ich eine login.jsp im Basisordner meiner Webapp erstellen und wenn ich die URL der Ajax-Anfrage zu login.jsp ändere.
Dank
Überprüfen Sie die URL in der Browser-Konsole von Ajax angefordert. Versuchen Sie die gleiche URL im Browser für mögliche Fehlerprotokolle –