• 使用Eclipse创建Servlet


    本次测试,使用是比较原始的Eclipse Java版本,只能创建Java Project,不能创建Dynamic Web Project,也没有Tomcat的集成。

    以在浏览器上显示Servlet中输出的文字为目的,其它方面不考虑,不多解释。

    前提条件:已安装Java,已安装Tomcat,且正确配置。

    第一步,File --> New Java Project

    此处可能会修改的可能只有两个地方,其它的根据情况自行处理,基本不用动。如下图所示:

    点击Next

    第二步,必要的配置

    这个界面上的东西,可改可不改,根据自己实际需要决定。通常情况下,有些IDE会默认为servlet_test5/WebContent/WEF-INF/classes或者servlet_test5/webapps/WEF-INF/classes,都可以,关键是WEF-INF/classes是必要搭配。

    第三步,点击上个界面的Tab中的Libararies

    然后点击Add External JARs

    出现选择文件对话框,找到tomcat的安装目录下的lib文件夹,选择jsp-api.jar和servlet-api.jar两个文件

      点击确定,返回上个界面后,点击Finish

     第四步,根目录下创建index.jsp文件

    随便输入点什么,这个文件对于Servlet这个程序来讲,没什么用,主要用于确定网站是否配置正确。index.jsp放在哪里都可以,只要在tomcat中指向它即可。

     配置tomcat,指向此项目的根目录,即index.jsp所在的目录

    WIN+R运行,services.msc打开服务管理,重新启动tomcat,如果一切顺利,此时在浏览器中输入localhost:8080,应当能看到index.jsp中输入的文字。

     第五步,创建Sevlet

    (1)src下创建一个包sabre.web.servlet,包下创建一个类ServletDemo1,名称自拟,其它默认即可,点击Finish

     

    在创建的类中输入以下代码:

    package sabre.web.servlet;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class ServletDemo1 extends HttpServlet {
    
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
    
        public ServletDemo1() {
            super();
        }
        
         protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                // 使用 GBK 设置中文正常显示
                response.setCharacterEncoding("GBK");
                response.getWriter().write("Servlet演示");
            }
         
         protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                // TODO Auto-generated method stub
                doGet(request, response);
            }
    }

    第六步,创建WEB-INF

    这是是最关键的一步,我的挫折均来自这里

    如果第二步配置的是WEB-INF/classes,则此处应当已经生成了此目录,不需要手动创建。

    根目录下创建目录WEB-INF,注意,必须大写,小写无效。

    必须是这个名称,否则无效。

    WEB-INF目录必须在tomcat中配置的网站根目录下,否则无效,如果第二步配置的是servlet_test5/webapps/WEF-INF/classes,则网站根目录是webapps。

    WEB-INF目录下创建classes目录,此目录即是第二步中配置的默认output目录,编译生成的字节码都会放到这里。原理是如果Web应用程序要用到某个类,则会到/WEB-INF/classes中试着载入类,若没找到,再尝试从/WEB-INF/lib的JAR文件中寻找类文件,若还没有找到,则会到容器实现本身存放类或JAR的目录中寻找,但位置视实现厂商而有所不同,以Tomcat而言,搜寻的路径是Tomcat安装目录下的lib目录。

    WEB-INF下创建web.xml,注意,web.xml一定要在WEB-INF目录下,否则无效。web.xml是java web必须的配置文件,类似.net的web.config。

    此处web.xml的作用是对servlet进行映射

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
      <display-name>JavaWeb2</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      
    <!-- 配置Servlet -->
        <servlet>
            <servlet-name>ServletDemo1</servlet-name>
            <servlet-class>sabre.web.servlet.ServletDemo1</servlet-class>
        </servlet>
        
        <servlet-mapping>
            <servlet-name>ServletDemo1</servlet-name>
            <url-pattern>/ServletDemo1</url-pattern>
        </servlet-mapping>
    </web-app>

    重启tomcat,浏览器中输入http://localhost:8080/ServletDemo1,如果一切顺利,页面上将显示"Servlet演示",表示Servlet创建成功。

    如果出现HTTP Status 500 - Error instantiating servlet class XXXX类,多半是因为classes目录没在WEB-INF下。

  • 相关阅读:
    SQL语句——入门级
    使用Java Servlet进行简单登录
    Java简单聊天室
    Java网络编程(二)关于Socket的一些个人想法
    Java网络编程(一)
    Java多线程(三)锁对象和线程池
    Java多线程(二)同步与等待唤醒
    Java多线程(一)初步了解
    IO流(三)其他流与File类
    IO流(二)字符流
  • 原文地址:https://www.cnblogs.com/Sabre/p/15743367.html
Copyright © 2020-2023  润新知