Servlet开发

来源:互联网 发布:淘宝机锋市场店铺 编辑:程序博客网 时间:2024/05/16 11:27

本文包括:

A: servlet源码实例

B: servlet部署

C: 客户端远程调用

D: servlet开发调用工具

 

A: servlet源码实例

package com.viewlinecn.userlogin.www.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import com.viewlinecn.userlogin.util.OrganizeXML;

/**

* 游戏个性化登录认证服务

* @author cairenxi * @version 1.0

*/

public class LoginGameServlet extends HttpServlet {

     private final static long serialVersionUID = -200904271326L;

     private static Log log = LogFactory.getLog(LoginGameServlet.class);

     public void init() throws ServletException {

            //no code

     } public

 

     void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {

           // 添加代码

    } public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {

           // 添加代码

    }

}

 

 

B: servlet部署

com.viewlinecn.userlogin.www.servlet.LoginGameServlet ;

/servlets/login.html

 

 

C: 客户端远程调用

URL: http://host:port/context/servlets/login.html

 

D: servlet开发调用工具

package com.viewlinecn.common.http.util;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.io.PrintWriter;

import java.net.HttpURLConnection;

import java.net.URL;

import java.net.URLConnection;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;

 

 /** * HTTP通讯组件 *

* @author 蔡仁西

* @version 1.0

*/

 

public class HttpUtils {

   /** * 客户端用Post方法向服务器提交请求,并获取服务器响应信息

   *

   * @param req * @param res

   * @param s

   */

   public static String reqForPost(String postURL, String context) {

        try {

              URL url = new URL(postURL); U

              RLConnection urlConn = url.openConnection();

              HttpURLConnection httpUrlConn = (HttpURLConnection) urlConn;

              // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在

              // http正文内,因此需要设为true, 默认情况下是false;

              httpUrlConn.setDoOutput(true);

              // 设置是否从httpUrlConnection读入,默认情况下是true

              httpUrlConn.setDoInput(true);

              // Post 请求不能使用缓存

              httpUrlConn.setUseCaches(false);

              // 设定请求的方法为"POST",默认是GET

              httpUrlConn.setRequestMethod("POST");

              OutputStreamWriter wr = new OutputStreamWriter(httpUrlConn.getOutputStream());

              wr.write(context);

              wr.flush();

              BufferedReader in = new BufferedReader(new InputStreamReader(httpUrlConn .getInputStream()));

              String line;

              StringBuffer sb = new StringBuffer();

              while ((line = in.readLine()) != null) {

                   sb.append(line);

              }

              wr.close();

              in.close();

              return StringUtils.trimToEmpty(sb.toString());

        } catch (Exception e) {

              e.printStackTrace();

        } return ""; }

 

        /** * 客户端用Get方法向服务器提交请求,并获取服务器响应信息

         *  @param req

         * @param res

         * @param s

         */

     public static String reqForGet(String getURL) {

         try {

                URL url = new URL(getURL);

                URLConnection urlConn = url.openConnection();

                HttpURLConnection httpUrlConn = (HttpURLConnection) urlConn;

                // 默认情况下是false; httpUrlConn.setDoOutput(false);

                // 设置是否从httpUrlConnection读入,默认情况下是true

                httpUrlConn.setDoInput(true);

                // Get 请求不能使用缓存

                httpUrlConn.setUseCaches(false);

                // 设定请求的方法为"GET",默认是GET

                httpUrlConn.setRequestMethod("GET");

                BufferedReader in = new BufferedReader(new InputStreamReader(httpUrlConn .getInputStream()));

                String line; StringBuffer sb = new StringBuffer();

                while ((line = in.readLine()) != null) {

                     sb.append(line);

                 }

                in.close();

                return StringUtils.trimToEmpty(sb.toString());

          } catch (Exception e) {

                e.printStackTrace();

          } return "";

      }

     

      /**

       * 从输入流中读入数据

       *  @param req 

       * @param res

       * @param s

       */

       public static String readBuffer(InputStreamReader in) {

             try {

                     BufferedReader reader = new BufferedReader(in);

                     String line = ""; StringBuffer sb = new StringBuffer();

                     while ((line = reader.readLine()) != null) {

                             sb.append(line);

                     }

                     return StringUtils.trimToEmpty(sb.toString());

              } catch (Exception e) {

                    e.printStackTrace();

              } return "";

        }

 

        /**

          * 响应调用者

          *  @param req

          * @param res

          * @param s

          */

          public static void res2Client(HttpServletRequest req, HttpServletResponse res, String s) {

               try {

                        res.setContentType("text/plain;charset=gb2312");

                        PrintWriter out = res.getWriter(); out.print(s);

                        out.flush(); out.close();

               } catch (Exception e) {

                        e.printStackTrace();

               }

           }

 

            /**

             * 获取请求客户端IP(包括穿透nginx集群代理)

             */

             public static String getRemoteAddr(HttpServletRequest req) {

                  String ip = req.getHeader("x-forwarded-for");

                  if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {

                         ip = req.getHeader("Proxy-Client-IP");

                  }

                  if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {

                      ip = req.getHeader("WL-Proxy-Client-IP");

                  }

                  if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {

                      ip = req.getRemoteAddr();

                  }

                  return ip;

            }

}

 

 (文终)

原创粉丝点击