jsp와 servlet을 모두 사용하여 로그인 양식을 설정했습니다. 서블릿을 컨트롤러로 사용하고 jsp를 모델로 사용했습니다.MVC 기반 JSP 서블릿 -JDBC 로그인
JSP :
<%@page import="com.horizon.entity.Users"%>
<%@page import="com.horizon.da.UserDA"%>
<%@page import="com.horizon.service.UserService"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Welcome to Horizon Airways</title>
</head>
<body>
<h2 align="center">Welcome to</h2><br>
<h1 align="center">Horizon Airways</h1><br><hr>
<form action="./login.do" method="post">
<table align="center">
<tr>
<th>User name: </th>
<td><input type="text" name="username"></td>
</tr>
<tr>
<th>Pass word: </th>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td align="center">
<input type="submit" value="Login">
</td>
<td align="center"><input type="reset" value="Clear"></td>
</tr>
</table>
</form>
</body>
</html>
서블릿 : 여기 코드는
package com.horizon.servlet;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.horizon.da.UserDA;
import com.horizon.entity.Users;
import com.horizon.service.UserService;
public class ControllerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public ControllerServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String path = request.getServletPath();
HttpSession session = request.getSession();
if(path.equals("/login.do")) {
String username = request.getParameter("username");
String password = request.getParameter("password");
UserService service = new UserService();
UserDA da = new UserDA();
service.setDA(da);
Users user = da.verifyUser(username, password);
session.setAttribute("user", user);
String address = null;
if(user.getRole() == "Business Manager")
address = "./view.jsp";
else if(user.getRole() == "Counter Assistant")
address = "./manage.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(address);
dispatcher.forward(request, response);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
그리고 여기 오류는 다음과 같습니다
Nov 28, 2014 12:00:19 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [ControllerServlet] in context with path [/HorizonAirways] threw exception java.lang.NullPointerException at com.horizon.servlet.ControllerServlet.doGet(ControllerServlet.java:43) at com.horizon.servlet.ControllerServlet.doPost(ControllerServlet.java:49) at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
내가 날 여기 데 도움이 사람을 주셔서 감사합니다.
나는 귀하의 제안 인 Arvind를 테스트 한 결과 효과가있었습니다. 고맙습니다. 나는이 코드를 몇 시간 동안 강조했다. – randomprogrammer
@randomprogrammer 내 대답을 확인하고 피드백을 줄 수있다. –