'프로그래밍, 통계학/Servlet'에 해당되는 글 2건

연습
input_Test.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function test() {
var ag = document.getElementsByTagName("input");
var t = document.getElementsByClassName("t1");
var id1 = document.getElementById("id1");
var n = document.getElementsByTagName("n1");
}
</script>
<style type="text/css">
input{
}
.t1{
}
#id1{
}
</style>
</head>
<body>
<form action="">
ID:<input type="text" class="t1" id="id1" name="n1"><br>
PW:<input type="password" class="t1" id="id2" name="n1"><br>
age:<input type="number" class="t1" id="id3" name="n1"><br>
soccer<input type="checkbox" class="t1" id="id4" name="n1" value="soccer" checked="checked">
baseball<input type="checkbox" class="t1" id="id5" name="n1">
basketball<input type="checkbox" class="t1" id="id6" name="n1">
volleyball<input type="checkbox" class="t1" id="id7" name="n1"><br>
HTML<input type="radio" class="t1" id="id8" name="n1" value="HTML"> 
JS<input type="radio" class="t1" id="id9" name="n1">
JAVA<input type="radio" class="t1" id="id10" name="n1">
JSP<input type="radio" class="t1" id="id11" name="n1"><br>
<select class="t1" id="id12" name="n1">
<option value="SKT">SKT</option>
<option>LGT</option>
<option>KT</option>
</select><br>
memo<textarea rows="20" cols="20" class="t1" id="id13" name="n1">
</textarea><br>
<input type="submit" class="t1" id="id14" name="n1">
<input type="reset" class="t1" id="id15" name="n1">
</form>
</body>
</html>





name이 자바의 변수명
value가 자바의 값


************************************************************************************

연습2


HTML파일

input_Test2.html


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<form action="result.do" method="post">

name:<input type="text" name="yName"><br>

gender:<input type="text" name="yGender">

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

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


</form>

</body>

</html>



웹xml파일

web.xml


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

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

  <servlet>

    <servlet-name>goprocess</servlet-name>

    <servlet-class>ProcessOk</servlet-class>

  </servlet>

  <servlet-mapping>

    <servlet-name>goprocess</servlet-name>

    <url-pattern>/result.do</url-pattern>

  </servlet-mapping>

</web-app>



Servelet파일

ProcessOk.java





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 ProcessOk

 */

@WebServlet("/ProcessOk")

public class ProcessOk extends HttpServlet {

private static final long serialVersionUID = 1L;

       

    /**

     * @see HttpServlet#HttpServlet()

     */

    public ProcessOk() {

        super();

        // TODO Auto-generated constructor stub

    }


/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

response.getWriter().append("Served at: ").append(request.getContextPath());

}


/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//어제는 get방식 오늘은 post방식 연습 , doPost

//전부 String으로 받아들인다.

//request로 받는다.

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

//html에서 name값이 Parameter이다., html파일에서 yName 인풋텍스트의 벨류값이 String name에 저장된다.

String gender = request.getParameter("yGender");

//보내는 것은 전부 response

PrintWriter pw = response.getWriter();

pw.println("<html>");

pw.println("<head>");

pw.println("</head>");

pw.println("<body>");

pw.println("your name: "+name+"<br>");

pw.println("your gender: "+gender+"<br>");

pw.println("</body>");

pw.println("</html>");

pw.close();

}


}


************************************************************************************

연습3


<html파일 input_Test.html>


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

<script type="text/javascript">

function test() {

var ag = document.getElementsByTagName("input");

var t = document.getElementsByClassName("t1");

var id1 = document.getElementById("id1");

var n = document.getElementsByTagName("n1");

}

</script>

<style type="text/css">

input{

}

.t1{

}

#id1{

}

</style>

</head>

<body>

<form action="post.practice" method="post">

ID:<input type="text" class="t1" id="id1" name="n1"><br>

PW:<input type="password" class="t1" id="id2" name="n2"><br>

age:<input type="number" class="t1" id="id3" name="n3"><br>

soccer<input type="checkbox" class="t1" id="id4" name="n4" value="soccer" checked="checked">

baseball<input type="checkbox" class="t1" id="id5" name="n4">

basketball<input type="checkbox" class="t1" id="id6" name="n4">

volleyball<input type="checkbox" class="t1" id="id7" name="n4"><br>

HTML<input type="radio" class="t1" id="id8" name="n5" value="HTML"> 

JS<input type="radio" class="t1" id="id9" name="n5" value="JS">

JAVA<input type="radio" class="t1" id="id10" name="n5" value="JAVA">

JSP<input type="radio" class="t1" id="id11" name="n5" value="JSP"><br>

<select class="t1" id="id12" name="n6">

<option value="SKT">SKT</option>

<option>LGT</option>

<option>KT</option>

</select><br>

memo<textarea rows="20" cols="20" class="t1" id="id13" name="n7">

</textarea><br>

<input type="submit" class="t1" id="id14" name="n8">

<input type="reset" class="t1" id="id15" name="n9">

</form>

</body>

</html>



<Servlet파일 GetTest1.java>


import java.awt.Checkbox;

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 GetTest1

 */

@WebServlet("/GetTest1")

public class GetTest1 extends HttpServlet {

private static final long serialVersionUID = 1L;

       

    /**

     * @see HttpServlet#HttpServlet()

     */

    public GetTest1() {

        super();

        // TODO Auto-generated constructor stub

    }


/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

response.getWriter().append("Served at: ").append(request.getContextPath());

}


/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

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

String pw = request.getParameter("n2");

int age = Integer.parseInt(request.getParameter("n3"));

String lang =  request.getParameter("n5");

String memo = request.getParameter("n7");

PrintWriter pwt = response.getWriter();

pwt.println("<html>");

pwt.println("<head>");

pwt.println("</head>");

pwt.println("<body>");

pwt.println("your id : "+id+"<br>");

pwt.println("your password : "+pw+"<br>");

pwt.println("your age : "+age+"<br>");

pwt.println("you can use this programming language :"+lang+"<br>");

pwt.println("you memorized this : "+memo+"<br>");

   //pwt.println("your language : "+lang+"<br>");

//pwt.println("your memo : "+memo+"<br>");

pwt.println("</body>");

pwt.println("</html>");

}


}


<web.xml>

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  
  <servlet>
    <servlet-name>getTest</servlet-name>
    <servlet-class>GetTest1</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>getTest</servlet-name>
    <url-pattern>/post.practice</url-pattern>
  </servlet-mapping>
</web-app>










************************************************************************************

checkbox 선택하기

교재p.22 requst의 주요 메소드 getParameterValue 사용


<html파일 input_Test2.html>


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<form action="result.do" method="post">

EPL:<input type="checkbox" name="soccer" value="EPL"><br>

LaLiga:<input type="checkbox" name="soccer" value="LaLiga">

League1:<input type="checkbox" name="soccer" value="League1">

SerieA:<input type="checkbox" name="soccer" value="SerieA">

K-League:<input type="checkbox" name="soccer" value="K-League">

J-League:<input type="checkbox" name="soccer" value="J-League">

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

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


</form>

</body>

</html>




<servlet파일  ProcessOK.java>




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 ProcessOk

 */

@WebServlet("/ProcessOk")

public class ProcessOk extends HttpServlet {

private static final long serialVersionUID = 1L;

       

    /**

     * @see HttpServlet#HttpServlet()

     */

    public ProcessOk() {

        super();

        // TODO Auto-generated constructor stub

    }


/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

response.getWriter().append("Served at: ").append(request.getContextPath());

}


/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//어제는 get방식 오늘은 post방식 연습 , doPost

//전부 String으로 받아들인다.

//request로 받는다.

String [] league = request.getParameterValues("soccer");

//checkbox 받아오는 법

//보내는 것은 전부 response

PrintWriter pw = response.getWriter();

pw.println("<html>");

pw.println("<head>");

pw.println("</head>");

pw.println("<body>");

if(league==null){

pw.println("you didn't select any soccer league");

}else{

for(int i=0;i<league.length;i++){

pw.println("you selected this soccer league: "+league[i]+"<br>");

}

}

pw.println("</body>");

pw.println("</html>");

pw.close();

}


}





<web.xml>

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <servlet>
    <servlet-name>goprocess</servlet-name>
    <servlet-class>ProcessOk</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>goprocess</servlet-name>
    <url-pattern>/result.do</url-pattern>
  </servlet-mapping>
 
</web-app>




************************************************************************************

servlet 은  자바 코드를 html로 보내기 위해 만들어졌다.


servlet의 불편함을 줄이기 위해 고안된 것 : JSP !!


HTML 코드 안에 JSP를 넣자.


MVC 패턴


Servlet은 C : controller 역할

JSV는 V : view 역할



************************************************************************************

남자를 선택하면 카라멜마키아토

여자를 선택하면 에스프레소


Java 클래스와 Servlet 연결



<html파일  : select_coffee.html>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<form action="which.coffee" method="post">

man<input type="radio" name="gender" value="man">

woman<input type="radio" name="gender" value="woman">

<input type="submit">

</form>

</body>

</html>



<web.xml파일>


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

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">


  <servlet>

    <servlet-name>getcoffee</servlet-name>

    <servlet-class>CoffeeServlet</servlet-class>

  </servlet>

  <servlet-mapping>

    <servlet-name>getcoffee</servlet-name>

    <url-pattern>/which.coffee</url-pattern>

  </servlet-mapping>

  

</web-app>





<자바클래스파일 Coffee.java>

public class Coffee {

//메소드 만드는 형식

//접근지정자 그외지정자(옵션) 리턴타입 메소드명(매개변수1,매개변수2,...){}

//생성자를 만드는 형식

//접근지정자 메소드명(매개변수1,매개변수2,...){} ,메소드 이름은 클래스 이름과 동일

public Coffee(){

//디폴트생성자=빈 생성자=기본 생성자

//클래스 내에 생성자는 무조건 1개 이상 존재해야 한다.

//클래스 내에 생성자가 하나라도 없으면 컴파일러가 빈생성자를 자동으로 하나 만들어줌

}

public String  getCoffee(String gen){

//남자 : 카라멜마키아토

//여자 : 에스프레소

if(gen.equals("man")){

return "caramel macciato";

}else{

return "Espresso";

}

}

}



<Servlet파일  : CoffeeServlet.java>


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 WhichCoffee
 */
@WebServlet("/WhichCoffee")
public class CoffeeServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public CoffeeServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String gender = request.getParameter("gender");
//객체생성
//클래스명 변수명 = new 생성자();
//생성자 : 클래스 이름과 동일
//생성자가 하는 일 : 멤버변수를 초기화 시키거나, 객체가 만들어질 때 해야할 일을 표시
Coffee co = new Coffee();
//객체의 멤버를 호출하는 형식
//참조변수명 멤버,
String cof = co.getCoffee(gender);
PrintWriter pw = response.getWriter();
pw.println("<html>");
pw.println("<head>");
pw.println("</head>");
pw.println("<body>");
pw.println("you selected this coffe :"+cof+"<br>");
pw.println("</body>");
pw.println("</html>");
}

}


************************************************************************************

web.xml 파일 없을때

WEB_INF 우클릭 > 뉴> 아더> xml > web.xml 피니시


그리고 밑에 server 클릭

web.xml에서 


<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee  http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">


복붙

아니면 프로젝트 만들때 
제너레잇~~~ 체크하면 됨



************************************************************************************

나이에 맞는 연예인 추천 프로그램



<html파일 : who.html>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>


<form action="matching.people"  method="post">

man<input type="radio" name="gender" value="man">

woman<input type="radio" name="gender" value="woman">

age<input type="number" name="age">

<input type="submit" value="who">

</form>

</body>

</html>



<xml파일 : web.xml>

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

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">

  <servlet>

    <servlet-name>match</servlet-name>

    <servlet-class>MatchingWith</servlet-class>

  </servlet>

  <servlet-mapping>

    <servlet-name>match</servlet-name>

    <url-pattern>/matching.people</url-pattern>

  </servlet-mapping>

</web-app>



<servlet 파일: MatchingWith.java>



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 MatchingWith

 */

@WebServlet("/MatchingWith")

public class MatchingWith extends HttpServlet {

private static final long serialVersionUID = 1L;

       

    /**

     * @see HttpServlet#HttpServlet()

     */

    public MatchingWith() {

        super();

        // TODO Auto-generated constructor stub

    }


/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

response.getWriter().append("Served at: ").append(request.getContextPath());

}


/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

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

int age = Integer.parseInt(request.getParameter("age"));

