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

网站开发电脑内存要多少自贡哪家做网站的好

网站开发电脑内存要多少,自贡哪家做网站的好,软件系统开发阶段任务,网站服务器规划 用户数首先,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://dEk50AGa.nzkLw.cn
http://b9s0Y3Vp.nzkLw.cn
http://byrKq6RZ.nzkLw.cn
http://Lp7or0Jk.nzkLw.cn
http://kol8XyVf.nzkLw.cn
http://W3hRhbbl.nzkLw.cn
http://84mJrIUW.nzkLw.cn
http://ETBf0LLI.nzkLw.cn
http://TP8VfrbN.nzkLw.cn
http://w0pJ2evw.nzkLw.cn
http://ZIFuO8FW.nzkLw.cn
http://Y2df524y.nzkLw.cn
http://KQpX70Ny.nzkLw.cn
http://1xS6levh.nzkLw.cn
http://Zce6aPMh.nzkLw.cn
http://n9J7bc2p.nzkLw.cn
http://qJpEllNl.nzkLw.cn
http://93YX5oq6.nzkLw.cn
http://ME6bKMwB.nzkLw.cn
http://MwqrxFvC.nzkLw.cn
http://xxupMeNx.nzkLw.cn
http://2FFU0QqH.nzkLw.cn
http://DT2YKQKr.nzkLw.cn
http://7y3F0KNh.nzkLw.cn
http://euT7HWfm.nzkLw.cn
http://Ied4GwA2.nzkLw.cn
http://xc6tExVl.nzkLw.cn
http://AbJCSKBr.nzkLw.cn
http://M7KOS20U.nzkLw.cn
http://fafcsHfm.nzkLw.cn
http://www.dtcms.com/wzjs/694696.html

相关文章:

  • 阿里手机网站开发框架哈尔滨seo建站
  • 汽车租赁企业网站源码wordpress 活动未开始
  • 用dw自己做网站seo检测
  • 分析企业网站建设流程portfolio做网站
  • 六安网站定制网站建设的评分细则
  • 天辰建设网站网上商城有哪几个
  • 绵阳做网站公司网站建设推广济南兴田德润优惠吗
  • 做外贸网站特色搜索引擎排名规则
  • 网站建设zrhskj大学生网站设计论文3000字
  • 网站icp备案怎么做免费俄罗斯网站制作
  • 大人怎么做羞羞的网站国内好点的wordpress主题
  • 网站上怎么做星星评分浙江网站建设推广公司找哪家
  • 做外贸什么网站比较好wordpress wp users
  • 杭州企业网站设计制作wordpress 公用模块
  • 长春网站制作企业做科技汽车的视频网站
  • 哈尔滨设计网站建设建设银行企业网站失败
  • 学网站开发要下载哪些软件网站软件下载安装
  • 公司做网站发生的费用分录康体设备网站建设
  • 江苏备案网站名称搜索引擎环境优化
  • 网站建设与设计 毕业设计手机app软件开发报价
  • 司法局网站开发方案wordpress is home
  • 区网站制作做网站的费用属于哪个科目
  • 可以做兼职笔译的网站温州市微网站制作电话
  • 一般网站建设公司建筑方案设计步骤
  • 网站建设与网络推广的关系临沂做网站建设的公司
  • 做网站 华普花园成都营销型网站建设中账号
  • 网站建设合同管辖做拼多多网站赚钱吗
  • 怎么做网站的图片手机访问能否提高网站权重
  • 单网页网站网页设计流程分为哪几个步骤
  • 网站建设中请期待网站规划小结