Servlet 开发

1. Servlet  (很久远的东西,但是现在学习原理)

  html + css + js 前端页面(静态的)

  form action = ".html"

  

  Servlet  允许将action属性设置为映射,通过映射找到相关的Servlet  class 进行数据的处理。

2.服务器容器,服务器中间件

  apache tomcat 7

  weblogic

3.搭建Servlet开发环境  

  startup.bat : 启动tomcat服务

  sgutdown.bat : 关闭tomcat服务

  配置tomcat环境变量让cmd命令行可以直接运行这些批处理文件。

 

  CATALINA_HOME: D:\apache-tomcat-7.0.67\apache-tomcat-7.0.67
  PATH: %CATALINA_HOME%/bin;%CATALINA_HOME%/lib;

 

4.javaEE的项目要符合JavaEE的标准。

  1、 JavaEE App 要放在tomcat下的webapps 这个目录下面。

  2、编译后的。class文件,html文档,图片,视频......

  3、在webapps下面部署的项目必须要有WEB-INF这样一个目录

  4、javaee app 需要一个独有的web.xml对其进行设置。

 

5.使用tomcat容器部署一个html文档的步骤:

  1、新建webapps(文件夹_test)

  2、在test目录下 新建WEB_INF文件夹

  3、在WEB_INF下面新建web.xml配置文件

  4、将web.xml配置成webapps的配置文件(拷贝tomcat实例程序下面的文件头)

  5、将html放入到webapps目录下。

  6、解释:

    index 页面的路径:

      tomcat/webapps/test/index.html

      使用浏览器访问时,要通过http://localhost:8080/test/index.html来访问html文档。

      http://localhost:8080 相当于tomcat/webapps这个目录。

6.创建Servlet类

  1、继承HttpServlet抽象类。

  2、重写HttpServlet的doGet() 或者 doPost()

  3、复制servlet类的class文件到tomcat/webapps/项目名/classes/
  4、配置servlet.class(web.xml)

<?xml version="1.0" encoding="ISO-8859-1"?><web-app xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"metadata-complete="true"><display-name>Welcome to Tomcat</display-name><description>Welcome to Tomcat</description><servlet><servlet-name>hello</servlet-name><servlet-class>TestServlet</servlet-class></servlet><servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping></web-app>

  5、 使用shutdown、startup重启tomcat服务器。

6、 通过http://ip:port/project_name/url-pattern  访问servlet

7.  HttpServletRequest extends ServletRequest request : 请求
  HttpServletResponse extends ServletResponse response : 响应

 

 

8.  servlet的生命周期:

  (1.在用户请求Servlet程序时,调用Servlet类的构造方法创建一个对象。

   2.对象创建之后调用init() 对该对象进行初始化。

   3.调用service方法进行对请求的处理以及对客户端的响应。

     4.当web服务器关闭时,调用Servlet的destory()方法。销毁该对象。)

  注:

  Servlet对象被创建时调用构造方法和init方法,这两个方法执行一次,Servlet是单利的程序。

  Servlet可以设计多例,只不过不常用。

   服务器启动时(web.xml中配置load-on-startup=1,默认为0)或者第一次请求该servlet时,就会初始化一个Servlet对象,也就是会执行初始化方法init(ServletConfig conf)

   该servlet对象去处理所有客户端请求,在service(ServletRequest req,ServletResponse res)方法中执行

     最后服务器关闭时,才会销毁这个servlet对象,执行destroy()方法。

9.servlet 运行过程

  1、客户端的请求 http:......

  2、请求到服务器端找到的servlet容器(tomcat)

  3、在tomact目录下的webapps文件夹下面找到符合JavaEE规定的目录(项目)。

  4、在web项目当中优先找到配置文件,通过url-pattern属性配置的地址,匹配servlet-name 与该映射名称相同的<servlet>标签

  5、<servlet>标签配置的是servlet程序的class文件

  6、使用servlet中的doGet或doPost(service方法配置)方法执行请求的处理。

