1、Webサーバ設定の「ディレクトリ一覧」機能

Webサーバの設定で「ディレクトリ一覧」機能を有効にすると、404 Not Found画面ではなく、ディレクトリ以下のファイルの一覧が表示されます。この機能をオンにするには、<Tomcatをインストールしたディレクトリ>/conf/web.xmlの104行付近の<init-param>のlistingsの値をtrueにします。

2、サーブレットAPI2.4日本訳
「http://mergedoc.sourceforge.jp/tomcat-servletapi-5-ja/」

3、サーブレットディレクトリ
entry
 |--META-INF        (固定)
 |   |--context.xml    (固定)
 |--WEB-INF         (固定)
     |--classes        (固定)
     |    |--xxx.class
     |    |--パッケージFloder
     |             |--xxx.class     
     |--src
     |    |--xxx.java
     |    |--パッケージFloder
     |             |--xxx.java
     |--web.xml       (固定)

4、doGetメソッド、doPostメソッド

サーブレットが呼ばれた時にコールされる。
---------Start--------------------
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class Sample1 extends HttpServlet {
  public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException{

response.setContentType("text/html; charset=Shift_JIS");
    PrintWriter out = response.getWriter();

out.println(createHTML("GET"));

out.close();
  }

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

response.setContentType("text/html; charset=Shift_JIS");
    PrintWriter out = response.getWriter();

out.println(createHTML("POST"));

out.close();
  }
---------End---------------------

5、日本語表示
Tomcatではデフォルトの文字エンコーディングが「ISO-8859-1」に設定されているため、日本語を使用する場合はHttpServletResponse.setContentType()メソッドで必ず文字エンコーディングを指定しましょう。

6、Shift_JISとWindows-31J
Shift_JIS、SJISは、機種依存しない
Windows-31J、MS932は、Windowsの機種に依存する。

7、web.xml
web.xmlはサーブレットのマッピング、初期化のパラメータ設定、セキュリティ設定など、様々な設定を記述できる。
XML内に日本語を記述する場合は、encoding属性を指定します。省略した場合のデフォルトはUTF-8となるので、必ずUTF-8で保存しなさい。
サーブレットAPI2.3と2.4のweb.xmlは、スキーマの定義が異なります。
・Servlet2.3/JSP1.2以前 ⇒ DTD
・Servlet2.4/JSP2.0以降 ⇒ XMLスキーマ

web.xmlで行うのはサーブレット/JSP標準の設定です。一方、コンテキストファイルにはTomcat独自の設定を記述する。

8、invokerサーブレットの設定
invokerはTomcatの専有機能です。
invokerサーブレットを利用すると、web.xmlへの登録を省略し、代わりにサーブレットをクラス名で呼び出します。
・基本、サーブレットは web . xml に登録しないと実行できない。
・invoker サーブレットは Tomcat 独自の機能。
・invoker サーブレットは セキュリティ上の問題がある。

利用方法は(Tomcat再起動必要)
①invokerサーブレットのservlet要素を有効にする
「<Tomcatをインストールしたディレクトリ>¥conf¥web.xml」にの下記のコメントを外します。
<!--
  <servlet>
    <servlet-name>invoker</servlet-name>
    <servlet-class>
      org.apache.catalina.servlets.InvokerServlet
    </servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>0</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>