SelectList stl = new SelectList();

String result = stl.match(gender, age);

PrintWriter pw = response.getWriter();

pw.println("<html>");

pw.println("<head>");

pw.println("</head>");

pw.println("<body>");

pw.println("you are mached with : "+result+"<br>");

pw.println("</body>");

pw.println("</html>");

}


}



<자바클래스 : SelectList.java>

public class SelectList {
String name1;
String name2;
String name3;
String name4;
public SelectList() {
//멤버변수초기화, 해야할 일 기술
name1 = "Hani"; //남, 30이하
name2 = "P.Boyoung"; //남, 30이상
name3 = "GongYu"; //여, 30이상
name4 = "K.SuHyun"; // 여, 30이하
}
public String match(String gen, int agee){
if(gen.equals("man") && agee>30){
return name2;
}else if (gen.equals("man") && agee<=30){
return name1;
}else if (gen.equals("woman") && agee>30){
return name3;
}else if (gen.equals("woman") && agee<=30){
return name4;
}else{
return "can not recommend";
}
}
}



************************************************************************************

로또 프로그램


금액 입력 > 횟수에 맞게 6개 숫자 생성



************************************************************************************




블로그 이미지

테시리

,

document.write : body 에 적어라


앞에 window가 생략되어 있다.


window.document.write 로 쓴다


window 객체는 최상위 객체로 생략가능?



예시


window.alert()

window.document.write() 

window.prompt()

window.confirm();


등등...




******************************************************************


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

<script type="text/javascript">

var t = prompt("입력하세요.");

alert(t);

var check = confirm("ok?");

alert(check); //확인:true리턴, 취소:false리턴

</script>

</head>

<body>


</body>

</html>


******************************************************************

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function goNaver() {
window.open("http://naver.com","daum");
}
</script>
</head>
<body>
<button id="b1" onclick="goNaver()">naver</button>

</body>
</html>


window.open에 상대경로도 가능

******************************************************************

팝업창

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
window.onload= function () {
window.open("http://naver.com");
}
</script>
</head>
<body>
<button id="b1" onclick="goNaver()">naver</button>

</body>
</html>


onload 사용
새로고침하면 네이버 창이 열린다.
(팝업기능?이라고 생각하면 됨)
팝업창 만들때 사용한다.

******************************************************************

팝업창2

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
window.onload= function () {
window.open("http://naver.com","_blank","width=200px","height=200px");
}
</script>
</head>
<body>
<button id="b1" onclick="goNaver()">naver</button>

</body>
</html>



속성 중
_blank 를 쓰면 새 창에서 열린다.


******************************************************************

같은거 상대경로도 가능


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
window.onload= function () {
window.open("../../js_0826/WebContent/test3.html","_blank","width=300px","height=500px");
}
</script>
</head>
<body>
<button id="b1" onclick="goNaver()">naver</button>

</body>
</html>



******************************************************************

팝업  html 만들고 띄우기

-------------팝업창-------------
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function close_win() {
window.close();
}
</script>
</head>
<body>
<h1>팝업 창입니다..</h1>

<button onclick="close_win()">닫기</button>

</body>
</html>




-------------팝업띄우는창-------------
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
window.onload =function(){
window.open("./popup.html", "_blank", "width: 300px", "height: 500px");
}
</script>
</head>
<body>
<button id="b1" onclick="goNaver()">naver</button>

</body>
</html>


******************************************************************

클릭 후 3초 후 팝업이 뜨는 프로그램

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function close_win() {
alert("창이 닫힙니다.");
window.close();
}
</script>
</head>
<body>
<h1>팝업 창입니다..</h1>

<button onclick="close_win()">닫기</button>

</body>
</html>




<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function goNaver(){
window.setTimeout(callback, delay)
}
function goHtml() {
window.open("./popup.html", "_blank", "width: 300px", "height: 500px");
}
</script>
</head>
<body>
<button id="b1" onclick="goNaver()">naver</button>

</body>
</html>




******************************************************************

클릭 후 3초 후 팝업이 계속 뜨는 프로그램

window.setInterval()

팝업
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function close_win() {
alert("창이 닫힙니다..");
window.close();
}
</script>
</head>
<body>
<h1>팝업 창입니다..</h1>

<button onclick="close_win()">닫기</button>