转载于:https://www.cnblogs.com/xuewuzhijing95hao/p/7263996.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/369809.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAX-RS Bean验证错误消息国际化

Bean验证简介 JavaBeans验证&#xff08;Bean验证&#xff09;是一种新的验证模型&#xff0c;可作为Java EE 6平台的一部分使用。 约束条件支持Bean验证模型&#xff0c;该约束以注释的形式出现在JavaBeans组件&#xff08;例如托管Bean&#xff09;的字段&#xff0c;方法或类…

CentOS 7 Flannel的安装与配置

1. 安装前的准备 etcd 3.2.9 Docker 17.12.0-ce 三台机器10.100.97.236, 10.100.97.92, 10.100.97.81 etcd不同版本之间的差别还是挺大的&#xff0c;使用V3版本跟Flannel整合起来会有坑&#xff0c;下文详解。 2. 安装 sudo yum install -y flannel 安装后&#xff0c;版本是0…

给Ambari集群里安装基于Hive的大数据实时分析查询引擎工具Impala步骤(图文详解)...

不多说&#xff0c;直接上干货&#xff01; Impala和Hive的关系&#xff08;详解&#xff09; 扩展博客 给Clouderamanager集群里安装基于Hive的大数据实时分析查询引擎工具Impala步骤&#xff08;图文详解&#xff09; 参考 hortonworks ambari集成impala ambari hdp 集成 imp…

python调用ffmpeg合并_用ffmpeg命令处理mp4剪切与合并

1. 剪切&#xff1a;./ffmpeg -ss 00:00:06 -t 00:00:12 -i input.mp4 -vcodec copy -acodec copy output.mp4意思是从截取从6秒开始&#xff0c;时长为12秒的视频&#xff0c;格式不变&#xff0c;输入为input.mp4输出为output.mp4-vcodec copy -acodec copy : 编码格式不变2.…

html中常见的小问题(1)

问题&#xff1a;自适应高度的块级元素内添加图片后&#xff0c;其高度会比图片高度多出一块 简单代码如下&#xff1a; <!doctype html> <html><head><style>.box{width:533px;margin:100px auto;border:1px solid red;}</style></head>…

Java程序员的10个XML面试问答

XML面试问题在各种编程工作面试中非常受欢迎&#xff0c;包括针对Web开发人员的Java面试 。 XML是一项成熟的技术&#xff0c;通常用作从一个平台传输数据的标准。 XML面试问题包含来自各种XML技术的问题&#xff0c;例如XSLT&#xff0c;该技术用于转换XML文件&#xff0c; XP…

[转] Java, 使用 Reactor 进行反应式编程

https://www.ibm.com/developerworks/cn/java/j-cn-with-reactor-response-encode/index.html?lnkhmhm转载于:https://www.cnblogs.com/pekkle/p/8311749.html

JmeterAnt构建自动化测试平台

一、jmeter jmeter下载地址为&#xff1a;http://jmeter.apache.org/download_jmeter.cgi 下载完成后&#xff0c;解压文件&#xff0c; 加压后&#xff0c;到biin目录下&#xff0c;点击jmeter.bat启动jmeter(如果是linux环境&#xff0c;给jmeter.sh可执行的权限&#xff0c;…

input复选框checkbox默认样式纯css修改

