jsp+servlet 간단 한 로그 인 페이지 기능 구현(데모 첨부)

7619 단어 jspservlet로그 인
구현 기능:
간단 한 로그 인 기능 을 모 의 하여 로그 인 에 성공 하여 새 페이지 로 넘 어 갑 니 다.로그 인 에 실 패 했 을 때 원래 로그 인 인터페이스 에서 로그 인 실패 정 보 를 알 립 니 다.
개발 환경:
  • eclipse
  • Tomcat-8.0
  • 예비 지식:
    HTML 태그,Servlet 관련 지식-요청 한 퍼 가기 와 리 셋,jsp 관련 지식,EL 표현 식
    아이디어 구현:총 2 개의 jsp,하나의 servlet
     1.로그 인 인터페이스 login.jsp:
    jsp 를 사용 합 니 다.html 를 사용 하지 않 는 이 유 는 로그 인 실패 정 보 를 표시 해 야 하기 때 문 입 니 다.(물론 html 로 ajax 를 결합 하면 실현 할 수 있 습 니 다.여 기 는 jsp 를 사용 하 는 것 이 더 편리 합 니 다)
    그림:

    2.로그 인 성공 인터페이스 hello.jsp:
    환영 정보+로그 인 한 사용자 이름
    그림:

    3.로그 인 실패 정보 표시 Login.jsp:
    그림:

    사고방식 약술:
        문제 1:jsp 페이지 는 자바 류 와 어떻게 연결 합 니까?
                    쉽게 말 하면 jsp 페이지 가 servlet 과 연결 되 려 면 다리 가 있어 야 합 니 다.이 다 리 는 웹.xml 파일 입 니 다.아래 코드 를 통 해 로그 인 페이지 의 폼 이 제출 한 action 속성 값 을 관찰 할 수 있 습 니 다.웹.xml 파일 에 대응 하 는 servlet-mapping 의 url-pattern 값 을 작성 하고 이 값 은 servlet-name 에 대응 합 니 다.servlet-name 은 servlet-class 에 대응 하여 jsp 와 자바 류(servlet 류)를 연결 합 니 다.
    사실 가장 뚜렷 한 것 은 폼 을 제출 한 후에 url 주소 가 바 뀌 었 다 고 생각 합 니 다.이 url 주 소 를 통 해 폼 정 보 를 해당 하 는 자바 류 에 전 달 했 습 니 다.
        문제 2:실현 의 전체적인 사고방식 은 어 떻 습 니까?
                    jsp 페이지 는 폼 요 소 를 통 해 사용자 정 보 를 url 형식 으로 웹.xml 에 매 핑 된 servlet 류,servlet 류 에서 전 송 된 폼 정 보 를 받 아 값 검증 을 진행 합 니 다.그 다음 에 검사 결 과 를 판단 합 니 다.계 정 비밀번호 가 정확 하면 로그 인 에 성공 한 페이지 로 이동 합 니 다(재 설정 사용).실패 하면 로그 인 에 실패 한 알림 정 보 를 request 도 메 인 대상 에 저장 하고 로그 인 인터페이스 로 되 돌려 줍 니 다(요청 한 퍼 가기 사용).
    간단 한 연락:
    jsp 페이지<------>웹.xml<------>servlet 클래스
        질문 3:servlet 에서 jsp 에서 제출 한 폼 정 보 를 어떻게 얻 습 니까?
                    request.getParameter("userName");//userName 은 폼 에 있 는 input 탭 의 name 속성 값 으로 string 형식 을 받 습 니 다.
        문제 4:로그 인 페이지 는 로그 인 실패 시 알림 메 시 지 를 어떻게 제공 합 니까?
                    로그 인 에 실패 하면 request 도 메 인 대상 에 로그 인 실패 알림 정 보 를 저장 한 다음 에 요청 한 퍼 가기 방식 으로 로그 인 페이지 로 넘 어가 표시 하 는 것 입 니 다.따라서 로그 인 인터페이스 에 스 크 립 트 코드 를 삽입 하여 현재 로그 인 실패 알림 정보 가 있 는 지 판단 하고 있 으 면 이 대상 이 저장 한 정 보 를 인쇄 합 니 다.없 으 면 아무것도 표시 되 지 않 습 니 다.
    1)계 정 비밀 이 일치 하지 않 으 면 request 도 메 인 에 message 대상 을 저장 합 니 다.이 message 에는 알림 정보 가 저 장 됩 니 다:request.setAttribute("message","계 정 비밀 오류,
    에 다시 로그 인하 십시오).
    로그 인 페이지 로 전송:request.getRequestDispatcher("/loginDemo/login.jsp").forward(request,response);
    2)로그 인 페이지 에서 이 대상 을 가 져 옵 니 다.(로그 인 에 실 패 했 을 때 만 이 대상 이 있 습 니 다.의문:로그 인 에 실패 한 후에 로그 인 페이지 를 방문 하면 잘못된 정보 가 표시 되 지 않 습 니까?답 은 부정 적 이다.request 필드 대상 수명 주기 지식 알 수 있 음)
    
                   <%
                           if(request.getAttribute("message")!= null){
            out.print(request.getAttribute("message")); 
                   }
                    %>
    
    
         질문 5:request.getAttribute()와 request.getParameter()의 차 이 는:
                    전 자 는 object 대상 을 가 져 왔 고 후 자 는 string 문자열 을 가 져 왔 기 때문에 전 자 는 사용 할 때 유형 전환 이 필요 한 상황 에 부 딪 힐 수 있 습 니 다.
         질문 6:폼 접근 경로 작성 문제
                    ation 속성 이나 요청 한 퍼 가기,방향 을 바 꾸 는 것 은 보통 절대적 인 경 로 를 사용 하여 경로 접근 오류,방문 자원 에 존재 하지 않 는 등 문 제 를 피 할 수 있 습 니 다.
                    jsp 표현 식:<%=request.getContextPath()%>또는 EL 표현 식:${pageContext.request.contextPath}은 현재 웹 응용 루트 디 렉 터 리 경 로 를 가 져 올 수 있 습 니 다.출력 인쇄 를 해 보 세 요.값 이 얼마 인지 관찰 할 수 있 습 니 다.
    구체 적 인 코드 코드:
    1.login.jsp:
    
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>  </title>
    <style type="text/css">
    	*{margin: 0;padding: 0;}
    	form{margin: 0 auto;padding:15px; width: 300px;height:300px;text-align: center;}
    	#submit{padding: 10px}
    	#submit input{width: 50px;height: 24px;}
    </style>
    </head>
    <body>
    	<div class="wrapper">
    		<form action="<%=request.getContextPath()%>/loginDemo" method="post">
    			<label>   :</label>
    				<input type="text" name="userName" value="${param.userName}"/><br><br>
    			<label>  :</label>
    				<input type="password" name="password"/><br>
    				
    			<font color="red">
    				<%
    					if(request.getAttribute("message")!= null){
    						out.print(request.getAttribute("message"));
    					}
    				%>
    			</font>
    			
    			<div id="submit">
    				<input type="submit" value="  "/>
    			</div>
    		</form>
    	</div>
    </body>
    </html>
    2.hello.jsp
    
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>  </title>
    </head>
    <body>
    	Hello:<br>
    	<font color="green" size="22">
    		<%
    			out.print(request.getParameter("userName")+"<br>");
    		%>
    	</font>
    	<a href="<%=request.getContextPath()%>/loginDemo/login.jsp">    </a>
    </body>
    </html>
    3.대응 하 는 LoginServlet.java
    
    package loginDemo;
     
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    public class LoginServlet extends HttpServlet {
    	
    	private static final long serialVersionUID = 1L;
     
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		String userName = request.getParameter("userName");
    		String password = request.getParameter("password");
    		System.err.println(userName+";"+password);
    		String myUser = "Dong";
    		String myPwd = "5432100";
    		if(userName.equals(myUser)&&password.equals(myPwd)) {
    			response.sendRedirect(request.getContextPath()+"/loginDemo/hello.jsp?userName="+userName);
    		}else {
    			request.setAttribute("message", "    ,     <br>");
    			request.getRequestDispatcher("/loginDemo/login.jsp").forward(request, response);
    		}
    		
    	}
    }
    4.웹.xml 설정(등록)과 맵
    
      <servlet>
          <servlet-name>logindemo</servlet-name>
          <servlet-class>loginDemo.LoginServlet</servlet-class>
      </servlet>
      <servlet-mapping>
          <servlet-name>logindemo</servlet-name>
          <url-pattern>/loginDemo</url-pattern>
      </servlet-mapping>
    jsp+servlet 간단 한 로그 인 페이지 기능 실현(데모 첨부)에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.jsp+servlet 로그 인 페이지 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기