HttpServletRequestのHttpServletResponseの一般的な操作

一、HttpServletResponseの 

   。Response.getWriter()書き込み( "<H1>応答</ H1>");文字列データを書き込むように

   。Response.getOutputStream()、ライト(「応答」):データ書き込みモードバイトストリームで

   ( "UTF-8")response.setCharacterEncoding:設定応答データはUTF-8、文字ストリーム

   response.setHeader( "Content-Typeの"、 "text / htmlの;のcharset = UTF-8"):設定ページのコーディング

   response.setContentType( "テキスト/ HTML;のcharset = UTF-8");「):解決する応答の歪みデータ

二、HttpServletRequestのクライアント情報を取得します

   getRequestURL():リソース要求の完全なパスを取得します。

   getRequestURI():リソースへのアクセス部分パス

   getQueryStringは()メソッドは、リクエストラインのパラメータ部分を返します。

   getRemoteAddr():要求元クライアントのIPを取得します。

   getRemotePort():クライアントを要求するポートを取得します。

   getRemoteHost():要求しているクライアントの名前を取得します。

   getLocalAddr():IP Webサーバを返します。

   getLocalName():Webサーバのホスト名を返します。

   getMethod()メソッド:クライアント要求のモードを返します。

三つは、ヘッダ情報の取得要求します

   request.getHeader(名前); //リクエストヘッダ名に対応する単一の値の値を取得します

   request.getHeaders(「同意エンコード」)を、ヘッドの値に対応する//同じ名前の要求を複数取得し、設定値、リターン列挙型

   request.getHeaderNames(); //リクエストヘッダ名のすべての値を取得するには、また、取得するためのHTTPリクエストをよれば、順次素子、取得された値に対応する名前値を列挙トラバーサルをデータ列挙のデータ型を返しますすべての情報ヘッダ

実行します。

/ **
*ヘッダを取得します
* /
文字列headValue = request.getHeader(「同意エンコード」); //は、リクエストヘッダ名の値に対応する単一の値を取得
するSystem.out.println(headValueを)。


列挙E = request.getHeaders(「なAccept-エンコーディング」); // ヘッドの値に対応する同じ名前の要求を複数取得し、設定値、戻り型列挙
/ **
*データを横断する
* /
ながら(e.hasMoreElementsを()){
//列挙に格納されている各要素反復
)文字列値=(文字列)e.nextElementを(;
のSystem.out.println(値); //値を出力
}

/ **
*すべてのリクエストヘッダを取得します情報
* /
列挙request.getHeaderNames ER =(); //すべての値名要求がヘッダを取得
しながら(er.hasMoreElementsを()){
文字列名=(文字列)er.nextElement();
文字列値= request.getHeader(名前);
のSystem.out.println(名+ "=" +値);
}

第四に、クライアントのリクエストパラメータを取得します

