当前位置: 首页 > wzjs >正文

用asp做网站span友情链接推广

用asp做网站span,友情链接推广,网站设计素材网站,贸易公司logo图片首先,Tomcat是一个软件,所有的项目都能在Tomcat上加载运行,Tomcat最核心的就是Servlet集合,本身就是HashMap。Tomcat需要支持Servlet,所以有servlet底层的资源:HttpServlet抽象类、HttpRequest和HttpRespon…

首先,Tomcat是一个软件,所有的项目都能在Tomcat上加载运行,Tomcat最核心的就是Servlet集合,本身就是HashMap。Tomcat需要支持Servlet,所以有servlet底层的资源:HttpServlet抽象类、HttpRequest和HttpResponse,否则我们无法新建Servlet。

这样我们就可以在webapps写项目了,一个项目有两大资源:servlet资源和静态资源,servlet本身是java类,我们让它调用doGet和doPost方法,必须继承HttpServlet,同时也需要@WebServlet注解,那么在Tomcat中就必须要有@WebServlet注解的实现,如果没有@WebServlet,我们就无法拿到相应的注解。这样我们就能成功搭建起Servlet资源。

当Http请求打过来之后,先打到socket上,处理Http请求,其本身就是连接器,从请求上能获取到请求路径和请求方法。先获取到请求路径,判断servlet容器中是否含有相同路径,如果有,再获取请求方法,判断是doGet还是doPost。


简易版tomcat的核心原理

真正的Tomcat很复杂,但它的最核心功能可以简化为:

  1. 监听HTTP请求(Socket 绑定 8080 端口)
  2. 解析HTTP请求(读取请求头、请求体)
  3. 找到对应的Servlet处理请求(反射调用 service() 方法)
  4. 返回HTTP响应(写回响应头和HTML)

手写tomcat

首先,定义Servlet接口

public interface servlet {public void service(HttpServletRequest request, HttpServletResponse response) throws IOException;
}

其次,定义request和response

public class HttpServletRequest {private String method;private String url;//............public String getMethod() {return method;}public void setMethod(String method) {this.method = method;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}
}public class HttpServletResponse {//输出流private OutputStream outputStream;public HttpServletResponse(OutputStream outputStream){this.outputStream = outputStream;}/*** 返回动态资源* @param context*/public void write(String context) throws IOException {//System.out.println(context);outputStream.write(context.getBytes());}/*** 返回静态资源*/public void writeHtml(String path) throws Exception {String resourcesPath = FileUtil.getResoucePath(path);File file = new File(resourcesPath);if(file.exists()){//静态文件存在System.out.println("静态文件存在");FileUtil.writeFile(file,outputStream);}else {System.out.println("静态文件不存在");write(ResponseUtil.getResponseHeader404());}}}

然后,实现一个Httpserver

public class MyTomcat {static HashMap<String, HttpServlet> routes = TomcatRoute.routes; //tomcat路由\/*** 分发器*/public  void dispatch(HttpServletRequest request ,HttpServletResponse response) throws IOException {System.out.println("URL: " + request.getUrl());HttpServlet servlet = routes.get(request.getUrl());  //if(servlet!=null){ //说明请求的就是我们的servletSystem.out.println("找到匹配的Servlet: " + servlet.getClass().getName());servlet.service(request,response);}}/*** socket 启动* @throws IOException*/public  void start() throws IOException {ServerSocket serverSocket = new ServerSocket(8080);  //1.指定监听的端口号//2.对端口进行监听while (true){Socket socket = serverSocket.accept();//阻塞监听//3.打开输入流,解析客户端发来的内容InputStream inputStream = socket.getInputStream(); //输入流HttpServletRequest request = new HttpServletRequest();BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));  //将字节流转换成字符流String str = reader.readLine();//分割request.setMethod(str.split("\\s")[0]);request.setUrl(str.split("\\s")[1]);//4.打开输出流OutputStream outputStream = socket.getOutputStream();HttpServletResponse response = new HttpServletResponse(outputStream);//分发器dispatch(request,response);socket.close();//socket在这里关闭}}//socketpublic static void main(String[] args) throws IOException {MyTomcat myTomcat = new MyTomcat();myTomcat.start();}
}

然后,自定义一个Servlet

@CYServlet(url = "/myServlet")
public class MyFirstServlet extends HttpServlet {@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response) {super.doPost(request, response);}@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("Hello World!");System.out.println("Servlet实例: " + this);response.write(ResponseUtil.getResponseHeader200("hello world  hhhhh"));}
}

最后,启动服务并测试

public static void main(String[] args) throws IOException {MyTomcat myTomcat = new MyTomcat();myTomcat.start();}

访问浏览器localhost:8080会得到:

http://www.dtcms.com/wzjs/328782.html

相关文章:

  • 网站建设费用有哪些长沙seo网站管理
  • wordpress响应式主题制作教程seo站长常用工具
  • 做网站的工作好做吗网络营销公司简介
  • 大江网站建设网站优化内容
  • 拉萨融媒app下载最新黑帽seo培训
  • 网站建设学院网络推广教程
  • 2024湖南新冠病毒最新消息武汉seo网站优化运营
  • 做网站搞流量挂联盟广告变现哪些行业适合做网络推广
  • flash型网站网站提交收录入口
  • 北京做网站好公司全达seo
  • seo费用谷歌seo快速排名软件首页
  • 学院网站建设成果在线建站平台免费建网站
  • 欧美顶级ppt免费模板网站seo sem推广
  • 营销型网站设计特点余姚网站制作公司
  • 兼职网网站建设方案建议书淘宝怎么优化关键词步骤
  • 企业网站建设组织人员可行性分析我想在百度上做广告怎么做
  • 交友网站免费建设黄冈地区免费网站推广平台
  • 做网站在哪里添加关键词深圳推广平台深圳网络推广
  • 广州市网站设计广州网站设计实力乐云seo
  • 怎样自己做网站卖钱企业邮箱登录
  • 中国建设银行理财网站网站seo关键词
  • 网站建设包括哪些内容网络营销的种类
  • 网站活动专题页面设计seo优化多少钱
  • 游戏源代码网站网络推广工具
  • 安徽党组织标准化建设网站网站排名查询工具有哪些
  • 做招商网站的前景怎么样竞价广告是什么意思
  • 网站建设软件下载宁波网络推广公司有哪些
  • 百度网站建设要多少钱百度售后服务电话人工
  • 美橙网站建设怎么做网络市场调研
  • 做网站 花园路国贸qq推广平台