</body>
</html>

띄우는창
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
window.onload = function(){
window.setInterval(goHtml, 2000);
}
function goHtml() {
window.open("./popup.html", "_blank", "width: 300px", "height: 500px");
}
</script>
</head>
<body>
<button id="b1" onclick="goNaver()">naver</button>

</body>
</html>



******************************************************************

history객체

window 객체의 일부분으로 방문한 페이지의 정보제공

go(값) : 값만큼 다음 또는 이전 페이지로 이동 : -3 이전 페이지3번째 ,+2 다음페이지 2번째
back() : 이전 페이지로 이동 (ex: 로그인에 실패할 시 이전 페이지로 보내기)
forward() : 다음 페이지로 이동

******************************************************************

navigator 객체 : 웹접속기기(스마트폰,태블릿,pc)의 종류를 파악할 수 있는 정보가 있다.

userAgent  : 브라우저에서 서버로 가는 user-agent 헤더 : 사용자가 어떤 기기로 접속했는지 알 수 있다.

******************************************************************

준비물 : JDK, 이클립스, 톰캣, DB



1.Intro(교안참고)

request 요청

response 응답


2.CGI

CGI : Common Gateway Interface

 
3.Java, Servler, JSP

자바(Java)
 썬 마이크로시스템즈에서 개발한 객체지향 프로그래밍 언어로 간결하고 플랫폼 독립적인 특성으로 PC,핸드폰, 각종 임베디드 장치에 폭넓게 사용되고 있다.

==> 시스템 응용

서블릿(Servlet)
 자바 기반의 웹 프로그래밍 기술로 자바 언어의 모든 기능을 사용할 수 있으며 쓰레드 기반의 빠른 처리 속도를 자랑하나, 프로그램 내에서 화면 코딩을 제어해야 하는 문제로 인해 유지 보수에 많은 문제가 있다. 이러한 문제점을 개선한 것이 JSP로 JSP는 내부적으로 서블릿 기술에 기반하고 있다.

==> 자바기반!

JSP(Java Server Page)
 JSP는 서블릿 기반의 서버 스크립트 언어로 오늘날 가장 대표적인 웹 프로그래밍 기술이라 할 수 있다. 서블릿의 장점을 모두 수용하면서 단점을 보완.....교안 참고

******************************************************************

워크스페이스 바꾸기

파일 > 스위치 워크스페이스 > 아더 > 폴더 지정

새 워크스페이스

밑에 servers > 노서버 클릭 > 톰캣8.0선택 > 다음 > 브라우즈 , 아파치톰캣 압축 푼 폴더 찾고 bin보다 상위폴더 지정
>JRE 를 JDK로 지정 > 피니시

우측상단 Java EE 확인


파일 > 뉴 > 다이나믹 웹프로젝트 > 프로젝트 이름 > 다음 >다음 > 여기서 Context Root는 홈폴더(웹콘텐트가 최상위에 있는 폴더)

> generate web.xml deployment 체크 > 피니시


웹컨텐트 > 우클릭 > 뉴 > html 파일 
test1,html 파일 생성

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>

<a href="ser">servlet</a>

</body>
</html>


좌측 자바리소스>src우클릭 > 뉴 서블릿(서블릿 : 자바코드를 html페이지로 바꿔줌)
페키지이름:비우고
클래스이름 : 첫글자 대문자로 넣는다
슈퍼클래스: 최상위, 이 클래스를 상속받는다 그대로 두고

넥스트

넥스트

피니시

First_Servlet.java 파일 생성하고 조금 수정 빨간부분
First_Servlet.java



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 First_servlet
 */
@WebServlet("/First_servlet")
public class First_Servlet extends HttpServlet {
private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public First_Servlet() {
        super();
        // TODO Auto-generated constructor stub
    }

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = "choa hello";
PrintWriter pw = response.getWriter();
pw.write("<html><head></head><body>");
pw.write("<h1>"+name+"</h1>");
pw.write("</body></html>");
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}

}



WEB-INF 클릭>web.xml 클릭 > 밑에 디자인, 소스 중 소스클릭 

조금 수정

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>jsp_0827_test</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>
  <servlet>
  <servlet-name>test</servlet-name>
  <servlet-class>First_servlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
  <servlet-name>test</servlet-name>
  <url-pattern>/ser</url-pattern>
  </servlet-mapping>