getParameter(名):パラメータ値指定した名前を取得します。これは、最も一般的に使用される方法の一つです。
getParameterValues(文字列名):パラメータの名前を指定し、配列内のすべての値を取得します。これは、パラメータ値の複数の名前に対応する場合にも適用されます。フォームのチェックボックス内のページとして、複数選択リストの値を提出しました。
getParameterNamesメソッド():Enumerationオブジェクト要求メッセージに含まれるすべてのパラメータの名前を返します。Enumerationオブジェクトを横断することにより、あなたは情報のリクエストパラメータ名をすべて取得することができます
)getParameterMapを(:地図は、すべてのパラメータの名前とメッセージの値を保存したオブジェクト要求を返します。キー・マップ・オブジェクトは、値は、このパラメータの値は、対応するObject型の配列であり、パラメータ名の文字列型です。

第五に、様々な経路を取得します

request.getRealPath()このメソッドは、もはや方法があるのではなく、使用することをお勧めします:

でrequest.getSession()。のgetServletContext()。getRealPath()

...でrequest.getSession()のgetServletContext()getRealPath( "/"); Webプロジェクトの完全なパスを取得

要求.getContextPath()に、プロジェクトのルートディレクトリを返しTomcatのルートの下には空である、構成がローカルでない場合、アプリケーションコンテキスト、また、空の戻り構成の値を返すように配置され、逆に

PS:設定ファイルを読み込むためのJavaの道

モード1:のServletContext読み取り、実パスの設定ファイルを読み、[ファイルストリームによって読み出さ。

ですので のServletContextは ファイルパスを読んで、設定ファイルが中に配置することができ WEB-INF クラスの ディレクトリ、あなたがですることができ 、アプリケーションレベル および WEB-INF ディレクトリ。
Eclipseプロジェクト内の特定のパフォーマンスファイルの格納場所は次のとおりです。 また、ウェブルートのウェブ情報の下に配置することなどができ、SRCの下に配置することができます。
パスがファイルを読み取ることストリームによって読み取られるので、XML構成ファイルは、任意のおよびプロパティを含む読み取ることができます。 短所:サーブレットは、構成情報を読み取るために外側に適用することはできません。

String realPath = getServletContext().getRealPath(path);

InputStreamReader reader =new InputStreamReader(new FileInputStream(realPath),"utf-8");

オプション2:のResourceBundleクラスの構成情報を読み取ります

利点は以下のとおりです。リソースは、直接読み出し方式の完全修飾クラス名にロードすることができ、およびリソースファイルは、非Webアプリケーションで読み取ることができます。
短所:唯一の負荷クラスのリソースファイルの下のクラス、およびファイルのみを.propertiesファイル読み取ることができます。

/**
     * 获取指定.properties配置文件中所以的数据
     * @param propertyName
     *        调用方式:
     *            1.配置文件放在resource源包下,不用加后缀
     *              PropertiesUtil.getAllMessage("message");
     *            2.放在包里面的
     *              PropertiesUtil.getAllMessage("com.test.message");
     * @return
     */
    public static List<String> getAllMessage(String propertyName) { // 获得资源包 ResourceBundle rb = ResourceBundle.getBundle(propertyName.trim()); // 通过资源包拿到所有的key Enumeration<String> allKey = rb.getKeys(); // 遍历key 得到 value List<String> valList = new ArrayList<String>(); while (allKey.hasMoreElements()) { String key = allKey.nextElement(); String value = (String) rb.getString(key); valList.add(value); } return valList; }

三つの方法:読み取り構成情報のClassLoaderの方法を使用して

利点は次のとおりです。あなたは、非Webアプリケーションで構成リソース情報を読み取ることができ、あなたは任意のファイルリソース情報を読み取ることができます。
短所:唯一の負荷クラスクラスリソースファイルの下。

 /**获取的是classes路径下的文件
     * 优点是:可以在非Web应用中读取配置资源信息,可以读取任意的资源文件信息
     * 缺点:只能加载类classes下面的资源文件。
     * 如果要加上路径的话:com/test/servlet/jdbc_connection.properties
     */
    private static void use_classLoador(){ //获取文件流 InputStream is=TestJava.class.getClassLoader().getResourceAsStream("message.properties"); //获取文件的位置 String filePath=TestJava.class.getClassLoader().getResource("message.properties").getFile(); System.out.println(filePath); }

方法4:getResouceAsStream

XmlParserHandler.class.getResourceAsStreamはクラスローダは現在のクラスに比べて使用されている点で異なります。

方法5:PropertiesLoaderUtilsツール

PropertiesLoaderUtilsの春のオファーはあなたが直接、ファイルベースのリソースをクラスパスに対処プロパティをロードすることができます。
最大の利点は、このです:すぐに再起動せずに、変更後の効果的なリアルタイムの負荷プロファイル、。

   private static void springUtil(){ Properties props = new Properties(); while(true){ try { props=PropertiesLoaderUtils.loadAllProperties("message.properties"); for(Object key:props.keySet()){ System.out.print(key+":"); System.out.println(props.get(key)); } } catch (IOException e) { System.out.println(e.getMessage()); } try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } } }

参考:

https://www.jianshu.com/p/efdd1a526939

おすすめ

転載: www.cnblogs.com/kobe24vs23/p/11318279.html