JSP
WAS란?
Web Application Server를 의미 좁은 의미로 JSP(Servlet)컨테이너
WAS종류 Tomcat, Resin, JBoss...

환경설정
1)
다운 - tomcat.apache.org - (전자정부나 대부분 Java는 8버전이므로 tomcat도 8.5.56버전을 받는다.)
포트번호는 oracle도 8080을 사용하기 때문에 9090으로 다운한다.
localhost:9090으로 접속하면 webapps에 index.jsp를 보여준다.
2)
환경변수 설정
CATALINA_HOME 설정
변수명: CATALINA_HOME
변수 값: C:\Tomcat 8.5 (Tomcat 경로)
PATH편집
Path - 편집 추가 %CATALINA_HOME%\BIN
3)
Tomcat lib에는 ojbc6을 추가하고
java-jdk-jre-ext-lib에는 jsp-api , el-api, servlet-api를 추가한다.
4)
Tomcat - conf - context에 19번째줄에 
<Context reloadable="true" privileged="true">로 바꾼다.

Tomcat 8.5/webapps/ROOT [context]/hello.html
===>localhost:9090/hello.html
webapps ==> 웹 어플리케이션들을 두는 곳이다.
spec--------------------------------------------------
ROOT 컨텍스트 => 웹 어플리케이션
  +--WEB-INF 
      +--lib:웹 어플리케이션에서 참조할 라이브러리를 둔다.
      +--classes: 자바 클래스파일들을 두는 곳
      +--src: 자바 원시코드들을 두는 곳
      +-----web.xml (웹 어플리케이션과 관련된 정보들이 설정됨)
------------------------------------------------------

server에서 class파일 실행
web xml 파일에 서블릿 등록을 하여
class파일을 /aaa와 연결하는 것이다.

<!--서블릿 등록-->
 <servlet>
	<servlet-name>Hello</servlet-name>
	<servlet-class>my.com.HelloServlet</servlet-class>
 </servlet>
<!--서블릿과  URL을 매핑-->
 <servlet-mapping>
	<servlet-name>Hello</servlet-name>
	<url-pattern>/aaa</url-pattern>
 </servlet-mapping>

Servlet은 web.xml에 등록해야 서비스가 가능하지만
@WebServlet("/url-pattern")
어노테이션을 달아서 좀 더 간편하게 사용할 수 있다.

Dyanamic Web Project로 이클립스에서 생성하면

MyWeb
 +--JavaResource/src ==>자바 파일들
 +--build ==>클래스파일들
 +--WebContent ==> 웹 페이지들에서 사용하는 파일들 (html, jsp, js, css, 이미지 파일들)
             +--WEB-INF
                    +--lib ==> 지역적으로 참조할 라이브러리들을 여기에 둔다.
                    +--web.xml

GET방식
http://localhost:9090/MyWeb/GetServlet?userid=123&userPwd=23

package my.com;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class GetServlet
 */
@WebServlet("/GetServlet")
public class GetServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	//get방식의 요청이 오는 것을 처리하고자 할 때는 doGet()메소드를 오버라이드한다.
    
	protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
		res.setContentType("text/html;charset=UTF-8");
		PrintWriter out = res.getWriter();
		//input.html에서 사용자가 입력한 값을 받아보자.
		//String getParameter("파라미터이름");
		
		String id = req.getParameter("userid");
		String pwd=req.getParameter("userPwd");
		
		//유효성 체크하기(null이거나 빈문자열일 경우 체크)
		if(id==null||pwd==null) {
			out.println("<script>");
			out.println("alert('잘못 들어온 경로');");
			out.println("location.href='input.html';");
			out.println("</script>");
		}
		if(id.trim().isEmpty()||pwd.trim().isEmpty()) {
			out.println("<script>");
			out.println("alert('아이디와 비밀번호를 입력해야 해요');");
			out.println("history.back()");
			out.println("</script>");
			return;
		}
		out.println("<h1>아이디:"+id+"</h1>");
		out.println("<h1>패스워드:"+pwd+"</h1>");
		out.close();
	}
}

 

+ Recent posts