</web-app>


웹콘텐트 밑의 test1.html 우클릭 > 런애즈 > 런온서버 > 아파치톰캣8.0 > 피니시

******************************************************************

다시

서블릿파일
Suji_Test.java

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 Suji_Test
 */
@WebServlet("/Suji_Test")
public class Suji_Test extends HttpServlet {
private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Suji_Test() {
        super();
        // TODO Auto-generated constructor stub
    }

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Socket s = new Socket("localhost", "8080");
//InputStream is = s.getOutputStream();
//InputStreamReader ir = new inputStreamReader(is);
//br 버퍼리더 ,
//자바 socket과 유사하다
String name = "IU";
PrintWriter pw = response.getWriter();
pw.write("<html> <head></head> <body>");
pw.write(name+"</body>");
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}

}



xml파일
web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

  <servlet>
    <servlet-name>test</servlet-name>
    <servlet-class>First_Servlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>test</servlet-name>
    <url-pattern>/ser</url-pattern>
  </servlet-mapping>
  
  <servlet>
  <servlet-name>test2</servlet-name>
  <servlet-class>Suji_Test</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>test2</servlet-name>
  <url-pattern>/suji</url-pattern>
  </servlet-mapping>
  
  
  
  
</web-app>



html파일
test1.html

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>

<a href="ser">servlet</a>
<a href="suji">suji</a>
</body>
</html>


******************************************************************

윈도우 > 프레퍼런스 > 웹 > css , html, jsp 인코딩을 utf8로 변경하기



실행할때 html 우클릭 런온서버 안하고 , 좌측 상단 초록화살표 눌러도 된다.

******************************************************************

클릭하면 소녀시대 9명



서블릿파일
Idol_Snsd.java

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 Idol_Snsd
 */
@WebServlet("/Idol_Snsd")
public class Idol_Snsd extends HttpServlet {
private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Idol_Snsd() {
        super();
        // TODO Auto-generated constructor stub
    }

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = "Tae_Yeon,Yoon_A,Tiffany,Seo_Hyeon,Hyo_Yeon,Soo_Young,Sunny,Yuri";
PrintWriter pw = response.getWriter();
pw.write("<html> <head></head> <body>");
pw.write(name+"</body>");
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}

}



web.xml 파일

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <servlet>
    <servlet-name>test</servlet-name>
    <servlet-class>First_Servlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>test</servlet-name>
    <url-pattern>/ser</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>test2</servlet-name>
    <servlet-class>Suji_Test</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>test2</servlet-name>
    <url-pattern>/suji</url-pattern>
  </servlet-mapping>
  
  <servlet>
  <servlet-name>test3</servlet-name>
  <servlet-class>Idol_Snsd</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>test3</servlet-name>
  <url-pattern>/idol</url-pattern>
  </servlet-mapping>
  
  
  
  
  
</web-app>



html파일
test1.html


<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>

<a href="ser">servlet</a>
<a href="suji">suji</a>
<a href="idol">idol</a>
</body>
</html>



******************************************************************

아파치톰캣 압축해제 폴더 경로 찾아가기

예시)

F:\각종파일,설치등\apache-tomcat-8.0.24-windows-x64\apache-tomcat-8.0.24\conf

server.XML 우클릭 

이 부분 수정 , 빨간부분 추가

<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8"
               connectionTimeout="20000"
               redirectPort="8443" />

******************************************************************
크롬으로 실행하기

윈도우>프레퍼런스>제너럴>웹브라우저>뉴>이름지정>로케이션에 브라우즈로 크롬설치폴더 찾아가서 실행파일 선택>
>크롬체크 > 어플라이>확인

그 다음

윈도우> 웹브라우저 > 3Chrome 클릭 

******************************************************************

input text로 입력받은 값을 보여주기


서블릿파일
Try1.java



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 Try1
 */
@WebServlet("/Try1")
public class Try1 extends HttpServlet {
private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Try1() {
        super();
        // TODO Auto-generated constructor stub
    }

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("yName");
response.setCharacterEncoding("UTF-8");
PrintWriter pw = response.getWriter();
pw.write("<html><head></head><body> 입력한 이름은"+ name+"</body></html>");
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}

}




