JSP�ƃT�[�u���b�g�̈Ⴂ�𖾂炩�ɂ����F��b����w�ԃT�[�u���b�g�^JSP�i11�j�i1/2 �y�[�W�j

» 2004�N03��18�� 00��00�� ���J
[�R�c�ˊ��C��IT]

�@����܂�10��ɂ킽���āAJSP�iJava Server Pages�j���x�[�X�Ƃ����R�[�f�B���O�̎�@�ɂ‚��Ċw�K���Ă��܂����B�����܂ŏ��ɓǂݐi�߂Ă���ꂽ���Ȃ�΁AJSP�J������y�ł���Ȃ���A�����ɋ��͂ȃA�[�L�e�N�`����񋟂��Ă���̂��A�����Ƃ�������ɂȂ�ꂽ�͂��ł��B

�@�������A����Ȃ�΁u���ׂẴT�[�o�T�C�h�A�v���P�[�V������JSP�ŋL�q���ׂ��v�Ȃ̂ł��傤���B�����͂͂�����Ɓu�ہv�ł��B

�@��1��u�T�[�u���b�g�^JSP�̖����𗝉������v�ł��Љ���悤�ɁAJSP�Ƃ͌����ăT�[�u���b�g�́u��p�v�Z�p�ł͂���܂���B�T�[�u���b�g�̖��_���������ׂ��o�ꂵ���Z�p�ł��邱�Ƃ͊ԈႢ����܂��񂪁A����ɂ���āuJSP�ɃT�[�u���b�g���u�������v�Ƃ������̂ł͂Ȃ��A�uJSP�ƃT�[�u���b�g�ƁA���ꂼ��̓��ӕ���ɉ����āA�Z�p���g��������I�������^����ꂽ�v�ƍl����̂��������Ƃ炦���Ƃ����܂��傤�B

�@�����ł͂��͂�T�[�u���b�g��JSP�Ƃ̎g�������ɂ‚��čČf���邱�Ƃ͂��܂���i���e�ɂ‚��ĖY��Ă��܂����Ƃ������́A���܈�x�A��1�����Q�Ƃ��Ă݂Ă��������j�B���A1�‚����������Ă����Ă������������̂́A�u������ȏ�̋K�͂̃A�v���P�[�V�������\�z����ꍇ�ɂ́A�����P�ɖڑO�̃R�[�f�B���O�̎�y�������ł͂Ȃ��A�A�v���P�[�V�����ɕύX���������ꍇ�̃����e�i���X���ɂ��v�������点��K�v������v�Ƃ������Ƃł��B����1�‚̃A�v���[�`�Ƃ��āAJSP�ƃT�[�u���b�g�̎g������������Ǝv���Ă���������΂悢�ł��傤�B

�T�[�u���b�g�N���X�L�q�E���s�́u3�‚̏����v

�@���āA����ł͑����A��̓I�ȃT�[�u���b�g�N���X���L�q���Ă݂邱�Ƃɂ��܂��B�ȉ��́A��10��u�N���X���C�u�������U���u�f�[�^�x�[�X�ҁv�v��accessLog.jsp���T�[�u���b�g���������̂ł��B

AccessLog.java
package to.msn.wings.atmarkit;

import java.io.*;
import java.sql.*;
import java.util.*;
import java.text.*;
import javax.servlet.*;
import javax.servlet.http.*;


public class AccessLog extends HttpServlet {
  public void doGet(HttpServletRequest request,HttpServletResponse response)
    throws ServletException,IOException {
    Connection db=null;
    PreparedStatement objSql=null;
    try {
      Class.forName("org.gjt.mm.mysql.Driver");
      db=DriverManager.getConnection("
           jdbc:mysql://localhost/sample?user=root&password=root&useUnicode=
true&characterEncoding=Shift_JIS");
      objSql=db.prepareStatement("
        INSERT INTO log_rec(url,atime,usr,referer) VALUES(?,?,?,?)");
      SimpleDateFormat objFmt=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      objSql.setString(1,request.getServletPath());
      objSql.setString(2,objFmt.format(Calendar.getInstance().getTime()));
      objSql.setString(3,request.getHeader("user-agent"));
      objSql.setString(4,request.getHeader("referer"));
      objSql.executeUpdate();
      objSql.close();
      db.close();
    } catch (Exception e) {
      throw new ServletException(e);
    } finally {
      if(objSql!=null){
        try {
          objSql.close();
        } catch(SQLException e) {
          throw new ServletException(e);
        }
      }
      if(db!=null){
        try {
          db.close();
        } catch(SQLException e) {
          throw new ServletException(e);
        }
      }
    }
  }
}

�@HTML���x�[�X�Ƃ���JSP�ƈقȂ�A���X����Java�̃R�[�h���ނ��o���ɂȂ��Ă���T�[�u���b�g�N���X�́A�ꌩ�A�ƂĂ����n�I�ɂ������A���S�҂̕��ɂ͂Ƃ��‚��ɂ����v�������ƂȂ��Ă��܂��B

�@�������A���̎��A�|�C���g�����������Ă��܂��΁AJSP�ƃT�[�u���b�g�ŋL�q���Ă�����e�́u�قƂ�Ǖς�肠��܂���v�BJSP���B�؂����Ă����D�L���u�\���K���v�i����͂܂������@�B�I�ɋL�q�ł��鍜�g�݂̕����ł��j���������Ă��܂��΁AJSP�ƃT�[�u���b�g�̃R�[�h�͂قƂ�Ǔ����ł���Ƃ�����̂ł��B

�@���������Ӗ��ŁA���|���ɘf�킳��āAJSP�Ƃ͂܂������ʕ��̋Z�p�Ƃ��ăT�[�u���b�g�̊w�K���n�߂�̂͑�ς��������Ȃ����Ƃł��B�F����ɂ́A�������������܂Ŋw�K����JSP�̃m�E�n�E������킯�ł�����A�{�e�ł͂�������̍����̂݁\�\�T�[�u���b�g���L�̒m����JSP�Ƃ̔�r�Ƃ����ϓ_�ł��Љ�Ă������Ǝv���܂��B

�T�[�u���b�g�N���X�ɂ�3�‚̃p�b�P�[�W���K�v

�@JSP�y�[�W���ŊO���N���X���g�p����ꍇ�ɂ́A���炩����@page�f�B���N�e�B�u��import�����Ńp�b�P�[�W�i�܂��̓N���X���̂��́j���C���|�[�g���Ă����K�v������܂����B����import�����Ɠ����̋@�\��񋟂���̂��A�T�[�u���b�g�N���X�ł�import���߂ƂȂ�܂��B�R�[�h�̐擪�ɋL�q����K�v������܂��B

�@���āA����import���߁AJSP�ɂ����Ă͈ӎ�����K�v������܂���ł������A�T�[�u���b�g�N���X�ł͂��ׂẴR�[�h�Łu�K���v�C���|�[�g���Ă����Ȃ���΂Ȃ�Ȃ��p�b�P�[�W��3�‚���܂��B

  • java.io�p�b�P�[�W
  • javax.servlet�p�b�P�[�W
  • javax.http.servlet�p�b�P�[�W

�@�����3�‚̃p�b�P�[�W�́AJSP�ŕs�v�ł������Ƃ����킯�ł͂���܂���BJSP�ł̓R���e�i���T�[�u���b�g�֕ϊ�����ۂɎ����I�ɕ⊮���Ă���Ă����ɂ����Ȃ��̂ł��B�T�[�u���b�g�ɂ́A���̂悤�Ȏ����⊮�̂����݂͂���܂���̂ŁA�������g�Ŗ�������K�v������܂��B

�@�������A���̂ق��ɕK�v�ȃp�b�P�[�W�i�N���X�j�����݂���ꍇ�ɂ́A�K�X�Aimport���߂𕹋L���܂��Bimport���߂́A@page�f�B���N�e�B�u��import�����̂悤�ɃJ���}��؂�Ńp�b�P�[�W���w�肷�邱�Ƃ͂ł��܂���̂ŁA���ӂ��Ă��������B�K�������̃p�b�P�[�W�͕�����import���߂ŃC���|�[�g���܂��B

�T�[�u���b�g�N���X��HttpServlet�N���X���p������

�@��avax.http.servlet.HttpServlet�N���X�́A�T�[�u���b�g�N���X�̊�{�I�ȋ@�\�i�N���C�A���g����̗v����M�E�������M�E�����U�蕪���Ȃǁj��������N���X�ł��B�T�[�u���b�g�N���X���`����ۂɂ́A�K������HttpServlet�N���X���p������K�v������܂��BHttpServlet���ėp�I�ȃN���C�A���g�|�T�[�o�Ԃ̒ʐM�@�\��񋟂��A���[�U�[�͂���HttpServlet�N���X�̋@�\�𗘗p���Ȃ���A�Ǝ��̃��W�b�N��g�ݍ���ł����Ƃ����C���[�W�łƂ炦�Ă����΂悢�ł��傤�B

�@�ȏ�𓥂܂��āA�ȉ��ɃT�[�u���b�g�N���X�̍ł���{�I�ȃX�P���g���������Ă������Ƃɂ��܂��B

package �p�b�P�[�W��;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;


public class �N���X�� extends HttpServlet {
  public void doXxx(HttpServletRequest request,HttpServletResponse response)
    throws ServletException,IOException {
    ���W�b�N�̒��g
  }
}

�@package���߂́A�T�[�u���b�g�N���X���ė��p�̒P�ʂɃO���[�s���O�������ꍇ�Ȃǂɗp���܂��B���K�͈ȏ�̃A�v���P�[�V�����ł́A�N���X���̏Փ˂�h�����߂ɁA���̃p�b�P�[�W�Ƃ����T�O��p���܂��i�ڍׂ́A�u�A�ځF���܂���n�߂�Java�@��10��uJava�̃N���X���O���[�v������p�b�P�[�W�v�v���Q�Ɓj�B�N���X���`����ꍇ�A�p�b�P�[�W�̐錾�͕K���s���悤�ɂ��Ă��������B

�@�T�[�u���b�g�N���X�̎��ۂ̃��W�b�N�́AdoXxx���\�b�h�ɋL�q���܂��B�T�[�u���b�g�N���X���R�[�����ꂽ�^�C�~���O�ŁA�N���C�A���g����̃��N�G�X�g�̕��@�ɂ���āA���ꂼ��K�������\�b�h���Ăяo����邱�ƂɂȂ�܂��B�‚܂�A�T�[�u���b�g�ɂ����ẮA�u���̃T�[�u���b�g���ǂ̂悤�ȕ��@�ŌĂяo����邩�v���ӎ����āA�R�[�h���L�q����K�v������܂��B

HttpServlet�N���X�ɂ�������doXxx���\�b�h
���\�b�h�� �Ăяo�����^�C�~���O
doDelete DELETE���N�G�X�g���󂯂��^�C�~���O
doGet GET���N�G�X�g���󂯂��^�C�~���O
doHead HEAD���N�G�X�g���󂯂��^�C�~���O
doOptions OPTIONS���N�G�X�g���󂯂��^�C�~���O
doPost POST���N�G�X�g���󂯂��^�C�~���O
doPut PUT���N�G�X�g���󂯂��^�C�~���O
doTrace TRACE���N�G�X�g���󂯂��^�C�~���O

�@���ׂĂ�doXxx���\�b�h�́A�p�����[�^�Ƃ���HttpServletRequest��HttpServletResponse�I�u�W�F�N�g�Ƃ��󂯎��܂��B�����͂��ꂼ��JSP�ɂ�����ÖكI�u�W�F�N�grequest�Aresponse�ɊY��������̂ŁAdoXxxxx���\�b�h���Ŏ��R�Ɏg�p���邱�Ƃ��ł��܂��i�ق��̈ÖكI�u�W�F�N�g�͖����I�ɐ錾����K�v������܂��B��q�j�B

�@HttpServlet�N���X�ɂ�7��ނ�doXxxxx���\�b�h���p�ӂ���Ă��܂����A��ʓI�ɂ悭�g�p����̂�doGet��doPost���\�b�h��2�‚ł��B�����ł́A�����2�‚̃��\�b�h���ǂ̂悤�ȃ^�C�~���O�ŌĂяo�����̂��𐮗����Ă������Ƃɂ��܂��傤�B

�i1�jdoGet���\�b�h

  • �u���E�U���璼�ڂ�URL�w��ŌĂяo���ꂽ�ꍇ
  • �y�[�W���̃����N�i<a>�^�O�j��<img>�A<frame>�^�O�Ȃǂ���ČĂяo���ꂽ�ꍇ
  • HTML�t�H�[���i<form>�^�O�j����GET���\�b�h�Ńy�[�W���v�����ꂽ�ꍇ�imethod�I�v�V�����̓f�t�H���g�ŁgGET�h�ƌ��Ȃ���܂��j

�i2�jdoPost���\�b�h

  • HTML�t�H�[���i<form>�^�O�j����POST���\�b�h�Ńy�[�W���v�����ꂽ�ꍇ

�T�[�u���b�g�N���X�̋N���ɂ�web.xml�ւ̓o�^���K�{

�@JSP�y�[�W���R�[������ɂ́A�P���ɃA�v���P�[�V�������[�g�z���̔C�ӂ̃t�H���_�i�������A�uWEB-INF�v�t�H���_�������j�Ɂu.jsp�v�t�@�C����z�u���A�u���E�U����Ή�����URL���w�肷��΂悢�����ł������A�T�[�u���b�g�̏ꍇ�́u/WEB-INF/classes�v�t�H���_�z���ɃR���p�C���ς݂́u.class�v�t�@�C���Ƃ��Ĕz�u���A���Aweb.xml�i�f�v���C�����g�f�B�X�N���v�^�j�ɃT�[�u���b�g�N���X��o�^����K�v������܂��B

�@�����ł́A�`����AccessLog.java���A���ۂɃA�v���P�[�V�����ɔz�u���Ă݂邱�Ƃɂ��܂��傤�B

�i1�j�T�[�u���b�g�N���X���R���p�C������

�@JSP�ƈقȂ�A�T�[�u���b�g�N���X�i�u.java�v�t�@�C���j�͔z�u�ɐ旧���āA���炩���߃R���p�C���i�ꊇ�|��j���s���A�u.class�v�t�@�C���𐶐����Ă����K�v������܂��B�R���p�C���͈�ʓI��J2SE�ɕt�����Ă���R�}���h���C���c�[��javac���g�p���čs�Ȃ��܂����Ajavac���g�p����O�ɂ����‚��̊‹��ϐ���ݒ肵�Ă����ƕ֗��ł��B�‹��ϐ��Ƃ́A�‹���ł��炩���ߒ�߂�ꂽ�p�����[�^�l�̂��ƂŁA�A�v���P�[�V������R�}���h�����s�����ۂȂǂɎQ�Ƃ���܂��B�Ⴆ�΁A�‹��ϐ�CLASSPATH�ł���΁AJava���z�}�V����Java�A�v���P�[�V���������s����ہA���邢�̓R���p�C�����u.java�v�t�@�C���̃R���p�C�����s���ۂȂǂɁA�K�v�ȃN���X���C�u�������������邽�߂̃p�X��ݒ肵�܂��B�i�‹��ϐ��̐ݒ�͕K�{�ł͂���܂��񂪁A�‹��ϐ��̐ݒ���s�Ȃ�Ȃ��ꍇ�A�K�v�ȃp�����[�^�𖈉�R�}���h�Ŏw�肵�Ȃ���΂Ȃ炸�A�s�ւł��j�B�ȉ��ɂ́A�{�e�Ő�������Œ���̊‹��ϐ��������Ă������Ƃɂ��܂��B

�‹��ϐ��̐ݒ�l�iWindows�‹��̏ꍇ�j
�‹��ϐ��� �ݒ�l
PATH .;%JAVA_HOME%\bin
JAVA_HOME C:\j2sdk1.4.2_03
CATALINA_HOME C:\Program Files\Apache Software Foundation\Tomcat 5.0
CLASSPATH .;%CATALINA_HOME%\common\lib\servlet-api.jar;
%CATALINA_HOME%\common\lib\jsp-api.jar;
%CATALINA_HOME%\webapps\atmarkit\WEB-INF\classes;

�@�‹��ϐ��̒l�́AJ2SE��Tomcat�̃o�[�W�����Ȃǂɂ���ĈقȂ�”\��������̂ŁA���ӂ��Ă��������B�܂��AWindows�̏ꍇ�A�o�[�W�����ɂ���ẮA�‹��ϐ���ݒ��A�}�V�����̂��ċN������K�v������܂��̂ŁA���ӂ��Ă��������B

�@�‹��ϐ��̐ݒ肪����������A�R�}���h�v�����v�g����ȉ��̃R�}���h����͂��Ă��������B�J�����g�t�H���_��AccessLog.java��z�u���Ă���t�H���_�ɂ�����̂Ƃ��܂��B

>javac AccessLog.java

�@�R���p�C���ɐ��������ꍇ�ɂ́uAccessLog.class�v�����������͂��ł��B������������A�R���p�C���Ɏ��s���Ă��܂����Ƃ����ꍇ�ɂ́A���܈�x�A�X�y�����O�~�X���Ȃ����ǂ������m�F���Ă݂�Ɠ����ɁA��L�‹��ϐ��̐ݒ肪�Ԉ���Ă��Ȃ����A�}�V�����ċN���������Ȃǂ��Ċm�F���Ă݂Ă��������B

�@to.msn.wings.atmarkit�p�b�P�[�W�ɑ�����T�[�u���b�g�N���X�i�u.class�v�t�@�C���j�́A�u/WEB-INF/classes/to/msn/wings/atmarkit�v�t�H���_�ɔz�u����K�v������܂��i�t�H���_�\�����p�b�P�[�W�K�w�ɑΉ����Ă��Ȃ���΂Ȃ�܂���j�B

�i2�j�T�[�u���b�g�N���X��web.xml�ɓo�^����

�@���āA���̂悤�ɔz�u�����T�[�u���b�g�N���X���A�f�v���C�����g�f�B�X�N���v�^�ɓo�^���܂��B�ȉ��̂悤�ɋL�q���Ă݂Ă��������B

<?xml version="1.0" encoding="Shift_JIS" ?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"version="2.4">
  <servlet>
    <servlet-name>AccessLog</servlet-name>
    <servlet-class>to.msn.wings.atmarkit.AccessLog</servlet-class>
  </servlet>
  <servlet-mapping>
     <servlet-name>AccessLog</servlet-name>
     <url-pattern>/AccessLog</url-pattern>
   </servlet-mapping>
</web-app>

�@<servlet>�v�f�ł́A�T�[�u���b�g�̊��S�C�����i�p�b�P�[�W�����܂ރN���X���j�ɑΉ�����_�������`���܂��B�_�����͎��R�ɖ������邱�Ƃ��”\�ł����A�K���f�v���C�����g�f�B�X�N���v�^���ň�ӂɂȂ�悤�ɐݒ肵�Ă��������B

�@���̘_�����ɑ΂��āA���ۂɃT�[�u���b�g���R�[������URL�Ƃ̃}�b�s���O���s���̂��A<servlet-mapping>�v�f�̖����ł��B�����ł́A�_�����uAccessLog�v�ŕ\�����T�[�u���b�g���uhttp://localhost:8080/atmarkit/AccessLog�v�ŌĂяo�����Ƃ��ł���悤�ɒ�`���Ă��܂��B

�@�f�v���C�����g�f�B�X�N���v�^��ύX�����ꍇ�ɂ́A�K���R���e�i�iTomcat�j���ċN�����Ă��������B

���ӁF���o�^�T�[�u���b�g�i�gInvoker�hServlet�j

Tomcat 4.0.12�ȑO�ł́A�T�[�u���b�g���f�v���C�����g�f�B�X�N���v�^�ɓo�^�����ɋN���ł���A�u�gInvoke�hServlet�v�Ƃ��������݂��p�ӂ���Ă��܂����B�������A���݂̃o�[�W�����ł̓Z�L�����e�B��̗��R����gInvoker�hServlet�͐�������Ă��܂���B���o�[�W�����Ƃ̌݊����Ƃ����Ӗ�����Aconf/web.xml�̐ݒ��ύX���邱�ƂŁA�gInvoker�hServlet�𗘗p���邱�Ɓu���v�”\�ł����A�V�����T�[�u���b�g���쐬����ꍇ�ɂ͕K���f�v���C�����g�f�B�X�N���v�^�ɓo�^����悤�ɂ��Ă��������B


One Point

�T�[�u���b�g�N���X�ɂ́i1�jjava.io�Ajavax.servlet�Ajavax.http.servlet��3�p�b�P�[�W���C���|�[�g����A�i2�jHttpServlet�N���X���p������A�i3�j�A�v���P�[�V�������W�b�N��doXxxx���\�b�h�ɋL�q����A�Ȃǂ̃��[��������܂��B�܂��A�z�u�ɍۂ��Ă��A�K���f�v���C�����g�f�B�X�N���v�^�ւ̓o�^���K�v�ɂȂ�܂��B


�@�@�@�@�@�@ 1|2 ���̃y�[�W��

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