�O���JSP�̊�{�I�ȃR�[�f�B���O��@�ɂ��Đ������܂����B�����JSP��p����Web�v���O���~���O�ɂ��Đ������܂��B�C���^�[�l�b�g����ău���E�U�ƃT�[�o�����̂��Ƃ���s���A��A�̏������s���A�v���P�[�V������Web�A�v���P�[�V�����Ƃ����܂��B���[�J����PC�ɃC���X�g�[�������A�v���P�[�V�����Ƃ͑ΏƓI�ɁA���[�U�[�Ƃ̃C���^���N�V������HTTP�ɂ��ʐM��������Ƃ�ɂȂ�܂��B����́A����Web�A�v���P�[�V�������쐬���邤���ŕK�v�ɂȂ�m���ɂ��ĉ�����܂��B�܂��AJSP�ł�Web�A�v���P�[�V�����̊Ǘ��A�T�[�o���ł�JSP�̏����̎��ۂɂ��Ă�������܂��B
�@Web�v���O���~���O�Ƃ́A���[�U�[�̎g�p����u���E�U�ƃT�[�o���Θb�I�ȏ������s��Web�A�v���P�[�V�������쐬�����Ƃł��B�u���E�U����̓t�H�[���ɓ��͂��ꂽ������Ȃǂ̃f�[�^�ƁA���ɕ\������y�[�W�̗v���i���N�G�X�g�j�������A�T�[�o�����1�y�[�W1�y�[�W��HTML�f�[�^�i���X�|���X�j�������܂��BWeb�v���O���~���O�̂��߂̎�@�Ƃ���JSP���̗p�����ꍇ�ł��AWeb�y�[�W�̕\���Ɋւ���HTML�̒m���A�܂��u���E�U�ƃT�[�o�Ԃ̂��Ƃ�ɗp������HTTP�v���g�R����Web�T�[�o�Ƃ��ċ@�\����Apache�ɂ��Ă̒m���ȂǁA����JSP�ȊO�̕����ɂ��đ����̊T�O���w�ї������Ă����K�v������܂��B
�@JSP��Apache�Ŏ�������Web�A�v���P�[�V�����́A�傫�������Ď���4�̗v�f�ō\������܂�(�}1)�B
�@�{�A�ڂł́A����4�̗v�f�̂����A(1)��JSP�̋@�\�ƌ���d�l�Ɏ���u���Ă��܂����A�ق���3�̗v�f�Ȃ��ɂ�Web�v���O���~���O�͐��藧���܂���B����4�̊W���C���[�W���Ȃ���AJSP�̃v���O���������Ă������ƂŁA�S�̂̌��ʂ����悭�Ȃ�ł��傤�B�Ⴆ�Ώ������ʂ����h���悭�o�͂��邽�߂ɂ�HTML�ɂ��Ă̒m����p���A�t�H�[������̃f�[�^�̑��M��POST��GET���g�p����ۂɂ�HTTP�ʐM�̂��Ƃ��C���[�W���Ȃ��猩�Ă����Ƃ悢�ł��傤�B�ȉ��ɁAHTML�AApache�AHTTP�̂��ꂼ��ɂ��ĊȒP�ɂ܂Ƃ߂܂��B
�@�܂��A���[�U�[����̃f�[�^�̎n�����s�����߂�<FORM>�^�O�ɂ��HTML�̋L�q�́A�Œ����������K�v������܂��BHTML�Ɋւ������́A���łɐ������̏��Ђ��o�ł���Ă��܂��̂ŁA�������Q�l�ɂ���Ƃ悢�ł��傤�B�܂��AJSP�ł�HTML�ɂ��v���[���e�[�V�������ƃv���O�����R�[�h�ɂ�郍�W�b�N���̕������e�Ղɍs���܂��̂ŁA�J���҂̓��W�b�N���ɐ�O���A���x�ȃy�[�W�\����HTML�f�U�C���̐��Ƃɂ䂾�˂Ă��܂����Ƃ��\�ł��B
�@�{�A�ڂł�Web�T�[�o��Apache��p������̂Ƃ��Ă��܂����A�������IIS�Ȃǂ̂ق���Web�T�[�o�ł�JSP�������Ƃ͉\�ł��B�܂��A������Web�T�[�o���g�p�����A�T�[�u���b�g�R���e�i���g��Web�T�[�o�@�\���g�p���邱�Ƃ��\�ł��B�{�A�ڑ�2��ڂ̊��\�z�Ő���������@�́AApache�ɃA�h�I�����Ďg�p������@�ŁAWeb�T�[�o�ƃT�[�u���b�g�R���e�i�ԂŃ\�P�b�g�ʐM���s���Ă��܂��B���̕��@�ł́AJSP����Apache�ɓ��ʌŗL�̋@�\���g�p���邱�Ƃ͂���܂��AWeb�T�[�o�ɔ�������֗��ȋ@�\���g�p����ɂ�Apache�Ɋւ���m�����K�v�ł��BApache�̋@�\�ɂ��ďڍׂ�m�肽������Linux Square�t�H�[�����́uApache�ɂ��Web�T�[�o�\�z�v���Q�l�ɂȂ�Ǝv���܂��B
�@�N���C�A���g�ƃT�[�o��HTTP�v���g�R���ŒʐM������ȏ�A���̃f�[�^�̂��Ƃ�ɂ�HTTP�̐������t���܂��BWeb�v���O���~���O���s�������ŁAHTTP�ɂ��Ă̒m���������Ƃ͏d�v�ł��B�Ⴆ�AHTTP�ɂ͈�A�̃y�[�W�v�����Z�b�V�����Ƃ��Ĉ����@�\��������Ă��Ȃ����߁A�N�b�L�[��JSP�ŏ������ꂽsession�I�u�W�F�N�g�̗��p�ȂǁA�Z�b�V�������������߂̎d�g�݂̎�����JSP���������Ă��܂��B����ȍ~�ł́A����HTTP�ʐM�ł��Ƃ肳���f�[�^�ɂ��āAHTTP�w�b�_�Ɗ��ϐ���JSP�ň������@�ɂ��Đ������܂��B
�@HTTP�w�b�_�́A�u���E�U�ƃT�[�o���ʐM���s���ۂɃf�[�^�̎n�߂ɕt�������A�̏��ł��B���̏��ɂ́A�N���C�A���g�����p���Ă���u���E�U�\�t�g�̖��̂�N�b�L�[���A�z�X�g���Ȃǂ��܂܂�܂��B
�@Perl�Ȃǂ�CGI�Ńw�b�_���ɃA�N�Z�X����ɂ́A�Ⴆ�uHTTP_USER_AGENT�v�Ƃ���������ŕ\�������ϐ��̒l���Q�Ƃ��܂����AJSP�ł�request�I�u�W�F�N�g��getHeader(java.lang.String name)���\�b�h��p���Ď擾���܂��B�Ⴆ�A�N���C�A���g���g�p���Ă���u���E�U�̖��̂��擾�������ꍇ�ɂ́A
String user_agent = request.getHeader("user-agent");
�Ƃ��邱�ƂŁA�u���E�U�̖��̂���Ŏ擾�ł��܂��B�܂��Arequest�I�u�W�F�N�g��getHeaderNames()���\�b�h�ł́A�w�b�_�Ɋ܂܂��ϐ����̈ꗗ���擾�ł��܂��B���̃��\�b�h�Ŏ擾�����e�ϐ�����getHeader���\�b�h�̈����ɂ��邱�ƂŁA���ׂẴw�b�_�����擾�ł��܂��B���̃v���O�����́A���̎�@��p���ăw�b�_���Ɋ܂܂��l�����ׂĕ\�������ł��B
<%@ page contentType="text/html; charset=euc-jp" %> <% // �w�b�_���̕ϐ����ꗗ���擾���� java.util.Enumeration enum = request.getHeaderNames(); // �w�b�_���ꗗ�\�p��HTML���i�[���镶���� String rows = ""; // �e�w�b�_���ɂ��Ă̏��� while(enum.hasMoreElements()) { // �w�b�_���̕ϐ������擾 String name = (String)enum.nextElement(); // �w�b�_���̒l���擾 String value = request.getHeader(name); // �ꗗ�\�p��HTML���쐬���� rows += "<tr><td>" + name + "</td><td>" + value +"</td></tr>"; } %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>�w�b�_���̎擾</title> </head> <body> <h1>�w�b�_���̎擾</h1> <p> <table border=1> <tr><td>�ϐ���</td><td>�l</td></tr> <%= rows %> </table> </p> </body> </html>
���s���ʂ͎��̂悤�ɂȂ�܂��B
�ŏ�����HTTP�w�b�_�̃N�b�L�[��JSESSIONID�Ƃ����ϐ����ݒ肳��Ă��܂��B����́AJSP���Z�b�V�����̊Ǘ����s�����߂ɁA�u���E�U���ƂɊ��蓖�Ă�Z�b�V������ID�ł��B�Z�b�V�������ӎ����Ȃ��Ƃ��AJSP�ł̓f�t�H���g�ŃZ�b�V�����Ǘ����s���d�g�݂���������Ă��邱�Ƃ�������܂��B
�@�Ⴆ�A���̃w�b�_���̒���user-agent�̒l�ɂ���ă��[�U�[���g�p���Ă���u���E�U�ʂ��邱�Ƃ��\�ł��B�g�ѓd�b����̃A�N�Z�X�ɂ̓f�[�^�T�C�Y�̏������y�[�W��\������ȂǁA�u���E�U�ɉ����ē��e���ւ��鏈�����s�����Ƃ��ł��܂��B
�@�T�[�o�ϐ��́A�v���O���������s����ۂɕK�v�ȏ����A�T�[�o���ł��炩���ߗp�ӂ������̂ł��BPerl�Ȃǂ�CGI�ł͒��ڕϐ����Q�Ƃł��܂����AJSP�ł͂��ꂼ��̕ϐ��ɑΉ��������\�b�h��request�I�u�W�F�N�g�ɏ�������Ă���A���̃��\�b�h����ĕϐ����擾���܂��B��ȕϐ����擾���郁�\�b�h�͎��̕\�̂Ƃ���ł��B
CGI�ŗp����ϐ��� | �ϐ��̒l���擾���郁�\�b�h | ���� | |
---|---|---|---|
REMOTE_HOST | getRemoteHost() | �y�[�W��v�����Ă����N���C�A���g�̃z�X�g�� | |
REMOTE_ADDR | getRemoteAddr() | �y�[�W��v���������N���C�A���g��IP�A�h���X | |
SERVER_NAME | getServerName() | �T�[�o���̃z�X�g�� | |
PATH_INFO | getPathInfo() | �v�����ꂽURL�̃p�X���� | |
PATH_TRANSLATED | getPathTranslated() | �v�����ꂽ�p�X���T�[�o���̃p�X�ɕϊ��������� | |
�@�T�[�o�ϐ��́A���܂��܂ȗ��p�̕��@���l�����܂��B�Ⴆ�A�����[�g�z�X�g���Ƃɗ��p�̐�����ݒ肵����A�T�[�o���������N������̒��ɖ��ߍ��肵�܂��B
�����̃T�[�o�ϐ����m�F����JSP�v���O������Tomcat�ɕt���̃T���v���ɂ���܂��B���̃T���v���������g�̊��Ŏ��s���āA���ۂɕϐ��̒l���ǂ̂悤�ɂȂ��Ă��邩�m�F���Ă݂܂��傤�B
http://server_name/examples/jsp/snp/snoop.jsp
��URL���ɓ��͂��邱�ƂŎ��s�ł��܂��B���̃v���O�����̃\�[�X�R�[�h�����āA�ϐ����擾���郁�\�b�h�̎g�p���@���m�F���Ă݂܂��傤�B
��server_name�͂����g�̊��̃T�[�o���ɒu�������Ă��������B
�@�{�A�ڂ���2����ł́AContext Path�̐ݒ���s���A�C�ӂ̃f�B���N�g����JSP�v���O������z�u������@��������܂����BJSP�ł́A����Context Path�Őݒ肳�ꂽ�f�B���N�g����1��Web�A�v���P�[�V�����ƌ��Ȃ��ĊǗ����܂��B�����ł�Web�A�v���P�[�V�����ɂ́AJSP�v���O�����t�@�C���̂ق��ɁAHTML�t�@�C���A�T�[�u���b�g�A�I���W�i���N���X�Ȃǂ��܂܂�܂��B���܂܂ł�JSP�̃v���O�����t�@�C�����������Ă��܂���ł����̂ŁA���̍\������Ɉӎ����邱�Ƃ͂���܂���ł������AJSP�ł�Web�A�v���P�[�V�����̃f�B���N�g���\�������̂悤�Ɍ��߂��Ă��܂��B
�@$docBase�́AContext Path�̐錾�Ŏw�肵��docBase�̃p�X�ł��B���̉��ɁAWEB-INF�Ƃ����f�B���N�g�������݂��A���̒��ɁAclasses��lib�f�B���N�g���A�����web.xml�t�@�C����z�u���܂��B
�@classes�f�B���N�g���ɂ́A�I���W�i���̃N���X��z�u���邱�ƂŁAJSP���炻�̃N���X���g�p���邱�Ƃ��ł��܂��Blib�ȉ��ɒu�����N���X�́ATomcat�N�����ɃN���X�p�X�ɒlj�����܂��BWeb�A�v���P�[�V�����Ŏg�p����JAR�`���̃A�[�J�C�u��z�u���܂��Bweb.xml�ɂ́A�T�[�u���b�g�̓o�^�⏉���l�̐ݒ���s���܂��B�f�t�H���g�l�ł悢�ꍇ�͂Ȃ��Ă��\���܂���BJSP�t�@�C���AHTML�t�@�C���́A$docBase�ȉ��̔C�ӂ̏ꏊ�ɔz�u���邱�Ƃ��ł��܂��B
�@����A�I���W�i���̃N���X��A�[�J�C�u�A�T�[�u���b�g���g�p����ꍇ�ɂ́A���̃f�B���N�g���\���ɏ]���悤�ɂ��܂��B
�@�Ƃ���ŁAJSP�͍ŏ��Ƀ��N�G�X�g�����������_�ŃT�[�o���ŃR���p�C������A�R���p�C�����ꂽ���̂����s�����A�ƈȑO�ɏ����܂����B��萳�m�ɂ́AJSP�v���O��������xJava�̃R�[�h�ɕϊ�����Ă���R���p�C������܂��B����ł́A���́gHello World�I�h��JSP�R�[�h�͂ǂ̂悤��Java�̃R�[�h�ɕϊ������̂ł��傤�H
<html> <head><title>Hello World!</title></head> <body> <h1>Hello World!</h1> <p> <% String hello = "Hello World!"; out.println(hello); %> </p> </body> </html>
�@Tomcat�ł́A����JSP�v���O�������ϊ�����Ăł���Java�v���O�������A$TOMCAT_HOME/work/�ȉ��ɔz�u����܂��B���̃v���O���������Ă݂�ƁA�T�[�o���łǂ̂悤��JSP�v���O��������������Ă���̂��𗝉����邱�Ƃ��ł��܂��BContext Path��jsp�Ƃ����p�X��lj����āA���̒���hello.jsp�Ƃ������O�Ńt�@�C����ۑ������ꍇ�A�M�҂̊��ł́A
localhost_8080%2Fjsp/_0002fhello_0002ejsphello_jsp_0.java
�Ƃ������O�ŁA���̃\�[�X�R�[�h�����݂��܂����B����ł́A���ۂɂ��̃R�[�h�̒��g�����Ă݂܂��傤�B
import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.io.PrintWriter; import java.io.IOException; import java.io.FileInputStream; import java.io.ObjectInputStream; import java.util.Vector; import org.apache.jasper.runtime.*; import java.beans.*; import org.apache.jasper.JasperException; public class _0002fhello_0002ejsphello_jsp_0 extends HttpJspBase { static { } public _0002fhello_0002ejsphello_jsp_0( ) { } private static boolean _jspx_inited = false; public final void _jspx_init() throws JasperException { } public void _jspService(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { JspFactory _jspxFactory = null; PageContext pageContext = null; HttpSession session = null; ServletContext application = null; ServletConfig config = null; JspWriter out = null; Object page = this; String _value = null; try { if (_jspx_inited == false) { _jspx_init(); _jspx_inited = true; } _jspxFactory = JspFactory.getDefaultFactory(); response.setContentType("text/html;charset=8859_1"); pageContext = _jspxFactory.getPageContext( this, request, response, "", true, 8192, true); application = pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut(); // HTML // begin [file="/home/mitani/jsp/hello.jsp";from=(0,0);to=(5,0)] out.write("<html>\r\n<head><title>Hello World!</title></head>\r\n<body>\r\n<h1>Hello World!</h1>\r\n<p>\r\n"); // end // begin [file="/home/mitani/jsp/hello.jsp";from=(5,2);to=(8,0)] String hello = "Hello World!"; out.println(hello); // end // HTML // begin [file="/home/mitani/jsp/hello.jsp";from=(8,2);to=(11,7)] out.write("\r\n</p>\r\n</body>\r\n</html>"); // end } catch (Exception ex) { if (out.getBufferSize() != 0) out.clearBuffer(); pageContext.handlePageException(ex); } finally { out.flush(); _jspxFactory.releasePageContext(pageContext); } } }
�@�gHello World!�h�Ƃ����������\�����邾���̂͂��Ȃ̂ɁA�ƂĂ������R�[�h�ł��B���ۂ̃R�[�h�����Ă݂�ƁAHTML���̏o�͂�56�`66�s�ڂōs���Ă��邱�Ƃ�������܂��BJSP�̃v���O�����ł͂��̂܂܋L�q���Ă���HTML�����A���ׂ�out.write(String)���\�b�h�ɒu��������Ă��邱�Ƃ�������܂��ˁB
�@�ÖكI�u�W�F�N�g��out��54�s�ڂŁA
out = pageContext.getOut();
�̂悤�ɒ�`����Ă��܂��B���C�Ȃ��g���Ă����ÖكI�u�W�F�N�g�����ۂ͂ǂ̂悤�ɂ��Đ�������Ă���̂���m�邱�Ƃ��ł��܂��B�܂��A���̂ق��ɂ��\�[�X�R�[�h�����邱�ƂŁA���̂悤�ȋ����[�����Ƃ�������܂��B
�@���̂ق��ɂ��A�Ⴆ�f�B���N�e�B�u�Ő錾����<%@ page import="java.util.*" %>��A<%! %>�^�O�ɂ�郁�\�b�h�̒�`�̓\�[�X�R�[�h�̂ǂ��ɔ��f�����̂��ȂǁA���낢��������Ă݂�Ƃ悢�ł��傤�B
�@�������A���̃\�[�X�R�[�h�̑��݂�m��Ȃ��Ă�JSP��p�����v���O���~���O�͉\�ł����A�����̂��Ƃ�m���Ă���ƁA�T�[�o����JSP���ǂ̂悤�ɏ�������Ă���̂��𗝉�����菕���ɂȂ�̂ł͂Ȃ��ł��傤���B
�@����́AWeb�v���O���~���O�̊T�v�ƁAJSP�ł�Web�A�v���P�[�V�����̍\���A�T�[�o���ł�JSP�̏����ɂ��ĉ�����܂����B���ۂ�Web�A�v���P�[�V�������J������ꍇ�ɂ́AJSP�̒m�������ł͉����ł��Ȃ����Ƃ������ł��傤�B���̍ۂɁA���̊T�v���C���[�W�ł���ΐV�����w�K���X���[�Y�ɐi�ނ̂ł͂Ȃ����Ǝv���܂��B
�@����́AJSP�ł̃C���N���[�h�A�I���W�i���N���X�̍쐬�ȂǁA�v���O�����v�f���ė��p���邽�߂̕��@��������܂��B
Copyright © ITmedia, Inc. All Rights Reserved.