修改之前的样式 修改之后的样式 html <input type"checkbox" name"btn" id"btn1"><label for"btn1">按钮1</label> css input[type"checkbox"]{width:20px;height:20px;display: inline-block;text-al…

c++word书签_「职场必备」干货!WORD办公软件快捷键,小编整理拿走不谢

小编工作时的照片&#xff0c;不上镜CtrlShiftSpacebar创建不间断空格Ctrl -(连字符)创建不间断连字符CtrlB使字符变为粗体CtrlI使字符变为斜体CtrlU为字符添加下划线CtrlShift缩小字号CtrlShift>增大字号CtrlQ删除段落格式CtrlSpacebar删除字符格式CtrlC复制所选文本或对象…

struts.xml 配置

1.ActionSupport是默认的Action类,若某个action节点没有配置class属性&#xff0c;则ActionSupport即为待执行的Action类 2.在手工完成字段验证&#xff0c;显示错误消息&#xff0c;国际化等情况下&#xff0c;推荐继承ActionSupport 3.result是action节点的子节点&#xff0c…

前端学习---css基本知识

css基本知识 我们先看一个小例子&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><div style"background-color:#2459a2;height:…

mysql 从库_mysql数据库主从配置

在一篇文章《离线安装mysql数据库》,讲解了离线安装mysql数据库的过程&#xff0c;本文将讲解mysql数据库的主从配置方法。mysql数据库进行主从配置后&#xff0c;可以实现数据库的备份、同时应用也可以实现读写分离&#xff0c;提高应用的并发量。1、主从原理从《高性能mysql》…

Java内联虚拟方法调用的性能

总览 动态编译的好处之一是&#xff0c;它能够支持在虚拟方法代码上进行广泛的方法内联。 虽然内联代码可以提高性能&#xff0c;但是代码仍然必须检查类型&#xff08;以防由于优化而更改了类型&#xff09;或在多个可能的实现之间进行选择。 这导致了问题。 通过接口调用的…

.Net Core 部署到 CentOS7 64 位系统中的步骤

建议使用 root 管理员账户操作 1、安装工具 1、apache 2、.Net Core(dotnet-sdk-2.0) 3、Supervisor(进程管理工具&#xff0c;目的是服务器一开机就启动服务器 上发布的ASP.NET Core Web网站) 2、安装apache 在安装apache之前&#xff0c;要先做一件事就是&#xff0c;把当前登…

【模板小程序】 十进制大数相乘(正数、负数、0均可),包含合法性检查

1 /*2 本程序说明&#xff1a;3 4 大数乘法(模拟乘法操作&#xff0c;取其中一个字符串&#xff0c;每一位分别相乘&#xff0c;最后移位加起来)5 6 时间复杂度&#xff1a;O(k1*k2),k1和k2分别为两字符串长度7 空间复杂度&#xff1a;O(1)8 9 */10 11 #include <iostream&g…

mysql更新字符串中某个字符串_mysql更新某个字符串字段的部分内容

如果现在需要Mysql更新字段重部分数据&#xff0c;而不是全部数据&#xff0c;应该采用何种方法呢&#xff1f;下面介绍了两种情况下Mysql更新字段中部分数据的方法&#xff0c;供您参考。Mysql更新字段中部分数据第一种情况&#xff1a;update tab set A concat(substr…

前端学习---html基础知识

HTML基本知识 学习html首先我们先看看HTML本质&#xff1a; web框架本质 我们在学socket&#xff0c;我们创建一个socketserver&#xff0c;然后运行起来&#xff0c;有一个client客户端要连接socket服务端&#xff0c;连接上之后&#xff0c;如果两边都没有close&#xff0…

Java 8最新消息

Java 8的开发再次开始主导新闻。 最近的帖子涵盖了扩展JDK 8的Milestone 7以确保其功能完整&#xff0c;Java 8中现在可用的Date / Time API以及对Java教程的更新以涵盖一些Java 8功能。 扩展JDK 8 M7 马克雷因霍尔德 &#xff08; Mark Reinhold &#xff09;以JDK 8 M6的身份…

插入排序-Java

1.算法描述 假定n是数组的长度&#xff0c; 首先假设第一个元素被放置在正确的位置上&#xff0c;这样仅需从1-n-1范围内对剩余元素进行排序。对于每次遍历&#xff0c;从0-i-1范围内的元素已经被排好序&#xff0c; 每次遍历的任务是&#xff1a;通过扫描前面已排序的子列表&a…