-->
②invokerサーブレットのservlet-mapping要素を有効にする
<!--
  <servlet-mapping>
    <servlet-name>invoker</servlet-name>
    <url-pattern>/servlet/*</url-pattern>
  </servlet-mapping>
-->
③Webアプリケーションに特権を与える
「「<Tomcatをインストールしたディレクトリ>\conf\context.xml」に下記ように編集する。
<Context> ⇒ <Context privileged="true">

URLの呼び出し方は、「<サーバのURL>/<アプリ名>/servlet/完全クラス名」

9、入力パラメータを扱うHttpServletRequestのメソッド
・String getParameter(String name)
・String[] getParameterValues(String name)
・Enumeration getParameterNames()

10、日本語を入力する
入力パラメータはURLの一部としてサーブレットに渡されます。しかし、URLには日本語などを含めることができません。
対策:
・「request.getParameter」の前に、「request.setCharacterEncoding("Windows-31J");」でエンコードを設定する
・Tomcatバージョンにより、server.xmlを「 useBodyEncodingForURI="true"」と設定する。
(POSTリクエストの場合は、入力パラメータをURLの一部として送信しないため、上記設定がいらない)

11、Get、Post
GETやPOSTの事をリクエストメソッドと言う。
・Get: 指定したファイルを下さい!
・POST: 私の情報を受け取って下さい!

リクエストメソッド  サーブレットのメソッド   説明
GET          doGet()          コンテンツを取得する。情報を送信する。
POST         doPost()         情報を送信する。
HEAD         doHead()         ヘッダ部分を取得する。
PUT          doPut()          コンテンツを作成、更新する。
DELETE       doDelete()        コンテンツを削除する。
OPTIONS      doOptions()       使用可能なオプションの一覧を返す。
TRACE        doTrace()        ループバックを起動する。

GET使用されるケースは、
・ブラウザのアドレスバーに直接アドレスを入力した場合
・リンク(アンカー)をクリックした場合
・フォームをサブミットした場合で、<FORM>タグのMethod属性にGETを指定した場合(またMETHOD属性を省略した場合)

POST使用されるケースは、
・フォームをサブミットした場合で、<FORM>タグのMethod属性にPOSTを指定した場合

12、request.getParameterValues(name)
「request.getParameter(name)」と違いまして、「request.getParameterValues(name)」は1つの名前に対して複数の値を返すことができます。Htmlの入力パラメータは、1つの名前に対する値は1つとは限らないからです。

13、サーブレットAPIとジェネリックス
・サーブレットAPI2.5はJAVA5以降のジェネリックスに対応していません。
  ⇒警告を抑制のため、「@SuppressWarnings("unchecked")」を指定します
・サーブレットAPI3.0は、ジェネリックス対応になっているため、上記ような対応が不要です。
・Java1.4以前の環境はジェネリックスを利用できませんので、明示的に型キャストします。

14、サーブレットに渡される入力パラメータは文字列です。

Servlet基本的更多相关文章

  1. servlet文件下载

    创建web工程servlet,新建DownloadServlet.java package com.xmyself.servlet; import java.io.File; import java. ...

  2. java中servlet的各种路径

    1. web.xml中<url-pattern>路径,(叫它Servlet路径!) > 要么以“*”开关,要么为“/”开头 2. 转发和包含路径 > *****以“/”开头:相 ...

  3. Servlet监听器笔记总结

    监听器Listener的概念 监听器的概念很好理解,顾名思义,就是监视目标动作或状态的变化,目标一旦状态发生变化或者有动作,则立马做出反应. Servlet中的也有实现监听器的机制,就是Listene ...

  4. JavaWeb——Servlet

    一.基本概念 Servlet是运行在Web服务器上的小程序,通过http协议和客户端进行交互. 这里的客户端一般为浏览器,发送http请求(request)给服务器(如Tomcat).服务器接收到请求 ...

  5. servlet 简介,待完善

    什么是Servlet?① Servlet就是JAVA 类② Servlet是一个继承HttpServlet类的类③ 这个在服务器端运行,用以处理客户端的请求 Servlet相关包的介绍--javax. ...

  6. java web学习总结(五) -------------------servlet开发(一)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  7. servlet使用入门

    创建web工程servlet,然后新建TestServlet.java package com.xmyself.servlet; import java.io.IOException; import ...

  8. 基于jsp+servlet图书管理系统之后台万能模板

    前奏: 刚开始接触博客园写博客,就是写写平时学的基础知识,慢慢发现大神写的博客思路很清晰,知识很丰富,非常又价值,反思自己写的,顿时感觉非常low,有相当长一段时间没有分享自己的知识.于是静下心来钻研 ...

  9. [Servlet] 初识Servlet

    什么是Servlet? 定义 Servlet的全称是 Server Applet,顾名思义,就是用 Java 编写的服务器端程序. Servlet 是一个 Java Web开发标准,狭义的Servle ...

  10. Java Servlet+Objective-c图上传 步骤详细

    一. Servlet 1.创建图片保存的路径 在项目的WebContent下创建一个上传图片的专属文件夹. 这个文件夹创建后,我们保存的图片就在该文件夹的真实路径下,但是在项目中是无法看到上传的图片的 ...

随机推荐

  1. MySQL binlog 企业案例升级版

    需求:1.创建一个数据库 oldboy2.在oldboy下创建一张表t13.插入5行任意数据4.全备5.插入两行数据,任意修改3行数据,删除1行数据6.删除所有数据7.再t1中又插入5行新数据,修改3 ...

  2. 事件之父View和子view的点击事件的执行过程

    Android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解. 一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN-& ...

  3. [UE4]Cast to转换数据类型

    可以转换纯函数,这样就可以不用加执行线了.

  4. centos7 安装pip+python3.6

    centos7安装pip 1.执行:yum install python-pip 若没有python-pip包,先执行:yum -y install epel-release,再执行yum insta ...

  5. springmvc使用步骤

    1.导包 2.在web.xml文件中配置前端控制器dispatchServlet 3.创建springmvc配置文件springmvc.xml 4.编写controller 5.在springmvc中 ...

  6. Redis 主从+哨兵+监控 (centos7.2 + redis 3.2.9 )

    环境准备: 192.168.0.2  redis01 主 192.168.0.3  redis02 从 192.168.0.4  redis03 从 Redis 主从搭建 一:下载并安装redis软件 ...

  7. 16 Linux系统的文件压缩、解压与归档

    这一节的内容,我们详细介绍下Linux的文件压缩.解压缩与文件归档的内容,也就是tar.gzip.bzip2.xz等命令的内容: 压缩(compress)与解压缩(uncompress) Linux系 ...

  8. JS面试Q&A(续):Javascript数组排序, 默认是字符串Unicode排序, 不适合数字

    Q:下面代码段的执行后data里面的数据是什么?为什么? var data= [40,1,5,200] data.sort(); A: data的内容是[1, 200, 40, 5] 因为,Javas ...

  9. sersync+rsync实现服务器文件实时同步

    sersync+rsync实现服务器文件实时同步 一.为什么要用rsync+sersync架构? 1.sersync是基于inotify开发的,类似于inotify-tools的工具 2.sersyn ...

  10. 《Linux 性能及调优指南》3.1 确认瓶颈

    翻译:飞哥 ( http://hi.baidu.com/imlidapeng ) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance ...