Cześć,
w rzeczywistości jest to niewielki, ale irytujący problem. Tworzę appkę w JSP i Mavenie z podpięciem do bazy danych Oracle. Mój formularz ma dwa dane wejściowe: indexNo i passAcc, w których wpisuję numer indeksu i hasło studenta.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Wikamp | Student Login</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link">Wikamp</a>
</li>
</ul>
</nav>
<section>
<div class="wrapper fadeInDown">
<div class="formContent">
<div class="fadeIn first">
<img src="photos/student__graduation__degree__hat__education-512.png" class="icon" alt="User Icon" />
</div>
<form action="StudentLogin" method="POST">
<input type="text" name="indexNo" class="fadeIn fourth" required autofocus></br>
<input type="password" name="passAcc" class="fadeIn fourth" required></br>
<input type="submit" class="fadeIn fourth" value="Log In">
</form>
</div>
</div>
</section>
</body>
</html>
Jednak projekt nie może nawet znaleźć serwletu, w którym metoda doPost powinna dokonać przekierowania na stronę. Serwlet nazywa się StudentLogin i poniżej znajduje się jego kod.
http://localhost:8090/Wikamp/StudentLogin - jest to link, który pojawia się po kliknięciu przycisku "Log In" w pliku .jsp, którego kod można znaleźć powyżej.
package com.wikamp.servlets;
import com.wikamp.dao.StudentDAO;
import com.wikamp.users.Student;
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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.sql.SQLException;
@WebServlet("/StudentLogin")
public class StudentLogin extends HttpServlet {
private StudentDAO studentDAO;
private Student student;
private int indexNo;
private String passwordAcc;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
try {
studentDAO = new StudentDAO();
indexNo = Integer.valueOf(request.getParameter("indexNo"));
passwordAcc = request.getParameter("passAcc");
student = studentDAO.getStudent(indexNo,passwordAcc);
if (student!=null && (student.getNUMER_INDEKSU()>1000 && student.getPASSWORD_ACC()!=null)) {
HttpSession httpSession = request.getSession();
httpSession.setAttribute("indexNo",indexNo);
response.sendRedirect("StudentDashboard?indexNo="+indexNo);
}
else {
response.sendRedirect("None");
}
}
catch (NullPointerException | SQLException ex) {
System.out.println(ex.getMessage());
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
Obawiam się, że zrobiłem coś źle w strukturze projektu lub pliku pom.xml. Na wszelki wypadek udostępniam również następujący kod:
<?xml version="1.0" encoding="UTF-8"?>
<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.wikamp</groupId>
<artifactId>Wikamp</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>Wikamp Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>maven.oracle.com</id>
<name>oracle-maven-repo</name>
<url>https://maven.oracle.com</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven.oracle.com</id>
<name>oracle-maven-repo</name>
<url>https://maven.oracle.com</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
</pluginRepository>
</pluginRepositories>
<build>
<finalName>Wikamp</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
Dodam jeszcze, że mam na swoim laptopie dwa projekty JSP, i obydwa uruchamiam z pomoca Tomcata na porcie 8090.
Poproszę o pomoc, bo na tym drugim projekcie wszystko mi idealnie działa, w przeciwieństwie to tego przedstawionego powyżej.