web.xml파일

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <servlet>
    <servlet-name>too</servlet-name>
    <servlet-class>Try1</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>too</servlet-name>
    <url-pattern>/test1</url-pattern>
  </servlet-mapping>
</web-app>



test1.html 파일

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="test1" method="get">
이름:<input type="text" name="yName">
직업:<input type="text">
<input type="submit" value="전송"> 
</form>

</body>
</html>



문자열이 깨져서 출력된다.



******************************************************************

순서

프로젝트 만들고 > html 파일 만들고 > 자바만들고, xml 메핑 시키기 (자바,xml 순서는 상관x)

******************************************************************

다시 연습


<html파일 만들기 servletTest.html>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="info.do" method="get">
<input type="text"  name="yName">
<input type="number" name="age">
<input type="submit" value="전송" >

</form>

</body>
</html>


<서블릿 파일 만들기 Member.java>




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 Member
 */
@WebServlet("/Member")
public class Member extends HttpServlet {
private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Member() {
        super();
        // TODO Auto-generated constructor stub
    }

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("yName");
PrintWriter pw = response.getWriter();
pw.print("<html><head></head><body>"+name+"</body></html>");
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}

}




<xml파일 만들기 web.xml>

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

<servlet>
<servlet-name>Mem</servlet-name>
<servlet-class>Member</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Mem</servlet-name>
<url-pattern>/info.do</url-pattern>
</servlet-mapping>
</web-app>

******************************************************************

다시 연습, 서블릿 파일을 새로운 패키지 안에 생성하기


<html파일  servlet.html>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="info.do" method="get">
<input type="text"  name="yName">
<input type="number" name="age">
<input type="submit" value="전송" >

</form>

</body>
</html>



그다음 src에 우클릭 뉴 서블릿 , 패키지명 com.test, 서블릿명 Memver2

<서블릿파일 Member2.java>

package com.test;

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 Member2
 */
@WebServlet("/Member2")
public class Member2 extends HttpServlet {
private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Member2() {
        super();
        // TODO Auto-generated constructor stub
    }

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("yName");
PrintWriter pw = response.getWriter();
pw.print("<html><head></head><body>"+name+"</body></html>");
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}

}



<xml파일,  web.xml>


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <servlet>
    <servlet-name>Mem</servlet-name>
    <servlet-class>com.test.Member2</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Mem</servlet-name>
    <url-pattern>/info.do</url-pattern>
  </servlet-mapping>
</web-app>


******************************************************************

사우나 프로그램 만들기
남자면 남탕 여자면 여탕
10살이상 10000
10살 미만 5000원


html파일 practice1.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="classify" method="get">
<input type="text" name="gender">
<input type="number" name="age">
<input type="submit" name="howMuch">


</form>


</body>
</html>


xml파일 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<servlet>
<servlet-name>fee</servlet-name>
<servlet-class>Sauna</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>fee</servlet-name>
<url-pattern>/classify</url-pattern>
</servlet-mapping>
</web-app>


servlet파일 Sauna.java



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 Sauna
 */
@WebServlet("/Sauna")
public class Sauna extends HttpServlet {
private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Sauna() {
        super();
        // TODO Auto-generated constructor stub
    }

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//성별이 남자면 남탕,  나이>=10 이면 성인요금, 기본요금 10000원, 나이<10은 5000원
//여자면 여자, 나이>=10 이면 성인요금
String gen = request.getParameter("gender");
int age = Integer.parseInt( request.getParameter("age")  );
PrintWriter pw = response.getWriter();

if(gen.equals("male") && age>=10){
pw.write("<html><head></head><body>go Male sauna<br>fee:10000</body></html>");
}else if(gen.equals("male") && age<10){
pw.write("<html><head></head><body>go Male sauna<br>fee:5000</body></html>");
}else if(gen.equals("female") && age>=10){
pw.write("<html><head></head><body>go female sauna<br>fee:10000</body></html>");
}else if(gen.equals("female") && age<10){
pw.write("<html><head></head><body>go female sauna<br>fee:5000</body></html>");
}
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}

}

******************************************************************










'프로그래밍, 통계학 > Servlet' 카테고리의 다른 글

[37일차]2015.08.28.금, JSP  (0) 2015.08.28
블로그 이미지

테시리

,