• java web.xml配置servlet


    文件名:“SimpleServlet.java”

    package cn.mldn.lxh.servlet;//定义包

    import java.io.*;

    //HttpServlet属于javax.servlet.http包下

    //ServletException属于javax.servlet包下

    import javax.servlet.*;//导入HttpServlet所属的包

    //HttpServletRequest、HttpServletResponse存放在javax.servlet.http包下

    importjavax.servlet.http.* ;



    public class SimpleServlet extendsHttpServlet

    {

    // 表示处理get请求

    public void doGet(HttpServletRequest req,HttpServletResponse resp)throws IOException,ServletException //抛出异常

    {

    PrintWriter out = resp.getWriter();//实例化out对象。

    out.println("<HTML>");

    out.println("<HEAD>");

    out.println("<TITLE>THE FIRSTSERVLET</TITLE>") ;

    out.println("</HEAD>");

    out.println("<BODY>");

    out.println("<H1>HelloWorld!!!</H1>") ;

    out.println("</BODY>");

    out.println("</HTML>");

    out.close() ;

    }

    public void doPost(HttpServletRequest req,HttpServletResponse resp)throws IOException,ServletException

    {

    this.doGet(request,response) ;

    }

    };



    ///////////////////////////////////////////////////////////////////////////////////////////

    JSP功能和servlet一致,也就是说servlet可以被外部访问,那么要访问它就需要通过一个地址,因此只有通过WEB的地址映射来解决了。

    如何进行地址映射呢?

    通过修改web.xml文件进行。

    代码如下:

    <servlet>

    <servlet-name>simple</servlet-name>//我们定义的servlet应用名字

    <servlet-class>cn.mldn.lxh.servlet.SimpleServlet</servlet-class>//我们定义的servlet应用名字对应的具体servlet文件

    </servlet>

    <servlet-mapping> //地址映射

    <servlet-name>simple</servlet-name>//我们定义的servlet应用名字

    <url-pattern>/demo</url-pattern>//地址名

    </servlet-mapping>

    ////////////////////////////////////////////////////////////////////////////////////////////

    进行地址映射目的是为了使用servlet,它的工作过程是:

    工作过程:

    输入地址:http://localhost:8080/ demo,通过它找到映射文件内部的文件名simple,通过simple找到对应的<servlet-name>simple</servlet-name>,然后定位到这个servlet文件:cn.mldn.lxh.servlet.SimpleServlet



    由此可见,<servlet-name>simple</servlet-name>中的名字simple不一定一定要与servlet的文件名“SimpleServlet.java”一致,它只是在对web.xml文件配置的时候我们对servlet应用名字的定义,通过<servlet-class>cn.mldn.lxh.servlet.SimpleServlet</servlet-class>我们就可以定位到这个servlet文件。

    同普通的工程一样,建立一个java程序,不过这个程序要 extendsServlet,而且没有主方法

    public class HelloWorldServlet extends HttpServlet{

    @SuppressWarnings("deprecation")
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
    resp.setContentType("text/html");
    PrintWriter out = resp.getWriter();
    out.println("<html><head><title>人数anjinbaliang</title></head>");
    out.println("<body>baliang ai banjin ,it's right!"+new Date().toLocaleString()+"</body></html>");
    out.flush();
    }
    }

    在WebRoot->WEB-INF->web.xml内的最后一行的前面修改如下:

    <servlet>
    <servlet-name>HelloWorldServlet</servlet-name> //这个为servlet的类名
    <servlet-class>MyEclipse.HelloWorldServlet</servlet-class> //完整的类名
    </servlet>

    <servlet-mapping>
    <servlet-name>HelloWorldServlet</servlet-name> //这个同上面的第一个一样,为servlet的类名
    <url-pattern>/HelloWorldServlet</url-pattern> // 一定要有一个/ 加上类名 这个对于的是网址中文件夹/test后面的子目录,通过这个对应得到上面servlet-name的名字,HelloWorldServlet,再通过这个名字得到<servlet>内的<servlet-name>(与子对应关系),从而得到<servlet-class>实例化出一个MyEclipse.HelloWorldServlet类

    </servlet-mapping>


    </web-app>//最后一行
  • 相关阅读:
    mysql 45讲 索引的使用 09-11
    mysql 45讲 相关锁的概念 06-08
    mysql 45讲 深入浅出索引04-05
    mysql 45讲 概览 01-03
    AQS源码解析第二回
    面试相关-怎么实现限流功能
    人工智能必备数学基础:线性代数基础(2)
    Elasticsearch问题总结和解决方法
    spring boot中打印所有日志
    Java中Stream流里面的findFirst()和findAny()区别
  • 原文地址:https://www.cnblogs.com/cyy-13/p/5788408.html
Copyright © 2020-2023  润新知