jsp+servlet 간단 한 로그 인 페이지 기능 구현(데모 첨부)
간단 한 로그 인 기능 을 모 의 하여 로그 인 에 성공 하여 새 페이지 로 넘 어 갑 니 다.로그 인 에 실 패 했 을 때 원래 로그 인 인터페이스 에서 로그 인 실패 정 보 를 알 립 니 다.
개발 환경:
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 로그 인 페이지 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JSP| EL (Experession Language)텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.