⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainservlet.java

📁 《j2me开发精解〉(詹健飞)CD-rom附带源码。用netbeans
💻 JAVA
字号:
package com.ch6.post;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class MainServlet extends HttpServlet {        protected void processRequest(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {        //设置响应的Content-Type        response.setContentType("application/octet-stream");        ModelFacade facade = new ModelFacade();        try{            int contentLength = handleCall(facade, response.getOutputStream(), request.getInputStream());            response.setContentLength(contentLength);        }catch(ApplicationException ex){            ex.printStackTrace();            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);        }    }        private int handleCall(ModelFacade facade,OutputStream os,InputStream is) throws IOException,ApplicationException{        DataInputStream dis = new DataInputStream(is);        DataOutputStream result = new DataOutputStream(os);        try{            ByteArrayOutputStream baos = new ByteArrayOutputStream();            DataOutputStream dos = new DataOutputStream(baos);            //读取客户端发送的第一个字节、代表客户端要进行的操作            byte op = dis.readByte();            System.out.println(op);                        switch(op){                case MessageConstants.OP_POST_ARTICLE:{                    postArticle(facade,dis,dos);                    break;                }                case 100:{                    print(facade,dis,dos);                    break;                }                                case 101:{                    result.writeUTF("192.168.0.3");                    result.writeInt(1290);                    break;                }                default:{                    result.writeInt(MessageConstants.UNKNOWN_OP);                }            }            dos.flush();            //操作成功,首先把ERROR_NONE写入到输出流其次是数据            byte[] data = baos.toByteArray();            result.writeInt(MessageConstants.ERROR_NONE);            result.write(data, 0, data.length);                    }catch(ModelException ex){            //抛出异常,将ERROR_MODEL_EXCEPTION和异常写入输出流            result.writeInt(MessageConstants.ERROR_MODEL_EXCEPTION);            ex.serialize(result);        }        return result.size();    }    //发表文章    private void postArticle(ModelFacade facade,DataInputStream dis,DataOutputStream dos) throws IOException,ApplicationException,ModelException{        Article article = Article.deserialize(dis);        facade.postArticle(article);        return;    }        private void print(ModelFacade facade,DataInputStream dis,DataOutputStream dos) throws IOException,ApplicationException,ModelException{        System.out.println(dis.readUTF());        System.out.println(dis.readInt());        return;    }    protected void doGet(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {        processRequest(request, response);    }        protected void doPost(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {        processRequest(request, response);    }        public String getServletInfo() {        return "Short description";    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -