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();
}
}
'개발자 > 국비지원 SW' 카테고리의 다른 글
국비지원 52일차 - HTTP, POST방식, memo예시 (0) | 2020.06.26 |
---|---|
국비지원 51일차 - JavaScript String객체, 함수, 정규식(RegExp)객체 (1) | 2020.06.25 |
국비지원 49일차 - UML, Use Case specification, JavaScript Date객체, 달력 (0) | 2020.06.23 |
국비지원 48일차 - JavaScript 이벤트 종류, 이벤트 처리 (0) | 2020.06.22 |
국비지원 47일차 - JTextPane, JavaScript Math객체, 가위바위보 (0) | 2020.06.19 |