実験2(登録・為替レート計算)
ログインウィンドウID、パスワード入力後にサーブレットを送信する実験
login.html
サーブレットのマッピング名はloginです.
login.htmlでaction=「login」は
入力したデータをloginというサーバ側に送信します.
これによりサーブレットを用いてログイン要求処理を実現できる.
シーケンスボードとして1つのnameで複数の値を要求します
input.html
リクエストが成功しました.
@WebServicelet("/input")マッピング名が修復されず、重複エラーが発生していることに注意してください.
マッピング名を繰り返してはいけません.タグに注意してください.
ここに入力htmlでaction=「input」を「input 2」に変更します.
InputServicelet 2クラスの作成:
InputServlet2.java
結果として、getParameterName()を使用して送信されたnameと値
全ての出力を確認できます.
今回は、ユーザーがIDとパスワードを送信すると、ブレードサーバにブラウザに再度応答させてみます.
login.htmlでaction=「login」を「login 2」に変更します.
LoginService 2クラスの作成:
LoginServlet2.java
サーバはIDとパスワードを受信し、ブラウザに出力します.
login.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인창</title>
</head>
<body>
<form name="frmLogin" method="get" action="login" encType="UTF-8">
아이디 :<input type="text" name="user_id"><br>
비밀번호:<input type="password" name="user_pw" ><br>
<input type="submit" value="로그인"> <input type="reset" value="다시입력">
</form>
</body>
</html>
LoginServlet.javapackage sec01.ex01;
import java.io.IOException;
import javax.servlet.ServletConfig;
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 LoginServlet
*/
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
/**
* @see Servlet#init(ServletConfig)
*/
public void init() throws ServletException {
System.out.println("init 메서드 호출");
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8"); //전송된 데이터 UTF-8로 인코딩
String user_id = request.getParameter("user_id");
// getParameter() 이용해 <input>태그의 name 속성 값으로 전송된 value를 받아온다.
String user_pw = request.getParameter("user_pw");
System.out.println("아이디:" + user_id);
System.out.println("비밀번호:" + user_pw);
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
System.out.println("destory 메서드 호출");
}
}
LoginServlet.Javaで@WebService('/login')サーブレットのマッピング名はloginです.
login.htmlでaction=「login」は
入力したデータをloginというサーバ側に送信します.
これによりサーブレットを用いてログイン要求処理を実現できる.
シーケンスボードとして1つのnameで複数の値を要求します
input.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>여러 가지 input 타입 표시 창</title>
</head>
<body>
<form name="frmInput" method="get" action="input" encType="UTF-8">
아이디 :<input type="text" name="user_id"><br>
비밀번호:<input type="password" name="user_pw" ><br>
<input type="checkbox" name="subject" value="java" checked>자바
<input type="checkbox" name="subject" value="C언어" checked>C언어
<input type="checkbox" name="subject" value="JSP" checked>JSP
<input type="checkbox" name="subject" value="안드로이드" checked>안드로이드
<br><br>
<input type="submit" value="전송">
<!-- 전송 클릭하면 매핑 이름이 action에 설정한 input 서블릿으로 전송된다. -->
<input type="reset" value="초기화">
</form>
</body>
</html>
InputServlet.javapackage sec01.ex01;
import java.io.IOException;
import javax.servlet.ServletConfig;
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 LoginServlet
*/
@WebServlet("/input")
public class InputServlet extends HttpServlet {
/**
* @see Servlet#init(ServletConfig)
*/
public void init() throws ServletException {
System.out.println("init 메서드 호출");
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8"); //전송된 데이터 UTF-8로 인코딩
String user_id = request.getParameter("user_id");
// getParameter() 이용해 <input>태그의 name 속성 값으로 전송된 value를 받아온다.
String user_pw = request.getParameter("user_pw");
System.out.println("아이디:" + user_id);
System.out.println("비밀번호:" + user_pw);
String[] subject = request.getParameterValues("subject");
// 하나의 name으로 여러 값 전송하는 경우 getParameterValues()를 이용해 배열 형태로 반환한다.
for (String str : subject) // B에서 차례대로 객체를 꺼내서 A에 넣겠다.
{
System.out.println("선택한 과목:" + str);
}
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
System.out.println("destory 메서드 호출");
}
}
リクエストが成功しました.
@WebServicelet("/input")マッピング名が修復されず、重複エラーが発生していることに注意してください.
マッピング名を繰り返してはいけません.タグに注意してください.
ここに入力htmlでaction=「input」を「input 2」に変更します.
InputServicelet 2クラスの作成:
InputServlet2.java
package sec01.ex01;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletConfig;
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 LoginServlet
*/
@WebServlet("/input2")
public class InputServlet2 extends HttpServlet {
/**
* @see Servlet#init(ServletConfig)
*/
public void init() throws ServletException {
System.out.println("init 메서드 호출");
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8"); //전송된 데이터 UTF-8로 인코딩
Enumeration enu = request.getParameterNames(); // 전송되어 온 name 속성들만 Enumeration 타입으로 받아온다.
while (enu.hasMoreElements())
{
String name = (String) enu.nextElement();
String[] values = request.getParameterValues(name);
for (String value : values)
{
System.out.println("name=" + name + ",value=" + value);
}
}
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
System.out.println("destory 메서드 호출");
}
}
結果として、getParameterName()を使用して送信されたnameと値
全ての出力を確認できます.
今回は、ユーザーがIDとパスワードを送信すると、ブレードサーバにブラウザに再度応答させてみます.
login.htmlでaction=「login」を「login 2」に変更します.
LoginService 2クラスの作成:
LoginServlet2.java
package sec01.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
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 LoginServlet
*/
@WebServlet("/login2")
public class LoginServlet2 extends HttpServlet {
/**
* @see Servlet#init(ServletConfig)
*/
public void init() throws ServletException {
System.out.println("init 메서드 호출");
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8"); // 웹 브라우저에서 전송된 데이터 UTF-8로 인코딩
response.setContentType("text/html;charset=utf-8"); // 응답할 데이터 종류가 HTML임을 설정
PrintWriter out = response.getWriter();
// HttpServletResponse 객체의 getWriter()를 이용해 출력 스트림 PrintWriter 객체를 받아온다.
String id = request.getParameter("user_id");
String pw = request.getParameter("user_pw");
String data = "<html>";
data += "<body>";
data += "아이디 : " + id;
data += "<br>";
data += "패스워드 : " + pw;
data += "</body>";
data += "</html>";
out.print(data);
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
System.out.println("destory 메서드 호출");
}
}
サーバはIDとパスワードを受信し、ブラウザに出力します.
Reference
この問題について(実験2(登録・為替レート計算)), 我々は、より多くの情報をここで見つけました https://velog.io/@raichucode/서블릿-실습2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol