Java-基础项目HelloServlet

白衣少年
2022-11-02 / 0 评论 / 30 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年11月07日,已超过570天没有更新,若内容或图片失效,请留言反馈。

Sevlet

Servlet简介

  • Servlet就是sun公司开发 动态web 的一门技术
  • Sun公司在这些API提供一个借口叫做: servlert程序

    • 编写一个类,实现servlet借口
    • 把开发好的类部署到web服务器
  • 把实现了servlet接口的程序叫做 servlet

HelloServlet

  1. 构建一个普通的 maven项目 ,删掉src目录,以后这个工程就是主工程,通过在里面建立moudel进行学习
  2. 在主工程中添加依赖

    <dependencies>
         <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>javax.servlet-api</artifactId>
             <version>4.0.1</version>
             <scope>provided</scope>
         </dependency>
         <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
         <dependency>
             <groupId>javax.servlet.jsp</groupId>
             <artifactId>javax.servlet.jsp-api</artifactId>
             <version>2.3.3</version>
             <scope>provided</scope>
         </dependency>
         <!-- 旧版,注释掉
         <dependency>
             <groupId>javax.servlet.jsp</groupId>
             <artifactId>jsp-api</artifactId>
             <version>2.1</version>
             <scope>provided</scope>
         </dependency> 
         -->
     </dependencies>
  3. 关于 maven父子工程 的理解

    • 父项目中会有

      <modules>
        <module>servlet-01</module>
      </modules>
    • 子项目中会有(没有需要手动添加)

      <parent>
        <artifactId>javaweb-02-servlet</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
      </parent>
  4. maven环境优化

    1. 修改web.xml

      <?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"
      >
      </web-app>
    2. 将maven环境搭建完整
  5. 编写一个servlet程序

     注意:servlet借口有sun公司编写了两个默认的实现类
         HttpServlet
    1. 编写一个普通类
    2. 通过继承HttpServlet实现Servlet接口

      • 注:如果出现导入失败的情况,可能是镜像还没加入该文件,需要自己去仓库里面下载,放入到相应的文件夹
      public class HelloServlet extends HttpServlet {
       //由于get或者post只是请求实现的不同方式,可以相互调用
       @Override
       protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
           PrintWriter writer=resp.getWriter();
           writer.print("Hello,Servlet");
       }
       @Override
       protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
           doGet(req,resp);
       }
      }
  6. 编写Servlet的 映射

    为什么需要映射?

    我们写的是Java程序,但是需要通过浏览器进行访问,而浏览器需要连接web服务器,所以我们需要在web服务中注册我们写的servlet,还需要给他一个浏览器能够访问的路径。

     <!--注册servlet-->
     <servlet>
         <servlet-name>hello</servlet-name>
         <servlet-class>com.yu.servlet.HelloServlet</servlet-class>
     </servlet>
     <!--servlet的请求路径-->
     <servlet-mapping>
         <servlet-name>hello</servlet-name>
         <url-pattern>/hello</url-pattern>
     </servlet-mapping>
  7. 配置 tomcat

     注意核对一下几项:
     Application server        
     JRE        
     HTTP port
     JMX port
  8. 启动错误原因总结:

    1. pom文件没有配置好,检查子项目的配置文件,把重复的属性值删除(文件仅供参考)

      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
       <parent>
           <artifactId>javaweb-02</artifactId>
           <groupId>com.yu</groupId>
           <version>1.0-SNAPSHOT</version>
       </parent>
       <modelVersion>4.0.0</modelVersion>
       <artifactId>servlet-01</artifactId>
       <packaging>war</packaging>
       <name>servlet-01 Maven Webapp</name>
       <!-- FIXME change it to the project's website -->
       <url>http://www.example.com</url>
       <properties>
           <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
           <maven.compiler.source>1.7</maven.compiler.source>
           <maven.compiler.target>1.7</maven.compiler.target>
       </properties>
       <dependencies>
           <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.11</version>
           <scope>test</scope>
           </dependency>
       </dependencies>
      </project>
    2. 检查导入依赖,如果在external libraries 没有相应依赖会导致启动失败

       javax.servlet.jsp.api
       javax.sevlet.api
       maven:junit
       maven:hamcresrt-core
    3. 检查tomcat配置

       环境变量
       deployment
       server

配置Tomcat

1、如果没有 artifacts ,可以刷新一下项目的maven库;
或者到setting中: settings—>bulid…—>Bulid Tools —> Maven—>Improting—>选中Impor Maven projects automatically—>Apply —> OK

2、看看效果
tomca配置.png

3

打赏

评论 (0)

OwO
取消