JSP
JSP
java에서 WEB과의 접근을 추상화 클래스한 것으로 Servlet이 있다.
Client한테 request를 받아 Servlet을 통해 HTML을 출력할 수 있다.
하지만 이렇게 사용하게 되면 연결부터 import와 같은 Servlet작성에 필요한 코드를 작성하는데 많은 시간을 투자해야 할 것이다.
java에서는 이러한 Servlet을 대체하는 JSP를 지원하게 되는데 Servlet은 java 안에 HTML이였다면,
JSP는 HTML안에 java라고 말 할 수 있다.
Servlet과 JSP의 코드 차이
Servlet Code
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
req.setCharacterEncoding("EUC_KR");
res.setContentType("text/html;charset=euc_kr");
PrintWriter out = res.getWriter();
String id = req.getParameter("id");
String pwd = req.getParameter("pwd");
UserVO userVO = new UserVO(id,pwd);
UserPoolDao userPoolDao = new UserPoolDao();
userPoolDao.getUser(userVO);
out.println("<html>");
out.println("<head></head>");
out.println("<body>");
out.println("<h2>Login 화면</h2>");
if(userVO.isActive()) {
out.println(id+"님 환영합니다");
}else {
out.println("Login 실패 id,pwd를 확인하세요.");
}
out.println("<p><p><a href='/edu/jw04/login.html'>뒤로</a>");
out.println("</body>");
out.println("</html>");
}
Servlet은 위와 같이 html코드를 out.println()에 가두어 html코드를 작성한다.
JSP Code
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<html>
<head></head>
<body>
안녕하세요 html 시작<br/>
buffer 전체 크기 : <%= out.getBufferSize() %><br/>
buffer 잔여 크기 : <%= out.getRemaining() %><br/>
<hr/>
인위적 Exception 발생...
<% int number=0; %>
<% number = Integer.parseInt("a"); %>
<%="number : "+number %>
<hr/>
안녕하세요 html 끝<br/>
</body>
</html>
JSP는 위와 같이 html에 java코드를 작성하여 Servlet과 같이 다이나믹한 html을 보여주게된다.
Servlet과는 달리 코드가 간략하며 java에 Servlet의 연결과 작성하는 방법을 알지 못하더라도 손쉽게 작성 할 수 있다.
JSP 작성
html은
크게 3가지로 볼 수 있는데
- <% java~ %> ==> java 문법을 작성
- <%= java~ %> ==> out.println(java);
- <%! Field , method() %> ==> Field와 method를 선언 / 사용하지 않음
JSP는 8byte의 Buffer 방식(Default을 사용하는데 Buffer가 찻을 시 AutoFlush를 통해 출력한다.
만약 중간에 에러가 발생한다면 Buffer를 초기화하고 예외처리를 할 것이다.
만약 예외처리가 되지 않은 데이터를 출력하고 싶다면 <%@page buffer=”none” %> 을 선언하면 된다.
Leave a comment