• 第一个Servlet程序


    第一个Servlet程序

    Servlet

      Servlet是Java服务器端编程,不同于一般的Java应用程序,Servlet程序是运行在服务器上的,服务器有很多种,Tomcat只是其中一种。

    程序实例

      在MyEclipse中新建一个Web Project。

      在src中新建一个包,其中新建一个类叫HelloWorldServlet。

      编写Servlet程序如下:

    复制代码
    package com.shengqishiwind.servlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    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 HelloWorldServlet extends HttpServlet
    {
        @SuppressWarnings("deprecation")
        @Override
        public void doGet(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException
        {
            // 首先将访问修饰符覆写为public
    
            // 设置内容类型
             resp.setContentType("text/html");
    
            PrintWriter out = resp.getWriter();
    
            out.println("<html><head><title>Hello World Sample</title></head>");
            out.println("<body><h1>Hello World Title<h1><h2>" +new Date().toLocaleString() + "</h2></body></html>");
            out.flush();
    
        }
    
    }
    复制代码

      Servlet程序没有main方法,类一般都需要继承HttpServlet类。

    web.xml

      web.xml叫做deployment descriptor,部署描述符。

     

      打开web.xml,编写内容如下:

    复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="3.0" 
        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/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
        <servlet>
        <servlet-name>HelloWorldServletName</servlet-name>
        <servlet-class>com.shengqishiwind.servlet.HelloWorldServlet</servlet-class>
        </servlet>
        <servlet-mapping>
        <servlet-name>HelloWorldServletName</servlet-name><!--  servlet-name 要和上面的保持一致-->
        <url-pattern>/HelloWorld</url-pattern><!--  注意前面要有斜线-->
        </servlet-mapping>
    </web-app>
    复制代码

    访问这个页面

      首先进行部署,这里采用在Tomcat的conf的server.xml的Host标签中加入:(详见使用MyEclipse开发第一个Web程序

     <Context path="/HelloWeb" docBase="E:MDDMyEclipseWorkspaceHelloWebWebRoot" reloadable="true"/>

      然后运行服务器:

      点击IDE中的Run Server按钮: 

      

      然后在浏览器中输入:http://localhost:8080/HelloWeb/HelloWorld

      就可以看到页面。

     

     

    过程解释

      首先,服务器收到请求,根据其逻辑路径(HelloWeb),找到其物理路径("E:MDDMyEclipseWorkspaceHelloWebWebRoot")(配置文件中列出的);

      然后根据后面的HelloWorld,找到web.xml中对应的url-pattern,然后找到对应的名字:HelloWorldServletName,根据它找到对应的servlet,其中列出了类名:com.shengqishiwind.servlet.HelloWorldServlet,

      实例化这个类的对象,再执行其中的doGet()方法,将页面返回。

      注意,更改Java代码不需要重启服务器(因为server.xml配置文件中加了reloadable="true",所以更改代码时服务器会重启),但是更改配置代码(web.xml中代码)需要重启服务器。

      

      我们可以将Servlet看作是嵌套了HTML代码的Java类;可以将JSP看作是嵌套了Java代码的HTML页面。

     

    参考资料

      圣思园张龙老师视频教程。

  • 相关阅读:
    Jmeter以non-gui模式进行分布式测试
    使用Jmeter创建ActiveMQ JMS POINT TO POINT请求,环境搭建、请求创建、插件安装、监听服务器资源等
    Docker ON MAC OS X -- 第三篇
    Docker ON MAC OS X -- 第二篇-了解镜像及容器
    MAC OS X上安装Docker
    Robotium 第一天,HelloWorld
    Maven中使用reportNG,并自定义reportNG output中的log
    Cesium应用篇--添加雨雪天气
    Cesium源码剖析---视频投影
    Cesium源码剖析---Ambient Occlusion(环境光遮蔽)
  • 原文地址:https://www.cnblogs.com/liu-Gray/p/4826843.html
Copyright © 2020-2023  润新知