[JSP&Servlet] JSP 내장객체, 액션, 컴포넌트
> pageContext 관련 메서드
getPage() |
이 페이지에 대한 서블릿인스턴스, 즉 page 내장 객체를 반환한다 |
getRequest() |
request 내장 객체를 반환한다 |
getResponse() |
response 내장 객체를 반환한다 |
getOut() |
Out 내장 객체를 반환한다 |
getSession() |
Session 내장 객체를 반환한다 |
getServletConfig() |
ServletConfig 내장 객체를 반환한다 |
getServletContext() |
ServletContext내장 객체를 반환한다 |
getException() |
Exception 내장 객체를 반환한다 |
forward(path) |
상대 URL 패스에 해당하는 자원으로 요청을 forward 한다. |
Include(path) |
상대 URL 패스에 해당하는 자원을 수행시키고 그 결과를 include 한다. |
> JSP태그
1. 스트립트
<% %>
<%= %> 내장객체
=====================
<%! %>
<%@ %>
2. XML
· 표준 액션 태그 : 표준, 기본 XML태그
· 커스텀 태그 : 개발자가 만드는 태그
> Include액션
항목 |
include 지시자 |
include 액션 |
구문 |
<%@ include file=….%> |
<jsp:include page=…../> |
경로 |
현재 jsp 파일 상대 경로 |
현재 jsp 페이지 상대 경로 |
대상 |
정적 |
정적 또는 동적 |
설명 |
대상이 컨테이너에 의해 파싱 |
대상이 컨테이너에 의해 파싱되지 않음, 수행결과가 포함됨 |
수행 |
변환시점 |
요청처리 시점 |
> HttpSession 로그인/로그아웃 처리과정
1. ID와 PW를 입력 받음
2. Parameter 추출
3. 유효성 체크 ==> fail ==> 입력페이지로 돌려보냄
4. DB data와 비교 ==> fail ==> 입력페이지로 돌려보냄
5. 로그인 상태 여부 판단 ==> 로그인중 ==> 로그인상태 메시지 출력
6. 로그인 처리
· HttpSession에 data 등록
o setAttribute(name,value)
7. 로그인상태 여부 판단 ==> 로그아웃중 ==> 로그인되어 있지 않음 메세지출력
8. 로그아웃 처리
· HttpSession에 data 삭제
o removeAttribute(name)
· HttpSession 삭제
o invalidate()
> 사용자 인증 /인증해제 예제
// 파일명 : MemberAuthServlet.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class MemberAuthServlet extends HttpServlet {
public void doPost (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
Connection conn = null;
res.setContentType("text/html; charset=euc-kr");
PrintWriter out = res.getWriter();
String id =req.getParameter("id");
String passwd = req.getParameter("passwd");
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection
("jdbc:oracle:thin:@70.12.220.31:1521:ora9","ora01","ora01");
Statement stmt = conn.createStatement();
String selectquery = "select id, passwd from member where id = '"+id+"'";
ResultSet rs = stmt.executeQuery(selectquery);
if(rs.next()) {
if(rs.getString(2).trim().equals(passwd)) {
if(session_set(req,res,id))
out.print("<H4>회원 인증이 완료되었습니다 !!</H4>");
else
out.print("<H4>이미 회원 인증을 하셨군요!!</H4>");
} else
out.print("<H4>패스워드가 틀립니다.!!<BR>"+
"회원 인증 절차를 다시 수행하여 주십시오.....</H4>");
} else {
out.print("<H4>입력하신 계정이 존재하지 않습니다!!</H4>");
}
} catch (ClassNotFoundException e1) {
out.print("<H4>시스템 장애로 처리가 불가능합니다.</H4>");
System.out.println("드라이버 로딩 오류 발생 : " + e1);
} catch (SQLException e2) {
out.print("<H4>시스템 장애로 처리가 불가능합니다.</H4>");
System.out.println("DB 연동 오류 발생 : " + e2);
} finally {
out.close();
try {
if (conn != null)
conn.close();
} catch (Exception e) {
System.out.println("DB 접속 해제 오류 발생 :"+e);
}
}
}
public boolean session_set(HttpServletRequest req, HttpServletResponse
res, String id) throws ServletException, IOException {
HttpSession session = req.getSession(true);
if (session.isNew() || session.getAttribute("memberid") ==null){
session.setAttribute("memberid",id);
return true;
} else {
return false;
}
}
public void doGet (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html; charset=EUC-KR");
PrintWriter out= res.getWriter();
HttpSession session = req.getSession(false);
if (session !=null && session.getAttribute("memberid") !=null ) {
session.removeAttribute("memberid");
out.print("<H4>인증 상태가 해제되었습니다!!</H4>");
} else {
out.print("<H4>인증을 수행하지 않으셨네요!!</H4>");
}
out.close();
}
}
<!-- 파일명 : authmain.html -->
<HTML>
<HEAD>
<TITLE>회원 인증 처리</TITLE>
</HEAD>
<FRAMESET cols="30%,70%" >
<FRAME src=authmenu.html>
<FRAME name=right src=about:blank>
</FRAMESET>
</HTML>
<!-- 파일명 : authinsert.html -->
<HTML>
<HEAD>
<TITLE>회원 인증</TITLE>
</HEAD>
<BODY>
<H1 style="background-color:yellow"> 회원 인증 </H1><HR>
<P style="border-style:double;border-color:green">
계정과 패스워드를 입력하여 주십시오 </p>
<FORM action=/edu/servlet/MemberAuthServlet method=post>
계 정 : <INPUT type=text name=id> <br>
패스워드 : <INPUT type=password name=passwd> <br>
<INPUT type=submit value=인증>
<INPUT type=reset value=재작성>
</FORM>
</BODY>
</HTML>
<!-- 파일명 : authmenu.html -->
<HTML>
<HEAD>
<TITLE>회원 인증 처리</TITLE>
</HEAD>
<BODY>
<style type="text/css">
a {
cursor:crosshair;
}
</style>
<A href=authinsert.html target=right>회원 인증</A><BR>
<A href=/edu/servlet/MemberAuthServlet target=right>인증 해제</A><BR>
</BODY>
</HTML>
<결과>
<인증완료>
<인증해제> - 정상적인 인증해제
<인증해제 - 인증하지 않은경우>
<비밀번호오류>
<계정없음>
'개발참고' 카테고리의 다른 글
[Java] 자바의 형식을 의미하는 식별자, 상수를 나타내는 자료형 (0) | 2020.05.20 |
---|---|
[Java] Java란 무엇인가? (0) | 2020.05.20 |
[JSP&Servlet] JSP 개요 (0) | 2020.05.19 |
[JSP&Servlet] 서블릿오류처리,쿠키,세션트레킹,리스너,요청재지정 (0) | 2020.05.19 |
[JSP&Servlet] 서블릿,QUERY문자열 (0) | 2020.05.19 |