Web�v���O���~���O�̑O��m�������������FTomcat���g���uJSP�v���O���~���O�v�i4�j

» 2001�N07��10�� 00��00�� ���J
[�O�J���C�^�C���C���^�[���f�B�A]

�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

��Web�A�v���P�[�V�������\������v�f

�@JSP��Apache�Ŏ�������Web�A�v���P�[�V�����́A�傫�������Ď���4�‚̗v�f�ō\������܂�(�}1)�B

}1 WebAvP[V\4‚̗vf �}1 Web�A�v���P�[�V�������\������4�‚̗v�f
(1) JSP �@�\�ƌ���d�l
(2) Apache Web�T�[�o�Ƃ��Ă̋@�\
(3) HTTP �T�[�o�ƃu���E�U���ʐM�����邽�߂̃��[��
(4) HTML Web�y�[�W���L�q���邽�߂̌���

�@�{�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

��HTML

�@�܂��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

��Apache

�@�{�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

��HTTP

�@�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�_�̎擾

�@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

sʂ͊F񂪂gp̊‹ɂĈقȂ܂Bϐghosthɂ͂gp̃zXg\܂ ���s���ʂ͊F���񂪂��g�p�̊‹��ɂ���ĈقȂ�܂��B�ϐ��ghost�h�ɂ͂��g�p�̃z�X�g�����\������܂�

�ŏ�����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�ϐ��̎擾

�@�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


��JSP�ł�Web�A�v���P�[�V�����̍\��

�@�{�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

JSPłWebAvP[ṼfBNg\}

�@$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

���T�[�o���ł�JSP�̏���

�@�Ƃ���Ł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);
    }
  }
}
���F�“ǐ������߂邽�߁A���̃\�[�X�R�[�h�̉��s�ʒu���ꕔ�ύX���Ă��܂�

�@�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

  • JSP�y�[�W�ɂ���Đ��������N���X��HttpJspBase�N���X���p�����Ă���
  • HTML���̏o�͂�_jspService���\�b�h�ōs���Ă���
  • HTML���̏o�́AJSP�y�[�W�ŋL�q����������try{ }catch(Exception ex){}�\���̒��ōs���Ă���

HttpJspBase�N���X�́A���̂悤�ɁAjavax.servlet.http.HttpServlet�N���X���p�����Ă��܂��B�‚܂�AJSP�Ƃ͓��I�ɃT�[�u���b�g�𐶐����邽�߂̋Z�p�ł���A�Ƃ������Ƃ��m�F�ł��܂��B

HttpJspBaseNX́Ajavax.servlet.http.HttpServletNXpĂ

�@���̂ق��ɂ��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

���҃v���t�B�[��

�O�J��

�^�C���C���^�[���f�B�A



Copyright © ITmedia, Inc. All Rights Reserved.

'; this.insertTarget = document.querySelector('#cmsBody .subscription') || document.querySelector('#cmsBody .inner'); }; BodyAdIMSWithCCE.prototype = Object.create(BodyAdContent.prototype); BodyAdIMSWithCCE.prototype.activate = function () { refreshGam('InArtSpecialLink'); } // global reference window.itm = itm; //entry point BodyAdEventBase.polyfill(); const bodyAdManager = BodyAdManager.getInstance(); bodyAdManager.addEventListener(BodyAdManager.EVENTS.READY, function (ev) { bodyAdManager.loadAdvertise(); }); bodyAdManager.init(); })();
�X�|���T�[����̂��m�点PR

���ڂ̃e�[�}

Microsoft  WindowsőO2025
AI for GWjAO
[R[h^m[R[h Zg by IT - ITGWjArWlX̒SŊ􂷂gD
Cloud Native Central by IT - XP[uȔ\͂gD
�V�X�e���J���m�E�n�E �y�����i�r�zPR
���Ȃ��ɂ������߂̋L��PR

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B