이클립스 톰캣 설정 시 체크 부분



- Use Tomact installation 을 체크 하면 톰캣 위치로 path가 바뀜

- xml publish 체크

- HTTP/1.1의 포트 변경 ( 오라클 설치 시 8080 사용하기 때문에 다른 포트번호로 변경함. )


'WEB > JSP' 카테고리의 다른 글

MVC패턴(모델2방식)  (0) 2013.05.04
아파치, 이클립스 설치  (0) 2013.05.04
26. Filter  (0) 2013.04.24
25. error page  (0) 2013.04.23
24. 템플릿 페이지  (0) 2013.04.23


[[ MVC패턴(모델2방식) ]]


  - Model,View,Controller로 나누어서 구분하는 방식


  - Model : 비즈니스로직을 처리(자바객체,..)

    View : 결과를 화면에 출력담당(jsp,..)

    Controller : Model객체를 결과값을 가지고 뷰페이지로 가는 역할(Model과 view의 연결역할)

    -->서블릿으로 구현


  - 컨트롤러의 처리단계

   1) 클라이언트의 요청분석

   2) 요청에 따른 비즈니스 로직 처리

   3) 비즈니스로직을 처리한 결과값 담기(request,session 등)

   4) 뷰페이지로 이동(포워드 또는 리다이렉트) 




'WEB > JSP' 카테고리의 다른 글

tomcat 설치 후 이클립스 설정  (0) 2017.05.24
아파치, 이클립스 설치  (0) 2013.05.04
26. Filter  (0) 2013.04.24
25. error page  (0) 2013.04.23
24. 템플릿 페이지  (0) 2013.04.23



1. 아파치 다운 설치

http://tomcat.apache.org/download-70.cgi



- 압축을 푼다.



2. 이클립스

- javaEE

- dynamic web project로 project 생성후

- 하단 server 탭에서 server선택 ( 아파치 7.0 을 다운받았으므로 )

- 아파치 폴더 선택( bin, conf, lib 등 폴더가 있는 아파치 폴더 선택 )

- WebContent 폴더 밑에는 html, jsp 등 파일 생성

- 웹서버 포트 변경 시 server.xml 에서 포트 변경.


3. 브라우저 

검색기록-설정-임시인터넷파일-웹페이지를 열때마다 로 변경.






'WEB > JSP' 카테고리의 다른 글

tomcat 설치 후 이클립스 설정  (0) 2017.05.24
MVC패턴(모델2방식)  (0) 2013.05.04
26. Filter  (0) 2013.04.24
25. error page  (0) 2013.04.23
24. 템플릿 페이지  (0) 2013.04.23

필터(Filter)


- 클라이언트의 요청을 중간에 가로채서 요청페이지로 가기전에 특정작업을 수행함.

 수행후 요청페이지로 갈수 있고 필터에서 다른페이지로 이동도 가능하다.


- 만드는 방법

 Filter인터페이스를 상속받아 doFilter메소드에서 처리할 작업을 구현한다.

 web.xml 에 필터매핑을 설정한다.





EX1> 한글 encoding




web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

  <display-name>day09_Filter</display-name>

  <welcome-file-list>

    <welcome-file>index.html</welcome-file>

  </welcome-file-list>

  <!-- //////////////// 필터 설정하기 ///////////////// -->

  <!-- 필터정의하기 -->

  <filter>

  <filter-name>encodingFilter</filter-name>

  <filter-class>test.filter.EncodingFilter</filter-class>

  <!-- 초기화 파라미터 설정하기 -->

  <init-param>

  <param-name>encoding</param-name>

  <param-value>euc-kr</param-value>

  </init-param>

  </filter>

  <!-- 필터매핑하기

    encodingFilter는 /하위 모든 페이지를 요청할때마다 자동 호출됨

   -->

  <filter-mapping>

  <filter-name>encodingFilter</filter-name>

  <url-pattern>/*</url-pattern>

  </filter-mapping>

  <!-- //////////////////////////////////////////////// -->

</web-app>



EncodingFilter.java

package test.filter;


import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;


public class EncodingFilter implements Filter {

private String encoding = null;

@Override

public void destroy() {

System.out.println("destory메소드 호출");

encoding=null;

}

//필터를 요청할때 마다 자동 호출됨.

//클라이언트의 요청을 가로채서 해야 할일을 구현

@Override

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) throws IOException, ServletException {

System.out.println("dofilter메소드 호출");

// 인코딩방식이 설정되어 있지 않은 경우

if(request.getCharacterEncoding()==null){

if(encoding!=null){

//인코딩 설정하기

request.setCharacterEncoding(encoding);

}

}

// 다음 필터 수행하기. 다음에 수행할 필터가 있으면 필터를 수행하고

// 더이상 수행할 필터가 없으면 사용자가 요청한 페이지로 이동한다.

chain.doFilter(request, response);

}

//최초로 필터가 요청될때 딱 한번만 호출되는 메소드

// doFilter 메소드가 수행되기 위한 준비작업, 초기화 작업

@Override

public void init(FilterConfig config) throws ServletException {

// TODO Auto-generated method stub

System.out.println("init메소드 호출");

//web.xml에 설정된 초기화 파라미터값(설정할 인코딩 방식) 얻어오기.

encoding=config.getInitParameter("encoding");

}

}



insert.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!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=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<form action="insertOk.jsp" method="post">

이름<input type="text" name="name"/><br/>

전화번호<input type="text" name="phone"/><br/>

주소<input type="text" name="address"/><br/>

<input type="submit" value="전송"/>

</form>

</body>

</html>



insertOk.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!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=EUC-KR">

<title>Insert title here</title>

<%

String name=request.getParameter("name");

String phone=request.getParameter("phone");

String address=request.getParameter("address");

%>

</head>

<body>

<%=name %><br/>

<%=phone %><br/>

<%=address %><br/>

<hr/>

${ param.name }<br/>

${ param.phone }<br/>

${ param.address }<br/>

</body>

</html>







EX2> 로그아웃이 된 상태이면 회원질문게시판, 마이페이지로 이동하면 자동으로 로그인페이지로 이동하게 하는 예제

- 로그인 필터.( member밑에 모든 페이지를 호출할때마다 필터 적용 )

- 어노테이션 사용.





web.xml에 filter설정없이 어노테이션 사용. ( LoginFilter.java파일에)


 LoginFilter.java

package test.filter;


import java.io.IOException;


import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.annotation.WebFilter;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;


@WebFilter("/member/*")

public class LoginFilter implements Filter {


@Override

public void destroy() {

}


@Override

public void doFilter(ServletRequest req, ServletResponse resp,

FilterChain chain) throws IOException, ServletException {

//자식인 HttpServletRequest에 세션을 얻어오는 메소드가 있으므로 

// 자식으로 형변환 하기.

HttpServletRequest request = (HttpServletRequest)req;

//세션객체 얻어오기

HttpSession session = request.getSession();

boolean login=false; // 로그인 되었는지에 대한 상태

if(session!=null){

//세션에서 id꺼내오기(로그인한 사용자는 세션에 id가 저장되어 있음)

String id=(String)session.getAttribute("id");

if(id!=null){//로그인한 사용자 라면

login=true; // 로그인 상태를 true로 설정

}

}

if(login){//로그인한 경우

chain.doFilter(req, resp);

}else{//로그인안한 경우

HttpServletResponse response = (HttpServletResponse)resp;

response.sendRedirect(request.getContextPath() + "/login/login.jsp");

}

}


@Override

public void init(FilterConfig config) throws ServletException {

}

}


main.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!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=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<a href="login/login.jsp">로그인하기</a><br/>

<a href="member/board.jsp">회원질문게시판</a><br/>

<a href="member/mypage.jsp">마이페이지</a><br/>

</body>

</html>




login/login.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<%

String cp=request.getContextPath();  

%>

<!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=EUC-KR">

<title>Insert title here</title>

<style type="text/css">

#msg{

font-size: 10pt;

color:red;

}

</style>

</head>

<body>

<form action="loginOk.jsp" method="post">

아이디:<input type="text" name="id"/><br/>

비밀번호:<input type="password" name="pwd"/><br/>

<div id="msg">${ requestScope.errMsg }</div>

<input type="submit" value="로그인"/>

<input type="reset" value="취소"/>

</form>

</body>

</html>


login/loginOk.jsp

; id: song   pwd: 1234 와 비교

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!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=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<%

String id=request.getParameter("id");

String pwd=request.getParameter("pwd");

if(id.equals("song") && pwd.equals("1234")){

session.setAttribute("id", id);

response.sendRedirect("../member/board.jsp");

}else{

%>

<script type="text/javascript">

alert("아이디 또는 비밀번호가 틀려요!");

history.go(-1);

</script>

<%

}

%>

</body>

</html>


login/logout.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!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=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<%

session.invalidate();

%>

로그아웃되셨습니다.<br/>

<a href="<%=request.getContextPath() %>/main.jsp">메인으로 이동</a>

</body>

</html>


member/board.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!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=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<div style="text-align:right;width:900px">

[${ id }]님 반갑습니다.

<a href="../login/logout.jsp">로그아웃</a>

<a href="../main.jsp">메인으로</a>

</div>

<h2>질문게시판</h2>

게시판 ~~

</body>

</html>


member/mypage.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!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=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<div style="text-align:right;width:900px">

[${ id }]님 반갑습니다.

<a href="logout.jsp">로그아웃</a>

<a href="../main.jsp">메인으로</a>

</div>

<h2>마이페이지</h2>

회원님.정보입니다.~~

</body>

</html>




'WEB > JSP' 카테고리의 다른 글

MVC패턴(모델2방식)  (0) 2013.05.04
아파치, 이클립스 설치  (0) 2013.05.04
25. error page  (0) 2013.04.23
24. 템플릿 페이지  (0) 2013.04.23
23. include  (0) 2013.04.23

에러 처리 페이지

- 관련 에러 페이지를 만든다.

- web.xml에 등록하여 해당페이지로 보낸다.



web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

  <display-name>day09_ErrorPage</display-name>

  <welcome-file-list>

    <welcome-file>index.html</welcome-file>

    <welcome-file>index.htm</welcome-file>

    <welcome-file>index.jsp</welcome-file>

    <welcome-file>default.html</welcome-file>

    <welcome-file>default.htm</welcome-file>

    <welcome-file>default.jsp</welcome-file>

  </welcome-file-list>

  <error-page>

  <error-code>404</error-code>

  <location>/error/error404.jsp</location>

  </error-page>

  <error-page>

  <error-code>500</error-code>

  <location>/error/error500.jsp</location>

  </error-page>

</web-app>



error500.jsp

isErrorPage="true" 

errorPage속성이 true이면 exception객체가 자동으로 생성되며

 익셉션에 관련된 정보(오류메시지,익셉션클래스등)을 갖는다.


<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR" isErrorPage="true" %>

<!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=EUC-KR">

<title>Insert title here</title>

</head>

<body>

죄송합니다.<br/>

내부적으로 오류가 발생되었습니다.<br/>

오류메시지 : <%=exception.getMessage() %>

신속히 조치하겠습니다.<br/>

<a href="main.jsp">메인 페이지로 이동하기</a><br/>

</body>

</html>





error404.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR" isErrorPage="true" %>

<!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=EUC-KR">

<title>Insert title here</title>

</head>

<body>

죄송합니다.<br/>

해당페이지를 찾지 못하였습니다.<br/>

<a href="main.jsp">메인 페이지로 이동하기</a><br/>

</body>

</html>




EX> main.jsp --> test.jsp ; error를 발생시켜 page이동


main.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!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=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<a href="test.jsp">test.jsp</a>

</body>

</html>




test.jsp

; 오류를 발생시켜 에러 페이지로 이동하도록 한다.

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR" %>

<!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=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<%

String ss=null;

int n=ss.length();

%>

n:<%=n %>

</body>

</html>



'WEB > JSP' 카테고리의 다른 글

아파치, 이클립스 설치  (0) 2013.05.04
26. Filter  (0) 2013.04.24
24. 템플릿 페이지  (0) 2013.04.23
23. include  (0) 2013.04.23
22. JSTL  (0) 2013.04.23

+ Recent posts