1.定义

Servlet:用Java编写的动态资源开发技术

2.特点

  • Servlet类是一个普通的Java类,只是继承了HttpServlet类
  • Servlet只能交给tomcat服务器运行,不能自己运行

3.手动编写一个Servlet

3.1创建一个Servlet类

package per.liyue.code.serverlet;
import java.io.IOException;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloServerlet extends HttpServlet{ @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//解决中文
resp.setContentType("test/html;charset=utf-8"); resp.getWriter().write("This is the first serverlet, currenttime:" + new Date());
} public static void main(String[] args) {
// TODO Auto-generated method stub
}
}

3.2找到编写类的class文件,将这个类的整个包拷贝到一个web应用中的WEB-INF/classes目录下。 注意要整个包拷贝,且路径不要错

3.3在当前web应用下的web.xml中配置这个Servlet类

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"
metadata-complete="true"> <!--配置一个Servlet程序-->
<servlet>
<!--servlet的内部名称,可以自定义,最好是对应的类名-->
<servlet-name>HelloServerlet</servlet-name>
<!--servlet类名:包名+简单类名-->
<servlet-class>per.liyue.code.serverlet.HelloServerlet</servlet-class>
</servlet> <servlet-mapping>
<!--servlet内部名称,和上面的名称保持一致-->
<servlet-name>HelloServerlet</servlet-name>
<!--访问名称: /名称-->
<url-pattern>/hello</url-pattern>
</servlet-mapping> </web-app>

访问中,查找对应类的逻辑:

3.4启动服务器,访问servlet:

http://localhost:8080/myweb/hello

4.IDE开发

4.1新建项目

  • 切换到Myeclipse新建WebProject
  • 在src上新建Servlet,修改对应的代码输出
  • 在WebRoot目录上新建html
  • 修改WEB-INF下的web.xml修改对应关系
  • 在Preferences中Myeclipse\Servers中配置tomcat服务器
  • 配置完成后在Servers标签页中右键对应的服务器,找到发布。
  • 将对应项目添加,完成后还是对应服务器右键,点击发布

4.Web应用目录的简单层次

  • Web

    • WebRoot根目录

      • 静态资源:html...可以直接被浏览器访问到
      • WEB-INF: 不可以直接被浏览器访问,通过服务器tomcat
        • classes:存放class文件字节码(也就是动态网页的实现代码)
        • lib:各种jar包文件
        • web.xml:配置文件-配置servlet

2.Servlet基础.md的更多相关文章

  1. JSP数据交互(二)和Servlet基础

    01.Application原理与应用 01.application对象的作用域范围是整个应用服务,而它在应用中所承担的责任就类似于一个全局变量.只要服务启动,则application对象就会存在. ...

  2. Servlet基础(三) Servlet的多线程同步问题

    Servlet基础(三) Servlet的多线程同步问题 Servlet/JSP技术和ASP.PHP等相比,由于其多线程运行而具有很高的执行效率. 由于Servlet/JSP默认是以多线程模式执行的, ...

  3. Servlet基础(二) Servlet的生命周期

    Servlet基础(二) Servlet的生命周期 Servlet的生命周期可以分为三个阶段: 1.初始化阶段 2.响应客户请求阶段 3.终止阶段 Servlet的初始化阶段 在下列时刻Servlet ...

  4. Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解

    Servlet基础(一) Servlet基础和关键的API介绍 Servlet简介 Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中. Servlet容器负责Servl ...

  5. JSP/Servlet基础语法

    相关学习资料 http://my.oschina.net/chape/blog/170247 http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp ...

  6. Servlet基础简单总结(上)

    Servlet基础一些简单总结(上): 1.Java Servlet是运行在Web服务器上的Java程序2.Java平台给Servlet开发者提供了强大的API/面向对象编程平台无关/强类型/垃圾回收 ...

  7. servlet总结:Servlet基础

    Servlet基础 1.手工编写第一个Servlet ⑴继承HttpServlet ⑵重写doGet()或者doPost()方法 ⑶在web.xml中注册Servlet 2.使用eclipse编写第一 ...

  8. servlet基础(组成与生命周期)

    servlet基础作用:servlet是运行在Web服务器或应用服务器上的程序:担当web浏览器或其他HTTP客户程序发出的请求与HTTP服务器上的数据库或应用程序之间的中间层.1.读取客户程序发送的 ...

  9. Unit01: Servlet基础 、 HTTP协议

    Unit01: Servlet基础 . HTTP协议 在页面上输出当前时间 package web; import java.io.IOException; import java.io.PrintW ...

随机推荐

  1. crm 任务 状态

    ActivityPointer 取消状态:statecode = 2 statuscode = 6 已完成状态:statecode = 1 statuscode = 5

  2. 好习惯: 用controller as 语法和$inject数组注入

    angular好习惯1: 用controller as 语法和$inject数组注入 1) 像普通的JS类一样实现controller,摆脱$scope 2) 用.$inject数组注入相关模块,便于 ...

  3. sersync+rsync实现服务器文件实时同步

    sersync+rsync实现服务器文件实时同步 一.为什么要用rsync+sersync架构? 1.sersync是基于inotify开发的,类似于inotify-tools的工具 2.sersyn ...

  4. idea error:Command line is too long

    今天在正在本地运行的项目中写了一个无关项目的测试类,执行main函数时报错如下: 解决方案: 找到项目根目录下的.idea/workspace.xml,添加内容: <component name ...

  5. 由echarts想到的js中的时间类型

    在工作中使用echarts时,偶然发现折线图中对时间类型变量的用法: now前面的+号何解? now = new Date(+now + oneDay); 后来查阅资料,看到一篇博客,解释如下:这是对 ...

  6. 编码,基本数据类型,str索引和切片,for循环

    1. 编码 1. 最早的计算机编码是ASCII. 美国人创建的. 包含了英文字母(大写字母, 小写字母). 数字, 标点等特殊字符!@#$% 128个码位 2**7 在此基础上加了一位 2**8 8位 ...

  7. python中列表删除和多重循环退出

    在学习python的时候,会有一些梗非常不适应,在此列举列表删除和多重循环退出的例子: 列表删除里面的坑 比如我们有一个列表里面有很多相同的值,假如:nums=[1,6,6,3,6,2,10,2,10 ...

  8. 使用Inent 携带 Bundle 携带 数组 传递给另外一个activity

    在activity发送数组: public static String [] PhoneAndTime = new String[2]; //new 新的Intent Intent data = ne ...

  9. tensorflow 入门

    1.  tensorflow 官方文档中文版(下载) 2.  tensorflow mac安装参考 http://www.tuicool.com/articles/Fni2Yr 3. 源码例子目录 l ...

  10. windows 配置java环境变量

    https://www.cnblogs.com/cnwutianhao/p/5487758.html